Portal do Governo Brasileiro

Inicialização

Visão Geral

Ao iniciar o computador o processador executa um código em um local conhecido. Nos computadores pessoais (PC) esse código está armazenado na memória da placa mãe, o BIOS (Sistema Básico de Entrada/Saída).

Quando um dispositivo de boot é encontrado, o loader de boot de primeiro estágio é carregado na RAM e executado. Este loader tem menos de 512 bytes (um único setor), e sua tarefa é carregar o loader de boot de segundo estágio.

O "bootloader" de segundo estágio passa o controle para a imagem do kernel, o kernel é descompactado e inicializado. Conclui mais algumas etapas e o primeiro espaço de usuário (init) inicia; a inicialização do sistema de alto nível é executada.

BIOS

A função do BIOS tem duas partes: o código Power-On Self Test (POST) e os serviços em tempo de execução. O POST executa uma verificação do hardware e depois de concluído é apagado da memória. Os serviços em tempos de execução permanecem e ficam disponíveis ao sistema operacional de destino

Para inicializar, o BIOS procura dispositivos ativos e inicializáveis na ordem de preferência definida pelas configurações de CMOS (Complementary Metal Oxide Semiconductor). Dispositivos de boot: CD-ROM, partição do disco rígido, dispositivo de rede ou pen-drive.

Primeiro estágio

O MBR (Master Boot Record) é um setor de 512 bytes, localizado no primeiro setor do disco (setor 1 do cilindro 0, cabeçote 0). O loader de boot primário reside no MBR e sua função é encontrar e carregar o loader de boot secundário.

Os primeiros 446 bytes são o loader de boot primário, que contém o código executável e um texto de mensagem de erro. Os 64 bytes seguintes formam a tabela de partição, que contém um registro para cada uma das quatro partições (cada uma com 16 bytes). Guarda informações onde cada partição começa e termina. O MBR termina com dois bytes, que são definidos como o número mágico (0xAA55). O número mágico funciona como verificação de validação do MBR.

Segundo estágio

A função do loader de boot secundário é carregar na memória, o kernel Linux e um arquivo que simula a memória RAM; o disco RAM inicial opcional (sistema de arquivo raiz temporário).

Quando o loader de boot de segundo estágio está na memória e em execução, uma tela inicial é exibida. O loader enumera dispositivos de hardware anexados, monta o dispositivo raiz e carrega os módulos de kernel necessários. O sistema de arquivos é consultado e a imagem de kernel padrão e a imagem initrd são carregadas na memória. Com as imagens prontas, o loader de boot de estágio 2 chama a imagem de kernell. O kernell é descompactado e inicializado.

Loaders de boot de primeiro e segundo estágio combinados são chamados de Linux Loader (LILO) ou GRand Unified Bootloader (GRUB) no ambiente x86 do PC.

Kernel

O kernell se encontra comprimido (zlib), uma série de rotinas permite que seja expandido e carregado na memória.

A ram image que foi carregada durante o estágio 2 do boot, contém todos os drivers necessários para que o kernel tenha acesso aos diversos dispositivos que ele precise. pode ser montado como um sistema de arquivos existentes apenas na memória.

O disco de RAM inicial (initrd) atua como sistema de arquivos temporário na RAM. Permite que o kernel execute boot totalmente, sem precisar montar disco físico. Esse mecanismo garante uma grande flexibilidade a sistemas Linux uma vez que permite inclusive que o próprio root file system resida em um servidor remoto (NFS).

Depois que o kernel executa boot, o sistema de arquivos raiz é dinamizado (por meio do pivot_root), no qual o sistema de arquivos initrd é desmontado e o sistema de arquivos real é montado

init

Após executar boot e inicializado, o kernel inicia o aplicativo do primeiro espaço do usuário. Ele é o primeiro programa chamado, compilado com a biblioteca C padrão. Até este momento no processo, nenhum aplicativo C padrão foi executado.

Observações

 

  Topo   |   Guia   |   Home