Como o mbr transfere seu controle para o bootloader

Como o mbr transfere seu controle para o bootloader

O que eu sei é o seguinte:

Na inicialização, o BIOS segue a seguinte sequência:

1.Autoteste de inicialização (POST)
2.Detecte o BIOS da placa de vídeo (chip) e execute seu código para inicializar o hardware de vídeo.
3.Detetar qualquer outro BIOS de dispositivo e invocar suas funções de inicialização
4.Exibir a tela de inicialização do BIOS
5.Executar um breve teste de memória (identificar quanta memória há no sistema)
6.Definir parâmetros de memória e unidade
7.Configurar Plug & Dispositivos de reprodução (tradicionalmente dispositivos de barramento PCI)
8.Atribuir recursos (canais DMA e IRQs)
9.Identificar o dispositivo de inicialização

Quando o BIOS identifica o dispositivo de inicialização (normalmente um dos vários discos marcados como disco de inicialização), ele lê o bloco 0 desse dispositivo no local de memória 0x7c00 e salta para lá.

Mas o que acontece depois disso, ou seja, como o BIOS dá o controle ao bootloader neste estágio?

Responder1

Conforme mencionado na postagem acima, o BIOS simplesmente dá controle ao bootloader executando uma instrução de salto para 0x7C00.

Um dispositivo não inicializável pode ter a instrução INT 18 (0xCD 0x18) em seus primeiros dois bytes (e 55aa nos bytes 511, 512), o que simplesmente faria com que o BIOS passasse para o próximo dispositivo na ordem de inicialização.

Responder2

Já que você mencionou 0x7C00, vou me concentrar na inicialização MBR (GPT é um negócio diferente).

Como você disse, uma vez que o BIOS determina que um dispositivo é inicializável (ou seja, tem 0x55AA como os dois últimos bytes do primeiro setor), ele lê o primeiro setor do disco e o carrega na memória começando em 0x7C00. Depois de emitir a instrução de salto, a CPU começa a executar qualquer código que esteja lá.

Cabe então ao bootloader descobrir o que carregar e executar em seguida. O código que faz o carregamento e salta para o próximo estágio tem que caber nos 510 bytes restantes daquele primeiro setor, na verdade menos, já que os discos rígidos também possuem a tabela de partições.

Leitura adicional:Sequencia de inicialização,Rolando seu próprio bootloader

informação relacionada