Cuando Windows XP arranca sin controladores AHCI en un sistema SATA, obtienes un BSOD similar 0x0000007b
.
Lo que no entiendo es por qué no se puede cargar sin los controladores AHCI. Claramente, ya era capaz de cargar el código del núcleo que le proporciona el BSOD, entonces ¿por qué no podría cargar el resto del sistema operativo de la misma manera?
Alternativamente: todas las formas de ATA admiten E / S programadas, y IIRC Windows XP también admite PIO. Entonces podrían haber cargado el resto del sistema operativo usando PIO también ... ¿no podrían?
Respuestas:
Windows utiliza INT13h de acceso (BIOS) para discos duros sólo en las muy primeras etapas. Si durante este tiempo no se carga un controlador de Windows adecuado para acceder al disco, aparece la pantalla azul.
INT13h solo está disponible en modo real. Sin embargo, Windows moderno se ejecuta en modo protegido o modo largo (x64).
En UEFI nativo (como en: cuando no está usando el CSM), INT13h no está disponible. Windows (presumiblemente) usa servicios UEFI para acceder a los discos en este entorno.
Respuesta a la edición : el sistema operativo no controla si su controlador SATA se ejecuta en modo AHCI o no. En su lugar, selecciona cuál usar en la configuración del firmware. El firmware establece los bits correspondientes en los registros del controlador.
El modo virtual 8086 es solo eso: virtual. No proporciona acceso a las características reales del BIOS. En cambio, el host debe emular estas características.
Aunque no soy un experto, creo que es muy probable que volver al modo real descarte información importante en la MMU y otras cosas, por no hablar de las implicaciones de detener todo el modo protegido solo para acceder al disco.
fuente