Mientras Windows 10 se despide, ReactOS abre la puerta a WDDM: así avanza el sistema “Windows-compatible” hacia las GPU modernas

El mismo día en que Windows 10 entra oficialmente en su fase de fin de soporte, el proyecto ReactOS —el sistema operativo libre que persigue ejecutar aplicaciones y controladores de Windows sin capas de compatibilidad ni base Unix— ha publicado un avance largamente esperado: investigación e implementación experimental de WDDM (Windows Display Driver Model), el modelo de controlador gráfico que Microsoft introdujo con Windows Vista y adoptó como estándar de facto a partir de Windows 8.

El hito lo ha explicado con detalle The_DarkFire_, desarrollador de ReactOS, en un extenso artículo técnico que desmonta piezas clave del stack gráfico de Windows y documenta un primer arranque funcional de un miniport WDDM en ReactOS, empezando por el Basic Display Adapter del WDK y llegando a probar incluso drivers propietarios antiguos —como un controlador de NVIDIA para Windows 7— para conseguir salida de vídeo real a resoluciones y frecuencias nativas en monitores modernos.

No es soporte 3D ni aceleración DirectX todavía. Pero, por primera vez, ReactOS habla el idioma del modelo de controladores vigente en Windows desde hace más de una década, requisito imprescindible si el proyecto quiere soportar GPU actuales y funciones asociadas (DWM, memoria virtual de GPU, drivers en modo usuario más robustos, etc.).


XDDM vs WDDM: el cambio de época que ReactOS necesita cruzar

Para entender la importancia del anuncio conviene separar dos modelos:

  • XDDM (Windows XP Display Driver Model) —El legado de la era Windows 2000/XP: controladores “a la antigua”, con gran parte de la lógica en el kernel (win32k.sys) y poca separación entre SO y driver.
  • WDDM (Windows Display Driver Model) —Llegó con Vista, se impuso con Windows 8 y sigue vigente (en revisiones 1.0, 1.1, 1.2, …). Mueve la gestión de GPU fuera de win32k y la centraliza en dxgkrnl.sys (el DirectX graphics kernel), que se coordina con un miniport del fabricante mediante interfaces versión a versión. WDDM habilita el DWM (Desktop Window Manager), memoria virtual de GPU, planificación y separación en modo usuario para evitar que un fallo del controlador tumbe todo el sistema.

ReactOS, que sigue una arquitectura NT 5.x (la de XP/2003), lleva años mejorando XDDM para consolidar una base estable. El matiz curioso —subraya el artículo— es que incluso en Vista/7/8 perviven piezas XDDM en el arranque y en el puente entre win32k y dxgkrnl. Dos módulos, TSDDD.dll y CDD.dll, actúan como colchón:

  • TSDDD.dll es un driver XDDM trivial que se carga en la sesión 0; prácticamente escribe en memoria “en blanco”.
  • CDD.dll (Canonical Display Driver) también es XDDM, pero envía IOCTLs a dxgkrnl y se convierte en el único canal relevante de comunicación Win32k ⇄ WDDM, además de permitir la caída controlada al Basic Display Driver si el driver de vídeo falla. Ese diseño evita los BSoD por “video init failure” que aún pueden verse en NT 5.x si no hay un adaptador válido.

Conclusión: para que WDDM funcione en ReactOS, la pila XDDM tiene que estar en buena forma. Y ésa es la ruta elegida: fortalecer XDDM mientras se tiende el puente a WDDM.


Qué ha conseguido ya ReactOS (y qué demuestra)

  1. Compilar/arrancar un miniport WDDM
    El primer obstáculo fue entender el papel de displib.lib (WDK): los controladores WDDM no enlazan contra dxgkrnl, sino que lo inicializan a través de una rutina y reciben callbacks con las interfaces necesarias. ReactOS ha creado una alternativa a esa librería para importar y compilar controladores WDDM que arranquen incluso en Windows, abriendo la puerta a pruebas cruzadas.
  2. Montar un “dxgkrnl mínimo” para vídeo
    Aunque dxgkrnl.sys completo es “un monstruo” (planificador, memoria, colas, sincronización), la salida de vídeo se puede validar con dos subsistemas: VidPN (Video Present Network) y su soporte de hardware. ReactOS ha implementado lo justo para consultar modos al miniport y pasar la información a CDD, cargándolo cuando dxgkrnl está activo. Con ese esqueleto, el Basic Display Adapter del WDK muestra imagen en ReactOS.
  3. Probar controladores de terceros
    La sorpresa del autor: WDDM es “permisivo”. Pudo arrancar controladores de fabricante (p. ej., un NVIDIA para Windows 7) en modo 2D/Display y obtener señal a resolución/frecuencia nativas en monitores actuales. Eso, admite, le topó enseguida con el límite no de win32k sino del soporte hardware que hoy tiene ReactOS (PCIe, ACPI, buses, etc.), área donde el proyecto ya está trabajando.

Qué falta: DWM, 3D y pulir el “puente” CDD

Aunque OpenGL y Vulkan (a través de ICDs instalables) comparten un modelo de carga que ReactOS ya ha replicado —de hecho, el artículo muestra opengl32.dll de Vista y MESA Vulkan ICD cargando en ReactOS—, la aceleración 3D en WDDM depende de las APIs D3DKMT y de todo el pipeline de dxgkrnl que aún no se ha implementado. Lo mismo ocurre con DWM, el compositor de escritorio introducido en Vista: ReactOS reconoce que su win32k actual “no está listo” para muchas tareas del compositor, aunque mejora constantemente.

La hoja de ruta que emerge es realista:

  • Consolidar XDDM (necesario para CDD y para que win32k aguante el “estrés” de traducir hacia WDDM).
  • Probar KMDOD (Kernel Mode Display-Only Drivers), el tipo de miniports que Windows 8+ usa para modo display sin 3D, más simple y perfecto para asentar vídeo.
  • Expandir soporte hardware en ReactOS (chipsets, buses, ACPI), imprescindible para ir más allá de demos.
  • Iterar en dxgkrnl (VidPN, scheduler, D3DKMT, memoria).
  • Atacar DWM cuando win32k esté preparado.

Por qué esto importa (aunque no vayas a usar ReactOS mañana)

  • Compatibilidad de drivers: el ecosistema Windows moderno vive en WDDM. Que ReactOS empiece a hablar ese protocolo es requisito para soportar GPU actuales y parte del hardware post-Vista.
  • Robustez: user-mode drivers y virtualización de memoria de GPU reducen crashes globales por fallos del driver.
  • Futuro del proyecto: ReactOS lleva más de dos décadas persiguiendo la compatibilidad nativa con Windows sin derivados de Unix. WDDM es uno de los muros más altos; agrietarlo abre vías que parecían lejanas.

¿Significa que debas reemplazar hoy Windows 10 por ReactOS? No. El propio proyecto se define como experimental; carece de muchas funciones presentes en Windows actuales. Pero como laboratorio libre de la arquitectura NT y como único OS abierto que aspira a cargar controladores y apps de Windows de forma nativa, su avance en WDDM es noticia.


Lo que viene (y cómo ayudar)

El autor avanza que publicará más artículos sobre WDDM y hardware en ReactOS, y pide apoyo: donaciones, contribuciones en GitHub o simplemente difundir el proyecto. La prioridad inmediata: mejorar XDDM y el soporte de hardware para desbloquear las siguientes fases (KMDOD, DWM, aceleración 3D).

Resumen: ReactOS ya enciende WDDM en modo display-only y saca señal con drivers reales —incluso antiguos de fabricante— a resoluciones modernas. Falta un mundo para la aceleración completa, pero el puente hacia la era Vista+ por fin empieza a construirse. En un día simbólico para Windows 10, la ironía es perfecta: mientras uno se apaga, el otro aprende a hablar su idioma gráfico del presente.

vía: reactos

Suscríbete al boletín SysAdmin

Este es tu recurso para las últimas noticias y consejos sobre administración de sistemas, Linux, Windows, cloud computing, seguridad de la nube, etc. Lo enviamos 2 días a la semana.

¡Apúntate a nuestro newsletter!


– patrocinadores –

Noticias destacadas

– patrocinadores –

¡SUSCRÍBETE AL BOLETÍN
DE LOS SYSADMINS!

Scroll al inicio
×