gnome_gtk wrote:Explodir eu não diria mas processos de usuário rodando em modo real podem resultar em falha de proteção de memória, não?
Que confusão vai prai! O computador arranca em Modo Real. A partir dai, a BIOS inicializa o chip set, faz testes ao sistema e passa o controlo ao loader. O loader, por sua vez, carrega o kernel e executa-o. Só há uma linha de execução (a da BIOS, primeiro, e depois a do próprio loader) até o kernel do sistema operativo configurar o multi-tasking e este entrar em acção.
O ntoskrnl.exe, em si, não faz switches entre modo real e modo protegido para chamar funções da BIOS. Só o FreeLDR o faz. Um kernel de 32 bits geralmente não recorre á BIOS: tem os seus próprios drivers. Quando nesessita *mesmo* de recorrer à BIOS (por exemplo, para tirar partido do ACPI ou do VESA BIOS), usa o Modo 8086 Virtual, que simula o ambiente de execução do Real Mode.
Mesmo que o kernel mudasse para Modo Real para executar rotinas da BIOS, não havia nenhum problema fatal com isso. O único inconveniente é que as rotinas da BIOS penduram enquanto estão à espera do hardware e demoram muito tempo (para além de não estarem integradas na restante arquitectura do kernel e do SO em geral), o qual não seria aproveitado pelos programas que não estão à espera de I/O.
Espero ter ajudado a compreender,
JJ