jueves, 19 de marzo de 2009

Depurando el sistema (I) - pantallazos azules y kdbg

¡Hola a todos! Hoy no os voy a hablar de nuevas características, bugs nuevos ni aplicaciones que funcionen en ReactOS... de eso hay muuucho tiempo para seguir hablando, y desde luego que siempre se va añadiendo alguna funcionalidad nueva al Sistema Operativo


Este post va dedicado a aquellos que no saben cómo colaborar de una forma técnica con el proyecto. Me refiero a depurar el sistema, encontrar las posibles fallas del mismo para poder reportáselo a los desarrolladores, de forma que se puedan corregir de una forma lo más sencilla posible. (muchos desarrolladores me tirarían por la ventana por decir que eso es sencillo).




[caption id="attachment_430" align="alignright" width="300" caption="Esto es lo que podemos ver normalmente en un sistema Windows"]pantallazo azul en Windows XP[/caption]

Para empezar, tenemos que hablar de nuestros queridísimos (ahora seréis los usuarios quienes me tiraréis por la ventana) pantallazos azules, conocidos en sus siglas inglesas como BSOD (Blue Screens of Death). ¿Qué es eso? El pantallazo azul se produce por un error interno del mismísimo kernel del sistema operativo, un error tan grave que el sistema no puede continuar, ni siquiera permite la ejecucion de drivers de teclado, por lo que la unica forma de avisar al usuario es codificar de forma bruta (hardcoded) las rutinas que queremos ejecutar para obtener dicha pantalla.


¿Y cuando tenemos una BSOD, qué hacen los desarrolladores de ReactOS? Si no se puede continuar.... Bueno, efectivamente, cuando tenemos un pantallazo azul, no podemos continuar, pero ¿y si pudieramos ver qué es lo que ha intentado hacer el sistema antes del fallo? Al ser de código oabierto, podríamos ver qué parte del código es la que ha fallado, y asi sería mucho más fácil averiguar el por qué de dicho error.


ReactOS ha pensado en esto desde sus comienzos. Y para ello, incorpora en el kernel una utilidad llamada Kernel Debugger (Depurador del Kernel, más conocido como kdbg), que se activa cuando se produce un error tan grave que el sistema no puede continuar. ¿La diferencia? Cuando activemos el kdbg no veremos el pantallazo azul, en su lugar todo el sistema ReactOS quedará congelado, porque el depurador estará esperando que le digamos lo que debe hacer.


En la siguiente entrada sobre la depuración de ReactOS veremos cómo actúa el depurador, cómo podemos observar la salida en el monitor del ordenador, y cómo podemos sacarle provecho.

0 comentarios:

Publicar un comentario