A BIOS lê diretamente o bootloader ou o carrega na RAM?

4

Estou tentando entender os primeiros passos do processo de inicialização.

  1. A CPU lê o BIOS

    • Ele lê uma instrução de endereço fixo
    • Irá para o primeiro endereço de instruções da BIOS
    • Ele executará o código
    • Ele fará o "Teste de inicialização", verificará os dispositivos e encontrará o primeiro dispositivo inicializável
  2. O Bios irá então ler o MBR para carregar o gerenciador de inicialização primário

  3. O gerenciador de inicialização primário executará o segundo estágio do carregador (ex: Grub)
  4. O segundo estágio do carregador carregará o Kernel na memória

Minha pergunta é:

  • Quando a BIOS e carrega o carregador de boot primário na memória, estamos falando da memória RAM?
  • A CPU pode ser endereçada diretamente (leia as instruções) do HDD sem carregar o conteúdo na RAM (desconsideramos o problema de desempenho aqui)?
  • A mesma pergunta para o BIOS: é lida diretamente ou carregada na RAM antes da execução?
por Pierre-Jean 04.06.2014 / 00:41

2 respostas

2

The CPU read the BIOS […]

Essa é uma visão simplificada, mas a ideia básica é a correta. O código de inicialização típico consiste, na verdade, em várias partes sucessivas.

The Bios will then read the MBR to load the primary boot loader

Esse é um BIOS legado. O PC BIOS moderno possui uma interface de bootloader padronizada: UEFI . Plataformas não PC não chamam o “BIOS” de bootloader fornecido pelo fabricante.

When the BIOS read and load the primary boot loader in memory, are we talking the RAM memory?

Sim. Não há outra memória que possa ser gravada (sob operação normal).

Can the CPU address directly (read instructions) from the HDD without loading the content into RAM (we disregard performance issue here)?

Não. Nenhuma arquitetura que conheço possui um armazenamento magnético que seja endereçável pela CPU. Sempre é necessário algum código no sistema operacional para acessar o disco rígido.

Same question for the BIOS: is it read directly or loaded in RAM before execution?

Isso dependeria do hardware. Algum código na ROM ou na memória flash pode ser executado diretamente da ROM. Normalmente, além de algum código de bootloader inicial executado a partir da ROM (ou EEPROM no hardware do PC, eu acho), o código seria copiado em RAM primeiro, porque a RAM é mais rápida.

    
por 04.06.2014 / 02:14
2

Graças a @slm , encontrei a maior parte da resposta.

When the BIOS read and load the primary boot loader in memory, are we talking the RAM memory?

Sim, nós fazemos. O BIOS carrega o código do carregador de inicialização em um endereço específico ( 0x7c00 ) e pula para esse endereço para executar as instruções.

Can the CPU address directly (read instructions) from the HDD without loading the content into RAM (we disregard performance issue here)?

Eu não acho que a CPU possa executar uma instrução que não esteja no espaço de endereço da memória, mas por favor me corrija se eu estiver errado (Posso executar uma instrução a partir do espaço de endereço de E / S?).

Same question for the BIOS: is it read directly or loaded in RAM before execution?

O BIOS é lido diretamente: alguma zona de endereço do espaço de endereço de memória redireciona diretamente para a memória ROM.

Fonte: link

Referências

por 04.06.2014 / 02:09