Por que o Windows XP exigia drivers AHCI quando ele já podia se carregar sem?

0

Quando o Windows XP é inicializado sem drivers AHCI em um sistema SATA, você recebe um BSOD como 0x0000007b .

O que eu não entendo é porque ele não pode ser carregado sem drivers AHCI. Claramente já foi capaz de carregar o código do kernel que lhe dá o BSOD, então por que não poderia carregar o resto do SO da mesma maneira?

Alternativamente: Todas as formas de ATA suportam E / S Programadas, e o IIRC Windows XP também suporta o PIO. Então eles poderiam ter carregado o resto do sistema operacional usando PIO também ... não poderiam?

    
por Mehrdad 22.07.2017 / 20:36

1 resposta

3

O Windows usa o acesso do INT13h (BIOS) a discos rígidos somente nos muito estágios iniciais. Se, durante esse tempo, nenhum driver do Windows adequado para acessar o disco for carregado, a tela azul será exibida.

O INT13h está disponível apenas no modo real. O Windows moderno, no entanto, é executado no modo protegido ou no modo longo (x64).

No UEFI nativo (como em: quando não estiver usando o CSM), o INT13h não está disponível. O Windows (presumivelmente) usa serviços UEFI para acessar discos nesse ambiente.

Resposta para editar : Se o seu controlador SATA é executado no modo AHCI ou não, não é controlado pelo sistema operacional. Em vez disso, você seleciona qual usar nas configurações do firmware. O firmware define os bits correspondentes nos registros do controlador.

O modo virtual 8086 é apenas isso: virtual. Não fornece acesso a recursos reais da BIOS. Em vez disso, o host deve emular esses recursos.

Apesar de não ser especialista, acho muito provável que a mudança para o Modo Real descarte informações importantes na MMU e outras coisas, sem falar nas implicações de interromper todas as coisas do Modo Protegido apenas para acessar o disco.

    
por 22.07.2017 / 21:02