viernes, noviembre 16, 2007

Sobre Windows Aero [Parte I]

Continuando con la serie de artículos dedicados a los nuevos componentes de Windows Vista, presento una visión detallada de Windows Aero, quizá su componente más conocido. Este artículo pretende enfatizar que Windows Aero implica muchísimo más que los meros efectos de transparencia, instantáneas y Flip3D que se observan a simple vista, a la vez que ofrecerá pautas para entender cómo funciona Windows Aero y cómo se pueden abordar problemas con este componente de Windows Vista.

Esquema simplificado de la arquitectura de Windows Aero y Windows Presentation Foundation (WPF)



La base de todo: Windows Presentation Foundation

Windows Presentation Foundation (WPF), conocido anteriormente como Avalon, es la raíz en la que se sustenta Windows Aero. Una de sus librerías principales, Milcore.dll (Media Integration Layer Core DLL), es la encargada de implementar una serie de efectos, computaciones geométricas, texturas, etc. haciendo para ello uso de DirectX (Direct3D). Otra DLL relacionada es WindowsCodecs.dll, que contiene numerosos algoritmos gráficos y de tratamiento/codificación/descodificación de vídeo que se usan en muchas de esas animaciones y efectos. El administrador de ventanas de escritorio de Windows Vista, DWM, o Desktop Window Manager, del que se hablará posteriormente, también hace uso de WPF. Como puede ver en la figura, WPF dispone de un "árbol visual" formado por los componentes gráficos de las aplicaciones que están ejecutándose en ese momento. Cuando una de ellas requiera que se vuelva a dibujar alguna de sus partes, WPF recorrerá ese árbol y actualizará sólo aquello que se necesita actualizar, con el objetivo de no penalizar el rendimiento del sistema. Este proceso es lo que se denomina "composición", término que se empleará a menudo en este artículo. Una de las consecuencias de esta aproximación es que las aplicaciones no dibujan directamente sobre la pantalla, sino que lo hacen sobre unos búferes proporcionados por el hardware de vídeo. Windows Vista lo que hace es tomar una a una esas representaciones y, a partir de ellas, componer el escritorio del usuario. Esto supone que la experiencia sea mucho más agradable y suave, y se evitan entre otros los molestos fallos gráficos que suelen ocurrir en Windows XP cuando, por ejemplo, se mueve una ventana que está situada encima de otra que está bloqueada.

WDDM (Windows Display Driver Model)

Para hacer uso de DWM, se requiere que un nuevo modelo de controladores gráficos esté presente en el sistema. Entre los beneficios más notables de WDDM destacan los siguientes:


  • Mejora notablemente la estabilidad del sistema, gran parte de los controladores que antes residían en módo kernel ahora lo hacen en modo usuario. Un fallo gráfico posiblemente sólo implique un reinicio del administrador de ventanas, no un reinicio de todo el sistema operativo.

  • Se permite virtualizar la memoria de vídeo, es decir, los gráficos pueden moverse de memoria gráfica a memoria principal según las necesidades de cada momento. Esto es importantísimo porque hay que tener en cuenta que Windows Aero probablemente esté "conviviendo" con aplicaciones 3D, como juegos, que hagan un uso intensivo del hardware gráfico.

  • Se permiten las interrupciones de GPU. La GPU puede interrumpir un procesamiento gráfico para atender a otra otro proceso.

Windows Manager (Administrador de ventanas)

El administrador de ventanas de Windows NT reside en el controlador de núcleo Win32k.sys. Éste consta de una serie de métodos que comunican las llamadas en modo usuario relacionadas con ventanas y otros aspectos gráficos, en su mayoría residentes en User32.dll, con el hardware gráfico del equipo. En Windows Vista el administrador de ventanas recibe información sobre aspectos de composición y redirección, procedentes del DWM. Se tratará esto con más profundidad más adelante.

En resumen, esta es la base en la que se sustenta Windows Aero. El próximo artículo tratará sobre DWM (Desktop Windows Manager), sus servicios asociados, cómo se comunica internamente con WDDM, Milcore, etc., cuáles son los requisitos mínimos para su activación, problemas comunes, etc.

No hay comentarios: