What is Nostr?
Nether
npub1x6l…k6hd
2024-11-10 21:37:52

Processo de boot de um sistema Linux

1. Power ON

  • 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.

Como esses processos se intercalam?

  1. Hardware ligadoBIOS/UEFI realiza verificações básicas.
  2. BIOS/UEFI encontra o dispositivo de boot e carrega o MBR ou partição EFI.
  3. MBR/EFI localiza e executa o boot loader (GRUB).
  4. GRUB permite que o usuário escolha o sistema operacional e carrega o kernel do Linux.
  5. Kernel inicializa o sistema, configurando os recursos de hardware e carregando o initramfs.
  6. Initramfs fornece drivers e módulos necessários para o kernel acessar o sistema de arquivos principal.
  7. Kernel chama o processo /sbin/init (ou systemd), que inicia todos os serviços e processos do sistema.
  8. Init executa o getty para configurar o terminal de login.
  9. Getty chama o ambiente gráfico (X11 ou Wayland) se estiver presente, e o usuário pode então usar o sistema na interface gráfica.
Author Public Key
npub1x6ld4v5jfjtrvg0yu8s9mgmqswx0ru7egkph3xfjw5r9j5j2et2qp4k6hd