Processo de Carga do Linux (boot)
Entenda como funciona os gerenciadores de Boot no Linux
Qualquer computador PC quando ligado inicia uma série de ações complexas de teste de hardware programada por uma memória especial chamada de BIOS.
Esta memória tem a função de dar a partida na máquina, reconhecendo os dispositivos instalados e realizando a carga do sistema operacional.
Durante o boot, o BIOS realiza uma série de testes, cuja função é determinar com exatidão os componentes de hardware instalados no sistema. Este teste é chamado de POST (power-on self test).
É através do POST que o computador busca informações dos números e dos tipos de placas, drives de cd-rom, HDs, portas seriais, paralelas e USBs, monitor, mouse, teclado, etc.
Logo depois dos testes de hardware, a BIOS procura nos dispositivos de discos rígidos e CD-ROM um endereço especial chamado de setor de boot.
Nas placas mães que adotam o sistema EFI ou UEFI, o processo de carga do sistema operacional envolve ler um arquivo especial de carga à partir de um sistema de arquivo em uma partição especial chamada EFI System Partition (ESP).
Esta partição especial usa o formato da FAT (File Allocation Table). No Linux é tipicamente montada em /boot/efi.
Este esquema utilizado pelo EFI é mais complexo que na BIOS, permitindo que cada sistema operacional instalado no computador tenha o seu próprio sistema de carga de boot separado.
Desta forma o EFI possui um “gerenciador de boot” que permite que o usuário escolha qual sistema de carga de boot quer dar início quando liga o computador.
Para que este sistema “gerenciador de boot” do EFI funcione, é preciso que os sistemas de carga de boot estejam devidamente registrados no firmware através do próprio utilitário da EFI ou através do programa efibootmgr no Linux.
Processo de Carga do Kernel
Dependendo do tipo de disco utilizado, o setor de boot, ou setor de carga, está localizado em um local específico com uma determinada assinatura definida por padrões da indústria.
É no setor de boot que os sistemas operacionais gravam o software responsável por iniciar a carga do sistema operacional.
Desta forma, a BIOS ou firmware de placa-mãe procura no setor de boot do disco o gerenciador de boot.
No Linux os gerenciadores mais comuns são o GRUB e GRUB 2. Eles são responsáveis pela carga do Kernel na memória.
Durante a carga do kernel, o Linux carrega um sistema de arquivos especial chamado initramfs, que contém uma versão minimalista do sistema de arquivos, para que o processo init (pai de todos os processos no Linux) possa ser carregado.
Isto permite que diversas tarefas possam ser executadas antes que o sistema de arquivos real seja carregado.
Após a carga do Kernel, este inicia um processo especial chamado init (para sistemas baseados em SystemV) ou o systemd (para sistemas baseados em Systemd).
Tanto o init ou o systemd são o pai de todos os processos e responsável pelo restante da carga do boot do Linux.
Depois da carga do boot, o init chama outro programa especial chamado getty, que é responsável pela autenticação dos usuários e pelo início do processo de shell.
Veja como funciona o Grub no Linux:
Aprenda muito mais sobre Linux em nosso curso online. Você pode fazer a matrícula aqui com trial de 7 dias grátis. Se você já tem uma conta, pode acessar aqui.