LRM Prof. Mantovani ← Aulas da disciplina
Semana 4 · Aula 4 de 14

U1 · Do firmware ao serviço: a inicialização do sistema

A corrente do boot, do sinal de energia ao primeiro processo de usuário, comparando um PC e um microcontrolador — com laboratório de observação do sistema em execução.

📚 Sistemas Operacionais🧪 1 simulador(es)📝 mini-quiz ao final
Objetivos da aula

O que você vai aprender

1

Descrever os estágios da inicialização, do firmware ao init.

2

Distinguir os papéis de firmware, bootloader e núcleo.

3

Comparar a inicialização de um PC com a de um sistema embarcado.

4

Observar, em um sistema real, o resultado de cada estágio.

1 · Motivação

Quem liga o sistema operacional?

O SO gerencia os processos. Mas quem carrega o SO? No instante em que a energia chega, não há sistema operacional nenhum na memória — só um processador saindo do reset e uma memória volátil vazia.

A resposta é uma corrente de programas cada vez maiores, cada um carregando o próximo. Entender essa corrente explica desde por que o PC demora a ligar até como se garante que ninguém trocou o firmware do equipamento.

2 · Mapa

Roteiro da aula

1 A corrente do boot, estágio a estágio
2 Firmware e bootloader: quem faz o quê
3 Simulador: PC × embarcado lado a lado
4 Laboratório: observar o sistema em execução
3 · Conceito

Firmware e bootloader

Firmware. Software de baixo nível gravado no hardware (UEFI no PC, gerenciador de boot em microcontrolador) que inicializa a plataforma logo após a energização.
Bootloader. Programa que o firmware carrega para localizar e dar partida no kernel do SO (ex.: GRUB, U-Boot).
Power-onFirmware
UEFI/BIOS
BootloaderKernelInit / tarefas
4 · Explicação

Boot em embarcados: direto da flash

Em embarcados, o boot costuma ser bem mais curto. Muitos microcontroladores não têm bootloader complexo nem SO completo: ao sair do reset, a CPU começa a executar o firmware da aplicação gravado diretamente na flash interna (execute-in-place). Não há disco para carregar um kernel.

Quando há um RTOS como o FreeRTOS, ele é linkado junto com a aplicação num único binário: o "boot" é apenas inicializar a stack, zerar a memória e chamar main(), que cria as tarefas e inicia o escalonador. Dispositivos maiores (roteadores, smart TVs) usam bootloaders como o U-Boot, que podem inclusive carregar a imagem pela rede.

5 · Interativo

Passo a passo: a sequência de boot de um PC

Passo 1
Power-on: a CPU começa a executar em um endereço fixo, lendo o firmware (UEFI/BIOS) gravado na placa.
Passo 2
O firmware inicializa hardware essencial (RAM, controladoras) e procura um dispositivo de boot.
Passo 3
Carrega o bootloader (ex.: GRUB), que localiza e carrega o kernel do SO na memória.
Passo 4
O kernel inicializa drivers, monta o sistema de arquivos raiz e cria o primeiro processo.
Passo 5
O init/systemd sobe os serviços; a tela de login aparece. O sistema está pronto.
6 · Analogia

A cadeia de confiança como lacres

🔐 Analogia
O boot seguro é como uma corrente de lacres de segurança. A fábrica (raiz de confiança em hardware) lacra a primeira caixa. Cada caixa, antes de abrir a seguinte, confere que o lacre dela está intacto e é autêntico. Se alguém adulterou qualquer caixa no caminho, o lacre não bate e a abertura para. Assim, do hardware ao SO, ninguém injeta software falso sem quebrar a corrente.
7 · Fluxo

A cadeia de boot seguro

Raiz de confiança
(hardware)
Verifica e roda
firmware
Verifica e roda
bootloader
Verifica e roda
kernel
🔑
Boot seguro (Secure Boot). Cada estágio verifica a assinatura criptográfica do próximo antes de executá-lo. A confiança parte de uma raiz imutável em hardware e se estende, elo a elo, até o SO. Quebrar um elo interrompe o boot.
8 · Aprofundamento

TPM, atestação e secure enclaves

TPM (Trusted Platform Module). Chip dedicado que guarda chaves criptográficas e registra medidas (hashes) de cada estágio do boot em registradores especiais (PCRs).
Atestação remota. A plataforma prova a um servidor, com assinaturas do TPM, que arrancou software íntegro e esperado.

Além do TPM, processadores oferecem enclaves seguros (Intel SGX, ARM TrustZone): áreas isoladas onde código e dados sensíveis (chaves, biometria) rodam protegidos até do próprio SO. Em embarcados, a TrustZone divide o chip em "mundo seguro" e "mundo normal", base para pagamentos e DRM em celulares.

9 · Interativo

Compare as duas plataformas

Percorra os estágios nas duas plataformas do simulador. Preste atenção à ordem de grandeza do tempo: o PC leva segundos porque precisa descobrir que hardware existe; o microcontrolador leva milissegundos porque já sabe.

10 · Interativo

Verifique seu entendimento

O que diferencia fundamentalmente um contêiner de uma máquina virtual?

A VM virtualiza o hardware e roda um SO completo por instância (isolamento forte, mais peso). O contêiner isola no nível do SO, compartilhando o kernel do hospedeiro — mais leve e rápido, porém com isolamento mais fraco.
11 · Laboratório

Vendo o sistema por dentro

Roteiro para a prática desta semana, em máquina Linux (ou máquina virtual). Cada passo responde a uma pergunta desta unidade:

PerguntaComandoO que observar
Quanto durou cada estágio?systemd-analyze blameQuem mais atrasou o boot
O que o núcleo viu ao subir?dmesg | head -40Detecção de CPU, memória e dispositivos
Quem é o PID 1?ps -p 1 -o pid,commA raiz da árvore de processos
Que chamadas um programa faz?strace -c lsA contagem de travessias usuário↔núcleo
O sistema está em modo seguro?mokutil --sb-stateEstado do boot seguro
⚠️
Rode strace -c ls e depois strace -c ls -R /usr. Compare o número de chamadas. Você acabou de medir, na prática, o custo que estudamos na semana passada.
12 · Caso prático

Segurança em IoT: o elo mais fraco

Dispositivos de IoT são alvos frequentes justamente por falharem nos fundamentos desta aula. Botnets como a Mirai tomaram milhões de câmeras e roteadores explorando senhas padrão nunca alteradas e firmware sem atualização.

As defesas são as mesmas que estudamos: boot seguro para impedir firmware adulterado; atualização assinada (OTA) para corrigir falhas; menor privilégio para que serviços não rodem como root; e isolamento por hardware (TrustZone) para chaves. Em IoT, a segurança de plataforma não é luxo — é o que separa um produto de uma porta de entrada para ataques.

13 · Interativo

Revele a análise

Um PC leva ~7 s para iniciar e um forno de micro-ondas responde ao botão instantaneamente. Os dois têm processador. Por que a diferença é de mil vezes?
Porque o PC gasta a maior parte do tempo descobrindo com que hardware está lidando: testa memória, enumera barramentos, procura meios de inicialização, carrega um núcleo genérico que precisa servir a milhares de combinações de máquina e ainda sobe dezenas de serviços em paralelo. O micro-ondas já sabe tudo isso em tempo de compilação — o periférico está no esquemático, o endereço está fixo no código, não há disco nem descoberta. A corrente do boot não é longa por lentidão do processador, e sim pela quantidade de incerteza que precisa ser resolvida antes de executar a primeira linha útil.
14 · Flashcards

Revisão relâmpago

Hipervisor tipo 1virar
Roda direto no hardware (bare-metal): ESXi, Xen. Menos overhead; domina a nuvem.
Contêinervirar
Isolamento no nível do SO; compartilha o kernel via namespaces e cgroups. Leve, isolamento mais fraco.
Boot segurovirar
Cada estágio verifica a assinatura do próximo, formando uma cadeia de confiança desde o hardware.
TPMvirar
Chip que guarda chaves e mede o boot (PCRs); base para atestação remota.
Menor privilégiovirar
Cada componente recebe só as permissões estritamente necessárias.
15 · Síntese

Resumo da aula

🔑
O boot é uma corrente: cada elo carrega e transfere controle ao seguinte, do firmware ao primeiro processo de usuário. Num PC a corrente é longa porque o hardware é desconhecido; num embarcado é curta porque tudo já foi decidido em projeto. O PID 1 que nasce no fim dessa corrente é a raiz de tudo o que estudaremos na próxima unidade.
Mão na massa · colaborativo

Atividade em grupo · Cronometrando a corrente

Em trios, meçam e expliquem o tempo de inicialização de um sistema real.

⏱️ 30 min👥 trios🧩 medição e análise

Roteiro

  1. Rodem systemd-analyze blame e anotem os cinco serviços mais lentos.
  2. Classifiquem cada um: é essencial para o sistema subir ou poderia esperar?
  3. Estimem quanto tempo o boot ganharia se os não essenciais fossem adiados.
  4. Comparem com a coluna "embarcado" do simulador: por que lá isso não é problema?
Operadorexecuta os comandos e coleta os números
Analistaclassifica os serviços por essencialidade
Relatormonta a conclusão comparativa
📤 Entrega: Tabela com os cinco serviços mais lentos, a classificação de cada um e uma estimativa de ganho.
Teste seu conhecimento

Mini-quiz · Aula 4

16 questões sobre esta aula. Escolha e veja a explicação na hora.

0/16

📌 Resumo — leve isto para a prova

  • O boot é uma corrente em que cada elo carrega e entrega o controle ao seguinte.
  • O firmware existe porque, ao ligar, não há nada na memória volátil.
  • Num PC a corrente é longa porque o hardware é desconhecido; num embarcado é curta porque já foi decidido em projeto.
  • A cadeia de confiança verifica cada elo antes de executá-lo — é assim que se detecta firmware adulterado.
  • O PID 1 nascido no fim do boot é a raiz da árvore de processos da próxima unidade.