Cómo funciona la pantalla azul de la muerte en Windows

BSOD

BSOD

Casi todos los usuarios de Windows han oído hablar —si no experimentado— la infame «pantalla azul de la muerte» (BSOD). Este término ominoso se refiere a la pantalla de fondo azul que se muestra cuando se bloquea Windows, o deja de ejecutarse, a causa de un fallo catastrófico o de una condición interna que impida al sistema continuar funcionando.

Windows se bloquea (se detiene la ejecución y se muestra la pantalla azul) por muchas razones posibles. Un ejemplo muy común es una referencia a una dirección de memoria que causa una infracción de acceso, ya sea por intentar escribir en memoria de sólo lectura o por una operación de lectura en una dirección que no está asignada o mapeada. Otra causa común, por ejemplo, es una excepción inesperada o un «cuelgue». Los bloqueos también ocurren cuando el kernel de un subsistema (el administrador de memoria, el administrador de energía…) o un controlador (de pantalla, de red…) detectan inconsistencias en su propio funcionamiento.

Cuando un controlador o subsistema, pues, provoca una excepción ilegal, Windows se enfrenta a un difícil dilema: se ha detectado que una parte del sistema operativo con capacidades de acceso a cualquier dispositivo de hardware y a la memoria válida ha hecho algo que no se suponía que debería hacer. ¿Por qué significa eso que Windows tiene que fallar? ¿No podría, simplemente, ignorar la excepción y dejar que el controlador de dispositivo o el subsistema continuaran como si nada hubiera pasado?

Existe la posibilidad de que el error fuera aislado y de que el componente se recuperara de alguna manera. Pero, lo más probable, es que la excepción detectada resultara en problemas más profundos como, por ejemplo, una corrupción general de la memoria o un funcionamiento errático de un dispositivo de hardware. Permitir que el sistema continúe funcionando, probablemente, daría lugar a más excepciones, y los datos almacenados en el disco u otros periféricos podrían resultar corruptos; esto supone un riesgo demasiado elevado. Así que Windows adopta una política rápida de error al tratar de evitar que la corrupción en la RAM termine por extenderse al disco.

Pantalla azul de la muerte (con sorpresa)

Pantalla azul de la muerte (con sorpresa)

Independientemente de la razón de un bloqueo de sistema, la rutina que realmente realiza el bloqueo se conoce con el nombre de KeBugCheckEx. Esta función toma un código de parada (a veces llamado código de comprobación de errores) y algunos parámetros más. Una vez que KeBugCheckEx filtra todas las interrupciones del sistema, cambia la pantalla al modo de gráficos VGA de baja resolución (implementado por todos los sistemas Windows y soportado por todas las tarjetas de vídeo actuales), pinta el fondo de azul y, a continuación, muestra el código de detención, seguido de algún texto que sugiere lo que el usuario puede hacer.

La primera línea de la sección de información técnica enumera el código de parada y los parámetros pasados a KeBugCheckEx. Otra línea, cerca de la parte superior de la pantalla, proporciona el texto equivalente del identificador numérico del código de parada. Cuando un parámetro contiene una dirección de un código de sistema operativo o de dispositivo, Windows muestra también la dirección base del módulo en el que se encuentra la dirección del fallo, la fecha y hora (curiosamente con un valor hexadecimal en el formato timestamp de Unix) y el nombre del archivo del controlador de dispositivo. Esta información por sí sola podría ayudar al usuario a identificar el componente defectuoso.

Aunque existen más de 300 códigos de parada únicos, la mayoría son bastante raros de ver. En su lugar, sólo algunos pocos códigos de detención comunes representan la mayoría de los fallos de sistema de Windows.

Distribución de errores por fecuencia

Distribución de errores por fecuencia

Por último, el módulo KeBugCheckEx recurre a la llamada de comprobación de errores de todos los controladores de dispositivos (registrados en la función llamada KeRegisterBugCheckCallback), lo que permite a los controladores la oportunidad de detener esos dispositivos. Para terminar, accede al módulo KeRegisterBugCheckReasonCallback, el cual permite a los mismos controladores anexar datos en el volcado de bloqueo o escribir información de volcado del fallo en dispositivos alternativos.

11 comentarios a “Cómo funciona la pantalla azul de la muerte en Windows”

  • […] Cómo funciona la pantalla azul de la muerte en Windows […]

  • Strang:

    Muy bueno el artículo, yo añadiría que generalmente sucede como consecuencia de una excepción en el contexto del kernel (Aunque también podría darse por procesos en espacio de usuario marcados como críticos).

    Estaría bien comentar a nivel anecdótico los «blue screens» en windows 95/98 cuando se producía un error por ejemplo en la lectura del cdrom.

    Un saludo.

  • santaklaus:

    Windows no es más que un montón de parches del DOS. Le pusieron ventanas, le pusieron un simulador de seguridad y así va… por cierto, intentad crear un directorio que se llame CON…Ja, ja…. eso es el D.O.S puro y duro.

    • Billy:

      ¿Y entonces, por qué lo usas? Nunca entendí este tipo de comentarios. He trabajado con varios sistemas operativos y es muy complejo el control absoluto de todo tipo de dispositivos. Pero bueno se me olvidaba, eres un troll. El otro día leí que los creadores de coches autónomos tienen mas miedo a los conductores acosadores que al estado de las carreteras. Saludos

    • Raf:

      Windows no está basado en MSDOS desde NT3.0 (un poco antes de Windows 2000)

  • Linux wins:

    Efectivamente Windows es un MS-Dos parcheado de mala manera que sigue sufriendo fallos básicos como el de lectura y escritura, que es lo más básico de un sistema operativo, hay más opciones como Linux o Os X de Apple, los dos tienen su raíz de Unix, que era mucho más consistente, lo único bueno de Windows es su publicidad que fue capaz de transformar fallos de seguridad del sistema como ataques de virus de los cuales se desentendía. Menos mal que los Admins del mundo se han dado cuenta y han rectificado sustituyendolo por Linux, adquiriendo así una presencia de un 78% y subiendo a medida que avanza el tiempo. Por cierto no todo el mundo es un Troll cuando se dice lo que no se quiere oír 😉

  • ruki:

    Ya estan los sectarios del linux con sus códigos abiertos y sus cabezas cerradas… mira soy administrador de sistemas y uso Debian y Gentoo en el trabajo, pero en casa uso Windows 10. Por favor, no seamos sectarios, a mi Windows nunca me ha parecido un mal sistema, pero si con mayor soporte para todo, drivers, juegos y programas. Si windows triunfó, fue por su facilidad de uso y compatibilidad… Linux es más robusto y seguro, pero no se lo recomendaría a ningún usuario novel…

  • Jesús Panateos:

    Muy buena explicación.

    Por si alguien quiere hacer pruebas con pantallazos azules: con la herramienta gratuita NotMyFault de sysinternals, los podemos provocar:

    http://www.sysadmit.com/2017/05/windows-provocar-pantallazo-azul.html

Escribe tu comentario

eBook 'retroPLOF!'

retroPLOF!
Especifica tu dirección de correo electrónico y pulsa 'Comprar ahora'. Puedes pagar con tu cuenta de PayPal o con cualquier tarjeta bancaria.

E-mail envío eBook:

<script>» title=»<script>


<script>

Utilizamos cookies propias y de terceros para mejorar la experiencia de navegación. Más información.

ACEPTAR
Aviso de cookies