Como ainda é necessário inicializar, pergunto-me, em um sistema x64 / AMD64 de 64 bits, o BIOS ainda usa instruções de 16 bits? Também opera no modo REAL?
Como ainda é necessário inicializar, pergunto-me, em um sistema x64 / AMD64 de 64 bits, o BIOS ainda usa instruções de 16 bits? Também opera no modo REAL?
Respostas:
Os processadores x86 ainda iniciam no modo real. Os BIOS são livres (e às vezes são forçados) a mudar para os modos protegido ou longo enquanto inicializam seu hardware, mas quando entregam o controle ao sistema operacional (ou melhor, ao seu gerenciador de inicialização), eles precisam voltar ao modo real, porque é isso que esses carregadores esperam que o sistema esteja instalado.
coreboot e UEFI mudam para o modo protegido bastante cedo, enquanto para PCBIOSes (phoenix / award, ami e assim por diante), não sabemos. Eles são de código fechado e geralmente não dizem muito sobre seus internos, e suas interfaces são todas especificadas como modo real.
Para sistemas que executam com RAM ECC, você pode ter certeza de que eles alternam para algum modo capaz de endereçar toda a RAM e, portanto, passam pelo menos para o modo protegido - isso é porque precisam inicializar a memória (escreva algum valor para cada endereço ) na inicialização ou o sistema seria interrompido se algum código posterior ler endereços que nunca foram gravados (devido à detecção de erros que podem produzir um falso positivo). Mas como foi dito, isso é interno ao BIOS, e nada que meros mortais possam descobrir facilmente ou que precisem pensar.
tl; dr: O BIOS está no modo real em todos os pontos em que é visível externamente; portanto, para todos os efeitos, pode ser executado no modo real o tempo todo.