Publicado por Javier Guerrero, 28 Abril, 2010

Una de las características de Windows más odiadas, temidas y vilipendiadas por cualquier usuario, es el pantallazo azul, también conocido como BSOD, siglas de “Blue Screen Of Death”. Efectivamente, el BSOD es todo un incordio, y no sólo para el usuario sino también para nosotros, los desarrolladores : -)

En este artículo explicaremos de forma relativamente sencilla qué son los BSOD y qué los puede provocar, pero por desgracia no podremos garantizar la forma de evitarlos, algo prácticamente imposible debido a su propia naturaleza.

Una cuestión de error

Cualquier software que se ejecuta en un ordenador, ya sea una aplicación, un controlador de dispositivos, un antivirus, o el mismo sistema operativo, es susceptible de fallar, por los motivos más diversos: un error de programación, una situación de corrupción de archivos, un escenario no contemplado por el código, o incluso algún problema de hardware. Algunos errores son considerados como “leves” (entendiendo el término “leve” como “asumible por el software que lo sufre”) y otros de mayor importancia e incluso críticos. Los BSOD pertenecen a este último grupo de errores.

Normalmente, cuando un error “crítico” se produce a nivel de aplicación, en lo que conocemos como la “capa de usuario”, la situación suele manejarse sin problemas, apareciendo algún mensaje de error y finalizando el proceso en cuestión.

Sin embargo, cuando el error crítico ocurre en el nivel más “interno” del sistema operativo, en lo que conocemos como la “capa de kernel”, la cosa es muy diferente, ya que se está produciendo una situación anómala en la parte más frágil de todo el sistema operativo, lo que establece un escenario de inestabilidad y le impide continuar con garantías su flujo de proceso. Es entonces cuando el sistema nos lanza su pantalla azul, que es la forma que tiene Windows de notificar esta circunstancia.

¿Se puede sacar algo en claro de un BSOD?

En un pantallazo azul, el sistema intenta aportar cierta información sobre el problema; lo malo es que su contenido es tan técnico y tan específico y dependiente del error en cuestión, que para cualquier usuario sin los conocimientos adecuados, no es más que un galimatías sin sentido.

No obstante, algo sí que se puede sacar en claro, y es el nombre del módulo que ha causado (o en cuyo contexto se ha producido) el fallo.

Para cualquier usuario este último dato, sin ser fidedigno al cien por cien, es el más útil ya que nos aporta una pista de dónde puede estar la causa del problema.

Por ejemplo, si obtenemos un pantallazo azul que haga referencia al driver de la tarjeta gráfica, eso nos permite descartar otras posibilidades y centrarnos en dicho componente; es posible que se deba a un error de programación en el controlador que maneja el dispositivo, pero también el BSOD puede ser realmente un síntoma de posible problema físico en dicho dispositivo.

¿Por qué tengo que reiniciar después de un BSOD?

Es razonable preguntarse por qué Windows no ignora el error y continúa el flujo de ejecución del kernel. Pues sencillamente, para evitar males mayores. El sistema prefiere ir sobre seguro y no arriesgar en una parte tan sensible como es el kernel del sistema operativo.

Algunos datos curiosos o poco conocidos

Para terminar este artículo, me ha parecido interesante comentar algunos aspectos curiosos sobre los BSOD.

¿Sabías que….?

  • En contra de lo que muchos pueden pensar, Microsoft se toma muy en serio los errores que se producen en el sistema. Tienen una enorme infraestructura para la recogida de errores, y un departamento dedicado exclusivamente a estudiar los informes de problemas enviados por los usuarios, y las cifras que maneja la empresa son mareantes: se analizan los errores remitidos por una cantidad brutal de máquinas, cuya media es superior a 400 millones de PCS.
  • Las conclusiones de dichos estudios son bastante sorprendentes: por ejemplo, la inmensa mayoría de BSODs son causados por drivers (ya sean filtros de monitorización o auténticos controladores de dispositivos) pertenecientes a productos ajenos a la compañía, incluso por ejemplares de malware que se ejecuta en la capa kernel. El resto son producidos por fallos de hardware, y una mínima parte son bugs del propio sistema operativo. De esto se deduce que Windows por sí mismo no es tan inestable como habitualmente se cree.
  • Existe la posibilidad de que el módulo cuyo nombre se muestra en el BSOD no sea el auténtico causante del problema. Efectivamente, no es inusual que la responsabilidad de un error crítico sea achacada a drivers cuyas especiales características de funcionamiento les hace estar “en el peor sitio y en el peor momento”; en la Unidad de Interceptación de Panda ya nos hemos encontrado varias veces con esta situación.
  • Es perfectamente posible que, como usuario, nunca hayas visto un pantallazo azul en tu sistema, pero ¿en alguna ocasión no te ha pasado que el PC se ha reiniciado solo? Pues eso significa que has experimentado un error crítico, sólo que no has podido verlo porque tu Windows está configurado para reiniciarse automáticamente ante un error crítico. Este comportamiento es configurable desde el Panel de Control en la opción Sistema desde la pestaña Inicio y recuperación utilizando la opción Reiniciar automáticamente.

Pues hasta aquí el artículo sobre los tan odiados pantallazos azules.

Si tenéis dudas o comentarios, este blog queda a vuestra entera disposición.

Un saludo,
Javier Guerrero
Dept. Desarrollo I+D