Por que o BIOS opera em 16 bits em vez de 32/64 bits?

2

Meu professor me diz que o BIOS (ou o Modo Legado) sempre inicializa meu PC em 16 bits.

Em outras palavras, eu posso ter um Intel Core i291832 com 23.9GHz, mas meu PC irá operar no modo de 16 bits se eu estiver usando o modo legado. Isso é verdade? Se sim, por que isso acontece?

P.S: você pode ser muito técnico, estou cursando ciência da computação provavelmente vai entender o que você diz. P.S2: Eu sei as diferenças entre o UEFI e o Legacy Mode.

    
por Fernando Paladini 18.10.2015 / 14:11

1 resposta

5

Compatibilidade retroativa.

Um processador x86 moderno pode executar software escrito para o 8088 original, como o MS-DOS, sem recorrer à emulação de software. Note que algumas coisas podem não rodar bem , muitos jogos, por exemplo, dependem da velocidade do clock para cronometrar, então o que costumava acontecer em 10 segundos a 5 MHz agora acontece algo mais próximo de 0.02 segundos a 2.5 GHz. Boa sorte reagindo a tempo.

O modo real (16 bits) se comporta de maneira diferente do modo protegido (32 bits) e do modo longo (64 bits). Um programa escrito para o modo real não pode ser executado no modo protegido ou longo, ele usa instruções diferentes.

Como a compatibilidade retroativa é uma das qualidades mais importantes do x86, todos os processadores x86 continuam sendo inicializados em modo real. (Caso contrário, provavelmente teríamos mudado para uma arquitetura menos insana agora. Lembre-se de que até mesmo a Intel queria mudar para Itanium .)

O BIOS e o UEFI são partes da placa-mãe, não da CPU. Assim, a BIOS, permanecendo compatível com o IBM PC original, e sendo muito simples, deixa a CPU em modo real quando passa o controle para o gerenciador de inicialização. UEFI, não foi projetado para tal compatibilidade com versões anteriores e, portanto, está livre para alternar para o modo protegido antes de passar no controle. Mas se você pegar a mesma CPU x86 de um computador UEFI e colocá-la em um computador BIOS com uma placa-mãe compatível, ela ainda funcionará, o que estava pulando para o modo protegido de 32 bits antes de carregar o gerenciador de boot agora no modo de 16 bits antes do gerenciador de inicialização.

    
por 18.10.2015 / 16:31