O que você vai aprender
Descrever os estágios da inicialização, do firmware ao init.
Distinguir os papéis de firmware, bootloader e núcleo.
Comparar a inicialização de um PC com a de um sistema embarcado.
Observar, em um sistema real, o resultado de cada estágio.
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.
Roteiro da aula
Firmware e bootloader
Bootloader. Programa que o firmware carrega para localizar e dar partida no kernel do SO (ex.: GRUB, U-Boot).
UEFI/BIOS→Bootloader→Kernel→Init / tarefas
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.
Passo a passo: a sequência de boot de um PC
A cadeia de confiança como lacres
A cadeia de boot seguro
(hardware)→Verifica e roda
firmware→Verifica e roda
bootloader→Verifica e roda
kernel
TPM, atestação e secure enclaves
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.
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.
Verifique seu entendimento
O que diferencia fundamentalmente um contêiner de uma máquina virtual?
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:
| Pergunta | Comando | O que observar |
|---|---|---|
| Quanto durou cada estágio? | systemd-analyze blame | Quem mais atrasou o boot |
| O que o núcleo viu ao subir? | dmesg | head -40 | Detecção de CPU, memória e dispositivos |
| Quem é o PID 1? | ps -p 1 -o pid,comm | A raiz da árvore de processos |
| Que chamadas um programa faz? | strace -c ls | A contagem de travessias usuário↔núcleo |
| O sistema está em modo seguro? | mokutil --sb-state | Estado do boot seguro |
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.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.
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?
Revisão relâmpago
Resumo da aula
Atividade em grupo · Cronometrando a corrente
Em trios, meçam e expliquem o tempo de inicialização de um sistema real.
Roteiro
- Rodem
systemd-analyze blamee anotem os cinco serviços mais lentos. - Classifiquem cada um: é essencial para o sistema subir ou poderia esperar?
- Estimem quanto tempo o boot ganharia se os não essenciais fossem adiados.
- Comparem com a coluna "embarcado" do simulador: por que lá isso não é problema?
Mini-quiz · Aula 4
16 questões sobre esta aula. Escolha e veja a explicação na hora.
📌 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.