Ao ligar o computador

O que realmente acontece, da energia à área de trabalho

Organização de Computadores

Visão geral: uma corrente de entregas

Ligar o computador dispara uma sequência de inicialização (boot): cada etapa prepara o ambiente e entrega o controle à etapa seguinte, do hardware mais bruto até a interface do usuário.


Energia

Firmware
BIOS/UEFI

POST

Bootloader

Kernel
do SO

Usuário

A palavra "boot" vem de bootstrap ("erguer-se pelos próprios cadarços"): o computador precisa carregar um software para funcionar, mas ainda não tem software carregado. A solução é uma corrente de programas cada vez maiores, começando por um minúsculo código fixo no hardware.

1O pulso de energia

Ao pressionar o botão, a placa-mãe sinaliza à fonte de alimentação (PSU) que ligue. A fonte converte a corrente alternada da tomada em tensões contínuas estáveis (+12V, +5V, +3,3V).

Quando essas tensões estabilizam, a fonte envia o sinal Power Good. Só então o circuito libera o reset da CPU e o clock começa a oscilar.

botão → placa-mãe
  → PSU liga
  → tensões estabilizam
  → sinal "Power Good"
  → libera RESET da CPU
  → clock ativo

Sem o sinal Power Good, a CPU é mantida em reset: nada executa enquanto a energia não for confiável. É uma proteção — operar com tensão instável corromperia dados e danificaria componentes.

2A CPU "acorda": o vetor de reset

Quando o reset é liberado, a CPU está em um estado conhecido de fábrica. Seu registrador PC (contador de programa) aponta para um endereço fixo, o vetor de reset — gravado no projeto do processador.

Esse endereço é mapeado, pelo chipset, para a memória ROM/flash do firmware. Ou seja: a primeiríssima instrução que a CPU executa já é a do BIOS/UEFI, não da RAM (que ainda está vazia e nem foi inicializada).

Nos PCs x86 clássicos, a CPU acorda em modo real (16 bits, compatível com o 8086 de 1978) e começa perto do topo do espaço de endereços (0xFFFFFFF0). Uma das tarefas do firmware é levar a máquina a um modo moderno (protegido/longo, 32/64 bits).

3O firmware: BIOS e UEFI

O firmware é o software de baixo nível gravado em memória não-volátil na placa-mãe. Ele é o primeiro a rodar e tem uma missão: preparar o hardware e encontrar o sistema operacional.

BIOS (legado)

Padrão desde os anos 1980. Opera em 16 bits, usa o esquema de partição MBR (limite de ~2 TB) e procura o boot no primeiro setor do disco.

UEFI (moderno)

Substituto atual. Opera em 32/64 bits, usa GPT (discos enormes), tem interface gráfica, rede, e um gerenciador de boot próprio. Suporta Secure Boot.

Hoje "BIOS" virou sinônimo popular do menu de configuração, mas a tecnologia real na maioria das máquinas é UEFI (muitas vezes em modo de compatibilidade com a BIOS legada, o CSM).

4POST: o autoteste de inicialização

A primeira grande rotina do firmware é o POST (Power-On Self-Test): um diagnóstico que verifica se o hardware essencial está presente e funcional antes de tentar carregar qualquer sistema.

Por que bipes e não mensagens? No início do POST, a placa de vídeo pode ainda não estar pronta. O som (ou um LED/POST code) é a única forma de comunicar um defeito tão cedo.

5Inicialização e descoberta de dispositivos

Passado o POST, o firmware enumera os dispositivos conectados: percorre os barramentos (PCIe, USB, SATA/NVMe) descobrindo o que existe e atribuindo recursos a cada um.

TarefaO que faz
Enumeração PCIeDescobre placas e dispositivos; aloca endereços de memória e interrupções (IRQ)
Inicialização de controladoresPrepara SATA/NVMe, USB, rede e áudio para uso
Option ROMsExecuta firmwares embutidos em placas (ex.: boot por rede/PXE, RAID)
Tabelas ACPIMonta tabelas que descrevem o hardware e a energia para o futuro SO

O firmware também monta as tabelas ACPI: um "mapa do hardware" que ele entrega ao sistema operacional, descrevendo dispositivos, interrupções e recursos de gerenciamento de energia.

6Escolhendo de onde dar boot

Com o hardware pronto, o firmware decide de onde carregar o sistema, seguindo a ordem de boot configurada (SSD, USB, rede...).

Caminho BIOS / MBR

Lê o MBR — o primeiro setor (512 bytes) do disco. Ali há um pequeno código de boot e a tabela de partições. O firmware carrega esse código e lhe passa o controle.

Caminho UEFI / GPT

Lê a ESP (EFI System Partition), uma partição FAT com arquivos .efi. O gerenciador de boot da UEFI executa o bootloader diretamente, sem depender do setor 0.

É aqui que aparece o erro "No bootable device": o firmware percorreu a lista e não encontrou, em nenhum dispositivo, um carregador de boot válido.

7O bootloader (ex.: GRUB)

O bootloader é um programa especializado cuja única função é carregar o kernel do sistema operacional na memória e iniciá-lo. Exemplos: GRUB (Linux), Windows Boot Manager, systemd-boot.

Bootloaders complexos costumam ter estágios: um trecho minúsculo (que cabe no MBR ou na ESP) carrega um segundo estágio maior, capaz de ler o disco e mostrar o menu. É a corrente do bootstrap em ação, novamente.

8Carregando o kernel

O bootloader copia para a memória dois itens e entrega o controle ao kernel:

  • Kernel: o núcleo do SO, geralmente comprimido — ele se descompacta na RAM.
  • initramfs / initrd: um mini sistema de arquivos temporário, com os drivers essenciais para enxergar o disco real (ex.: controlador NVMe, RAID, criptografia).
GRUB carrega:
  /boot/vmlinuz (kernel)
  /boot/initramfs (drivers)

parâmetros:
  root=/dev/nvme0n1p2
  quiet splash

→ salta para o kernel

O initramfs resolve um problema do tipo "ovo e galinha": para montar o disco onde está o sistema, às vezes é preciso de um driver que está... nesse mesmo disco. O initramfs traz esses drivers já na RAM.

9O kernel assume o comando

Agora o kernel está no comando e configura o computador para a operação normal e multitarefa:

A partir daqui, o firmware sai de cena: quem controla o hardware é o kernel, em modo privilegiado. O BIOS/UEFI só voltaria a atuar em um novo boot.

10O primeiro processo (PID 1)

Com o ambiente pronto, o kernel cria o primeiro processo de usuário — o init (hoje, geralmente o systemd no Linux). Ele recebe o PID 1 e é o ancestral de todos os outros processos.

Tarefa do init/systemdExemplo
Iniciar serviços do sistemaRede, áudio, impressão, registro de logs
Montar os demais sistemas de arquivosPartições de dados, swap
Subir o ambiente de loginConsole de texto ou servidor gráfico

Os SOs antigos usavam runlevels sequenciais; o systemd usa targets e inicia serviços em paralelo, respeitando dependências — por isso os boots modernos são tão mais rápidos.

11Chega ao usuário

Por fim, sobe a camada que interage com a pessoa:

Servidor gráfico
(Wayland/X11)
Gerenciador
de login
Sessão /
Área de trabalho

Após a autenticação, o SO carrega o ambiente de trabalho (ou o shell de texto) e os programas de inicialização do usuário. O computador finalmente está pronto para uso — encerrando uma cadeia que durou de poucos segundos a alguns instantes.

Aprofundamento: segurança da cadeia de boot

Cada elo do boot carrega o próximo — então um invasor que comprometa um elo inicial controla todo o sistema (um bootkit). Por isso a UEFI moderna protege essa cadeia:

Secure Boot

A UEFI só executa bootloaders/kernels assinados digitalmente por chaves confiáveis. Código adulterado é recusado.

TPM e Measured Boot

Um chip TPM registra "medições" (hashes) de cada etapa. Permite detectar adulteração e liberar chaves (ex.: BitLocker) só se o boot estiver íntegro.

É a ideia de cadeia de confiança (root of trust): confia-se em uma raiz imutável no hardware, que verifica o próximo elo, que verifica o seguinte — estendendo a confiança até o SO.

Aprofundamento: boot a frio, a quente, suspensão e hibernação

Nem todo "ligar" é igual. O estado de onde o computador parte muda o que acontece:

ModoO que ocorre
Boot a frioParte da máquina desligada: executa POST completo e toda a cadeia.
Boot a quente (reset)Reinício com a energia já presente; pode pular partes do POST.
Suspensão (RAM / S3)O estado fica na RAM (que continua energizada). Retorno quase instantâneo; perde tudo se faltar energia.
Hibernação (disco / S4)O conteúdo da RAM é salvo no disco e a máquina desliga. Retorna ao estado anterior, mais lento que a suspensão.

Por isso retomar da suspensão é muito mais rápido que um boot completo: não há POST nem recarregamento do kernel — apenas se restaura o estado que ficou guardado na memória.

A cadeia completa, em ordem

Glossário do tópico

Bootstrap / BootProcesso de inicialização que "ergue" o computador por etapas.
Firmware (BIOS/UEFI)Software em ROM/flash que roda primeiro e encontra o SO.
POSTAutoteste do hardware essencial ao ligar.
Vetor de resetEndereço fixo onde a CPU começa a executar após o reset.
MBR / GPT / ESPEsquemas de partição e a partição de boot da UEFI.
BootloaderPrograma que carrega o kernel do SO (ex.: GRUB).
initramfsMini sistema temporário com drivers para montar o disco real.
init / systemd (PID 1)Primeiro processo de usuário; inicia os serviços.
Secure Boot / TPMMecanismos que garantem a integridade da cadeia de boot.

Exercícios resolvidos

1. Por que a CPU não pode simplesmente começar executando o sistema operacional a partir da RAM ao ser ligada?

Ver solução
A RAM é volátil: ao ligar, está vazia e sequer foi inicializada. Por isso a CPU acorda no vetor de reset, que aponta para a ROM/flash do firmware — um código fixo e não-volátil. Esse firmware é que, posteriormente, carrega o SO do disco para a RAM. É a essência do bootstrap.

2. Coloque em ordem: kernel, POST, bootloader, init/systemd, firmware.

Ver solução
Firmware → POST → bootloader → kernel → init/systemd. O firmware roda primeiro e executa o POST; depois encontra e roda o bootloader, que carrega o kernel; o kernel, por fim, cria o init (PID 1).

3. Qual a função do initramfs e que problema ele resolve?

Ver solução
É um mini sistema de arquivos carregado na RAM junto com o kernel, contendo os drivers essenciais (NVMe, RAID, criptografia) para o kernel conseguir enxergar e montar o disco raiz. Resolve o paradoxo de precisar de um driver que estaria no próprio disco que ainda não pode ser lido.

4. Por que retomar da suspensão é mais rápido que um boot completo, e como o Secure Boot protege a inicialização?

Ver solução
Na suspensão (S3), o estado do sistema permanece na RAM energizada; o retorno apenas restaura esse estado, sem POST nem recarga do kernel. Já o Secure Boot faz a UEFI executar apenas bootloaders/kernels assinados digitalmente, impedindo que um código adulterado (bootkit) sequestre a cadeia de boot.

Resumindo

Ligar o computador dispara uma cadeia de bootstrap: a energia estabiliza e libera a CPU; o firmware (BIOS/UEFI) roda o POST, prepara o hardware e encontra o bootloader; este carrega o kernel, que assume a máquina, sobe o init/systemd e entrega o controle ao usuário. Cada elo prepara e confia no próximo — do primeiro volt até a área de trabalho.

Voltar aos Tópicos