miércoles, diciembre 05, 2007

¿Dos procesos residentes Csrss.exe en Windows Vista?

Un usuario de Windows Vista tenía la siguiente inquietud: Al abrir Administrador de tareas, pestaña Procesos, observaba que había dos procesos Csrss.exe residentes en su sistema, ambos ejecutados desde la cuenta SYSTEM. Automáticamente el usuario relacionó esto con que alguna de las dos copias podría tratarse de un virus, ya que suelen aprovechar nombres de ficheros del sistema operativo para pasar desapercibidos.

En Windows Vista esta situación es normal, y se debe a una nueva característica de seguridad denominada "Session 0 isolation". En Windows 2000/XP/Server 2003, el usuario puede iniciar sesión en la llamada "sesión 0", una sesión que comparte con el resto de servicios críticos del sistema operativo. Esto supone que un atacante podría aprovechar alguna vulnerabilidad en alguno de esos servicios del sistema y hacerse con el control total de la máquina. Para evitar este potencial problema, el arranque de Windows Vista ha sido totalmente rediseñado. El primer proceso de usuario que se inicia en Windows es Smss.exe. En Windows Vista se crean dos copias de este proceso, y una de ellas se encarga de configurar la sesión 0 (Smss es el acrónimo de "Session Manager System Service"). El proceso Smss.exe crea a su vez una instancia de Csrss.exe en la sesión 0 y luego finaliza. Por este motivo, al observar la jerarquía de procesos en Process Explorer, verá que Csrss.exe está situado lo más a la izquierda (Process Explorer muestra procesos lo más a la izquierda cuando su "padre" ha finalizado).

Así pues, quedan configurados dos procesos Csrss.exe, uno para la sesión 0 y otro para la sesión del usuario, lo que aclaró la duda del usuario.

Nota: Puede observar esta diferencia en el propio Administrador de tareas si hace clic sobre Ver, Seleccionar columnas y agrega la casilla correspondiente al identificador de sesión. Necesitará haber iniciado Administrador de tareas con privilegios administrativos, o haber hecho clic sobre el botón Mostrar procesos de todos los usuarios y haber confirmado la operación.

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.

sábado, noviembre 03, 2007

Tras reinstalar el sistema operativo, Windows Update no instala ninguna actualización

Un problema bastante común últimamente con Windows Update consiste en que, tras una reinstalación del sistema operativo (Windows XP SP2), las actualizaciones no se logran instalar.

Si experimenta ese mismo problema, su solución está en este artículo de la KB: http://support.microsoft.com/default.aspx/kb/943144/es.