PROCESSO DE INICIALIZAÇÃO DO LINUX

Atualizado: 11 de set. de 2021

Se você é adepto ao sistema operacional Windows e é curioso como eu, em algum momento da sua vida, você já deve ter se perguntado o que acontece depois que você aperta o botão para ligar sua máquina... No Linux, nós temos uma ordem de sequencia, que é o processo de inicialização do Linux para inicializar o sistema e eu vou abordar as etapas dele neste artigo.

Lembrando que tem algumas variações, mas estou abordando o convencional.


Ele consiste em tudo o que acontece desde o momento em que o computador é ligado pela primeira vez até que a interface do usuário esteja totalmente operacional.


Ter um bom conhecimento das etapas do processo de inicialização pode ajudá-lo a solucionar problemas, bem como ajustar o desempenho do computador as suas necessidades.


Por outro lado, o processo de inicialização pode ser bastante técnico, e você pode começar a usar o Linux sem saber todos os detalhes.


Existem outras etapas, mas em resumo, temos 6 etapas importantes.


BIOS - a primeira etapa


Começar em um sistema Linux baseado em x86 envolve várias etapas. Quando o computador é ligado, o BIOS (Basic Input/Output System) do sistema básico de entrada/saída é inicializado com o hardware, incluindo a tela e o teclado e testa a memória principal.

Esse processo é chamado de POST (Power On Self Test) ou auto-teste pós-inicialização. A oferta da BIOS é uma loja em um chip de rum na placa do motor. Depois disso, o restante do processo de inicialização é controlado pelo sistema operacional.


Master Boot Record (MBR) e Boot Loader


Uma vez que o processo POST é concluído, o controle do sistema passa do BIOS para o carregador de inicialização.


O Boot loader (carregador de inicialização) é geralmente armazenado em um dos discos rígidos no sistema, seja no setor de boot (para sistemas tradicionais de BIOS/MBR) ou partição EFI (para interface de firmware extensível unificada mais recente ou EFI para sistemas EFI.)


Até este estágio, a máquina não acessa nenhuma mídia de armazenamento em massa. Depois disso, as informações sobre data, hora e os periféricos mais importantes são carregados para os valores CMOS (após uma tecnologia usada para armazenamento de memória alimentada por bateria que permite ao sistema manter o controle da data e hora mesmo quando está desligado).

Existem vários bootloaders para Linux, os mais comuns são:

  • GRUB (Grand unified bootloader)

  • ISOLINUX (compila de dispositivos removíveis)

  • DAS U-Boot (para inicializar em dispositivos/aparelhos embutidos)

A maioria dos carregadores de inicialização do Linux pode apresentar uma interface de usuário para escolher opções alternativas para inicializar o Linux e até mesmo outros sistemas operacionais que podem ser instalados.


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


Bootloader em ação


O boot loader tem dois estágios distintos:


Para sistemas usando o método BIOS/MDR, o carregador de boot reside no primeiro setor fora do disco rígido, também conhecido como registro mestre de inicialização (Master Boot Record, MBR).

O tamanho do MBR é de apenas 512 bytes. Neste estágio, o carregador de boot examina a tabela de partição e encontra uma partição inicializável. Depois de encontrar uma partição inicializável, ele procura o carregador de inicialização de 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ê os dados de cada gerenciador de inicialização para determinar qual aplicativo UEFI deve ser iniciado e de onde (de qual disco e partição a partição EFI pode ser encontrada). O firmware, então, coloca em espera aquele aplic ativo 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 do que os métodos MBR mais antigos.


O carregador de boot de segundo estágio reside em /boot. Uma tela inicial é exibida, o que nos permite escolher qual sistema operacional inicializar. 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. Kernel quase sempre é compactado, então sua primeira tarefa é descompactar a si mesmo. Depois disso, ele rastreará e analisará o hardware do sistema e inicializará todos os drivers de dispositivo de hardware integrados ao kernel.


Disco RAM Inicial


A imagem do sistema de arquivos initramfs contém programas e arquivos binários que executam todas as ações necessárias para montar o sistema de arquivos raiz adequado, como fornecer funcionalidade de kernel para o sistema de arquivos e drivers de dispositivo necessários para os controladores de armazenamento massivo com um recurso chamado udev (user device), que é responsável por descobrir quais dispositivos estão presentes, localizar os drivers de dispositivo que eles precisam para operar corretamente e carregá-los. Depois que o sistema de arquivos raiz for 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 for bem-sucedido, o initramfs é removido da RAM e o programa init do sistema de arquivos raiz (/sbin /init) é executado.


O Init lida com a montagem e a rotação sobre o sistema de arquivos raiz real final. Se forem necessários drivers de hardware especiais antes que o armazenamento em massa possa ser acessado, eles devem ser a imagem initramfs.


Login em modo texto


Perto do final do processo de inicialização, o init precisa de vários prompts de login em modo texto. Isso permite que você digite seu nome de usuário, seguido de sua senha e, eventualmente, obtenha um shell de comando.