O que você vai aprender
Diferenciar máquinas virtuais e contêineres.
Explicar mecanismos de proteção e segurança.
Relacionar os conceitos da disciplina ao Linux.
Um servidor, muitos sistemas
Como uma empresa roda dezenas de sistemas isolados em um único servidor físico, sem que um interfira no outro? E como entregar o mesmo software identicamente em qualquer máquina? As respostas são virtualização e contêineres.
A virtualização é a base da computação em nuvem e do DevOps moderno. Entendê-la fecha o curso conectando tudo: processos, memória, escalonamento e segurança.
O percurso final
contêineres→Hypervisores→Proteção e
segurança→Estudo de
caso: Linux
Comparamos máquinas virtuais e contêineres, vemos os tipos de hypervisor, revisamos proteção/segurança e amarramos tudo no Linux.
Máquina virtual e contêiner
Contêiner. Isolamento em nível de SO; os processos compartilham o mesmo kernel, mas com namespaces e limites próprios.
A diferença fundamental está em onde ocorre o isolamento: no hardware (VM) ou no kernel do SO (contêiner).
VM × contêiner em detalhe
| Máquina virtual | Contêiner | |
|---|---|---|
| Isolamento | Hardware (forte) | SO (mais leve) |
| Kernel | Um por VM | Compartilhado com o host |
| Peso / inicialização | Pesado / lento (segundos a minutos) | Leve / rápido (milissegundos) |
| Densidade | Poucas por host | Muitas por host |
| Exemplo | VMware, KVM, Hyper-V | Docker, LXC, Podman |
Tipos de hypervisor
- Tipo 1 (bare-metal): roda direto sobre o hardware (ex.: ESXi, Xen, KVM). Mais eficiente; usado em servidores e nuvem.
- Tipo 2 (hospedado): roda como aplicativo dentro de um SO host (ex.: VirtualBox, VMware Workstation). Mais simples para desktop.
Stepper: subindo um contêiner
Proteção e segurança
Segurança. Defesa contra ameaças externas e internas: autenticação, criptografia, políticas.
Proteção é "quem pode o quê dentro do sistema"; segurança é "como nos defendemos de quem não deveria estar aqui".
Quem pode o quê
O controle de acesso é descrito por uma matriz de acesso (sujeitos × objetos). No Unix, isso aparece como permissões de leitura/escrita/execução para dono, grupo e outros.
| Sujeito \ Objeto | arquivo A | impressora |
|---|---|---|
| Usuário 1 | ler, escrever | usar |
| Usuário 2 | ler | — |
O condomínio com crachás
Menor privilégio e defesa em profundidade
- Menor privilégio: dar a cada processo/usuário apenas o acesso estritamente necessário.
- Defesa em profundidade: múltiplas camadas de proteção, de modo que a falha de uma não comprometa tudo.
A pilha de virtualização
kernel host→SO convidado /
contêiner→Aplicação
Na VM, entre o hardware e a aplicação há um hypervisor e um SO convidado completo. No contêiner, há apenas o kernel do host e o isolamento por namespaces — daí a leveza.
Linux como estudo de caso
O Linux reúne tudo o que vimos no curso: kernel monolítico modular, processos criados por fork(), escalonador justo (CFS), memória virtual paginada, sistema de arquivos (ext4), escalonadores de disco e suporte nativo a contêineres.
Check: VM ou contêiner?
Você precisa rodar um sistema legado que exige um kernel diferente e antigo, totalmente isolado. O que usar?
Microsserviços na nuvem
Uma empresa migra um monólito para 50 microsserviços leves e idênticos. Contêineres são ideais: sobem em milissegundos, são densos (muitos por host) e empacotam a aplicação com suas dependências, garantindo que "rode igual em qualquer lugar".
Já para isolar clientes diferentes com forte garantia de segurança e kernels possivelmente distintos, a nuvem combina contêineres dentro de VMs — defesa em profundidade na prática.
Mitos sobre contêineres e VMs
- Achar que contêiner é "uma VM leve" — ele não tem kernel próprio; compartilha o do host.
- Supor que contêiner isola tão fortemente quanto VM — o isolamento por SO é mais fraco que o por hardware.
- Confundir proteção (controle interno) com segurança (defesa contra ameaças).
- Esquecer que namespaces isolam a visão e cgroups limitam o consumo: são coisas diferentes.
Decisões de arquitetura
- Precisa de kernel próprio ou isolamento máximo? VM.
- Precisa de densidade, partida rápida e portabilidade? Contêiner.
- Precisa de ambos? Contêineres dentro de VMs (padrão em nuvem).
- Sempre aplique menor privilégio e defesa em profundidade.
Reveal: namespaces e cgroups
Como namespaces e cgroups, juntos, criam um contêiner?
Revisão relâmpago
O curso inteiro se encontra aqui
- Estrutura/kernel (aula 2): o Linux é o exemplo de kernel monolítico modular.
- Processos e escalonamento (aulas 3 e 5): fork() e CFS aparecem no estudo de caso.
- Memória e arquivos (aulas 9–11): memória virtual paginada e ext4 fecham o quadro.
- Sincronização e deadlocks (aulas 7 e 8): sustentam a concorrência por trás de tudo.
O essencial sobre virtualização
Atividade em grupo · VM ou contêiner?
Em trios, decidam a tecnologia para diferentes cenários.
Roteiro
- Cenário A: rodar Windows e Linux no mesmo notebook.
- Cenário B: implantar 50 microsserviços leves e idênticos.
- Cenário C: isolar um sistema legado com kernel antigo.
- Justifiquem cada escolha em termos de isolamento, peso e compartilhamento de kernel.
Mini-quiz · Aula 13
20 questões sobre esta aula. Escolha e veja a explicação na hora.
📌 Resumo — leve isto para a prova
- VMs isolam por hardware (kernel próprio, via hypervisor tipo 1 ou 2); contêineres isolam pelo SO (kernel compartilhado).
- Namespaces isolam a visão de recursos e cgroups limitam o consumo: juntos formam o contêiner no Linux.
- Proteção controla acesso interno (matriz de acesso, ACLs/capabilities); segurança defende contra ameaças.
- Menor privilégio e defesa em profundidade reduzem a superfície de ataque.
- O Linux integra todo o curso: monolítico modular, fork(), CFS, memória virtual, ext4 e contêineres.