Como Funciona O Processo De Boot Do Linux

O processo de inicialização (boot) do Linux é o procedimento para inicializar o sistema. Consiste em tudo o que acontece desde quando o computador é ligado até que a interface do usuário esteja operacional.>O processo de inicialização (boot) do Linux é o procedimento para inicializar o sistema. Consiste em tudo o que acontece desde quando o computador é ligado até que a interface do usuário esteja operacional.

Depois de começar a usar o Linux, você perceberá que ter um bom entendimento das etapas do processo de inicialização pode ajudá-lo a solucionar problemas. Bem como adaptar o desempenho do computador às suas necessidades.

 

Por outro lado, o processo de inicialização pode ser bastante técnico.

 

BIOS – A Primeira Etapa

 

A inicialização de um sistema Linux baseado em x86 envolve várias etapas. Assim que o computador é ligado, o Basic Input / Output System (BIOS) inicializa o hardware, incluindo a tela e o teclado, e testa a memória principal. Esse processo também é chamado POST (Power OSelf Test).

O software do BIOS é armazenado em um chip ROM na placa-mãe. Depois disso, o restante do processo de inicialização é controlado pelo sistema operacional (SO).

 

MBR – Registro mestre de inicialização

 

Depois que o POST é concluído, o controle do sistema passa do BIOS para o carregador de inicialização. O carregador de inicialização (boot loader) é normalmente armazenado em um dos discos rígidos do sistema. Seja no setor de inicialização (BIOS/MBR) ou na partição EFI em sistemas mais recentes (Extensible Firmware Interface ou EFI/UEFI).

Posteriormente, informações importantes são carregados dos valores CMOS. Uma memória movida a bateria, que permite que o sistema mantenha a data e hora, mesmo quando está desligado.

Após esta etapa, o boot loader é carregado. Existem vários carregadores de inicialização para o Linux:

O mais comum é o GRUB (GRUnified Boot loader). Existindo o ISOLINUX (inicializar a partir de mídia removível). Temos também o DAS U-Boot (para inicializar em dispositivos embarcados/aparelhos).

A maioria dos carregadores de boot pode apresentar uma interface de usuário para escolher opções alternativas para inicializar o Linux. E até mesmo outros sistemas operacionais que possam estar instalados.

Boot loader (Carregador de Boot)

Ao inicializar o Linux, o gerenciador de inicialização é responsável por carregar a imagem do kernele o disco RAM inicial ou sistema de arquivos (que contém alguns arquivos críticos e drivers de dispositivo necessários para iniciar o sistema) na memória.

O carregador de boot tem dois estágios distintos.

Primeiro Estágio:
Em sistemas usando o método BIOS/MBR, o carregador de boot reside no primeiro setor do disco rígido, também conhecido como o Master Boot Record (MBR). Nesse estágio, o carregador de boot examina a tabela de partições e encontra uma partição inicializável. Depois de encontrar uma partição inicializável, ele procura o carregador de inicialização do segundo estágio, por exemplo, GRUB, e o carrega na RAM (Memória de Acesso Aleatório).

Para sistemas que usam o método EFI/UEFI, o firmware UEFI lê seus dados do Boot Manager para determinar qual aplicativo UEFI deve ser lançado e de onde (ou seja, de qual disco e partição a partição EFI pode ser localizada).

O firmware então inicia o aplicativo UEFI, por exemplo, GRUB, conforme definido na entrada de inicialização no gerenciador de inicialização do firmware. Este procedimento é mais complicado, mas mais versátil que os métodos MBR que são mais antigos.

Segundo Estágio:
O carregador de inicialização do segundo estágio, no caso o GRUB reside em /boot. Uma tela inicial é exibida, o que nos permite escolher qual sistema operacional (SO) será inicializado. Depois de escolher o sistema operacional, o carregador de boot carrega o kernel do sistema operacional selecionado na RAM e passa o controle para ele.

 

Os kernels são quase sempre compactados, então seu primeiro trabalho é descomprimir-se. Depois disso, ele verificará e analisará o hardware do sistema e inicializa-rá todos os drivers de dispositivo de hardware embutidos no kernel.

 

Disco RAM Inicial (initramfs)

A imagem do sistema de arquivos initramfs contém programas e arquivos binários que realizam todas as ações necessárias para montar o sistema de arquivos raiz adequado, fornecer a funcionalidade de kernel para os drivers do sistema de arquivos e dispositivos necessários para controladores de armazenamento em massa.

Assim sendo, esta etapa utiliza um mecanismo chamado udev (User Device), que é responsável por descobrir quais dispositivos estão presentes, localizar os drivers (módulos) de que precisam para funcionar corretamente e carregá-los. Depois que o sistema de arquivos raiz foi encontrado, ele é verificado quanto a erros e montado.

O programa de montagem instrui o sistema operacional de que um sistema de arquivos está pronto para uso e o associa a um ponto específico na hierarquia geral do sistema de arquivos (o ponto de montagem). Se isso for bem-sucedido, o initramfs será limpo da RAM e o programa init, no sistema de arquivos raiz (/sbin/init) será executado.

init manipula a montagem e faz o manejo para o sistema de arquivos raiz final. Se drivers de hardware especiais forem necessários antes que o armazenamento em massa possa ser acessado, eles devem estar na imagem initramfs.

Login em modo de texto

Perto do final do processo de inicialização, o init inicia um aviso de login no modo de texto. Estes permitem que você digite seu nome de usuário, seguido por sua senha para, eventualmente, obter um shell de comando.

No entanto, se você estiver executando um sistema com uma interface gráfica de login, você não os verá no início.

Os terminais que executam as shells de comando podem ser acessados usando a tecla ALT mais uma tecla de função. A maioria das distribuições inicia seis terminais de texto e um terminal gráfico começando com F1 ou F2. Em um ambiente gráfico, alternar para um console de texto requer pressionar CTRL + ALT + a tecla de função apropriada (com F7 ou F1 levando para a GUI).

Normalmente, o shell padrão é bash (Bourne Again Shell), mas há vários outros shells de comando avançados disponíveis.

O shell exibe um prompt de texto, assim indicando que está pronto para aceitar comandos. Depois que o usuário digita o comando e pressiona Enter, o comando é executado. Outro prompt é exibido após o comando ser concluído.

Concluindo

boot loader (carregador de boot) é um software que é executado após o BIOS do hardware concluir seus testes. Assim sendo, o carregador de boot, em seguida, carrega o sistema operacional. Conforme os processos acima descritos.