Quando você liga o computador, ele inicia o processo de boot.
Esse primeiro passo envia energia aos componentes do sistema e dispara o BIOS (ou firmware UEFI em sistemas mais recentes).
2. BIOS (Basic Input/Output System)
O BIOS ou UEFI é o firmware inicial que roda logo após o computador ser ligado.
Ele executa um conjunto de verificações no hardware (chamado POST - Power-On Self-Test) e inicializa os dispositivos básicos necessários para o boot, como o disco rígido, memória RAM e CPU.
O BIOS então procura o dispositivo de boot (HD, SSD, USB, etc.) e carrega o MBR ou a partição EFI para dar continuidade ao processo de boot.
3. Master Boot Record (MBR) ou EFI Partition
O MBR (Master Boot Record) ou a partição EFI (em sistemas com UEFI) é onde ficam armazenadas as informações sobre o carregamento do sistema operacional.
Em sistemas antigos, o MBR continha o boot loader e as tabelas de partição. Nos sistemas modernos com UEFI, a partição EFI cumpre essa função.
O MBR ou a partição EFI passa o controle para o boot loader, que é responsável por carregar o sistema operacional.
4. Boot Loader (e.g., GRUB)
O Boot Loader (exemplo: GRUB) é um programa responsável por carregar o sistema operacional no momento do boot.
Ele permite selecionar qual sistema operacional inicializar (em caso de dual boot) e passa o controle para o kernel do sistema.
GRUB (Grand Unified Bootloader) é o boot loader mais comum em sistemas Linux.
5. Kernel
O kernel é o núcleo do sistema operacional Linux.
Ele é carregado na memória pelo boot loader e começa a configurar os recursos do sistema, como a CPU, a memória e os dispositivos de hardware.
O kernel é responsável por gerenciar os recursos do sistema e permitir a comunicação entre o hardware e o software.
6. Initial RAM disk - initramfs
O initramfs é um sistema de arquivos temporário carregado na memória logo após o kernel.
Ele contém módulos e drivers essenciais para que o sistema possa iniciar corretamente e acessar o sistema de arquivos principal do disco.
O initramfs é desmontado após o sistema principal estar carregado.
7. /sbin/init (parent process)
Após o kernel inicializar o sistema, ele chama o processo /sbin/init, que é o primeiro processo a rodar no Linux e é o "pai" de todos os outros processos.
O init é responsável por iniciar e gerenciar todos os outros processos do sistema.
Em muitas distribuições modernas, o init foi substituído por outros sistemas de inicialização, como o systemd, que tem mais funcionalidades e permite um gerenciamento mais eficiente de processos.
8. Command Shell using getty
Getty é o processo que configura e gerencia terminais para o login do usuário.
Ele exibe a tela de login em sistemas baseados em linha de comando.
Se o sistema tiver uma interface gráfica, o getty geralmente passa o controle para o gerenciador de login gráfico.
9. Graphical User Interface (X Window ou Wayland)
Finalmente, o sistema carrega a interface gráfica usando o X Window System (X11) ou o Wayland (um sistema gráfico mais moderno).
Esse é o ambiente visual onde o usuário pode interagir com o sistema usando janelas, ícones, menus, etc.
X11 e Wayland são servidores gráficos que gerenciam como as janelas e aplicativos são exibidos e manipulados na tela.