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

Virtualização e tópicos modernos

Máquinas virtuais e contêineres, proteção e segurança, e um estudo de caso do Linux para amarrar os conceitos.

📚 Sistemas Operacionais📝 mini-quiz ao final
Objetivos da aula

O que você vai aprender

1

Diferenciar máquinas virtuais e contêineres.

2

Explicar mecanismos de proteção e segurança.

3

Relacionar os conceitos da disciplina ao Linux.

1 · Motivação

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.

2 · Mapa

O percurso final

VMs ×
contêineres
HypervisoresProteçã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.

3 · Conceito 1

Máquina virtual e contêiner

Máquina virtual (VM). Emulação completa de um computador; um hypervisor executa vários SOs convidados sobre o mesmo hardware.
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).

4 · Comparação

VM × contêiner em detalhe

Máquina virtualContêiner
IsolamentoHardware (forte)SO (mais leve)
KernelUm por VMCompartilhado com o host
Peso / inicializaçãoPesado / lento (segundos a minutos)Leve / rápido (milissegundos)
DensidadePoucas por hostMuitas por host
ExemploVMware, KVM, Hyper-VDocker, LXC, Podman
5 · Exemplo

Tipos de hypervisor

Hypervisor. Camada que cria e gerencia máquinas virtuais, virtualizando o hardware para os SOs convidados.
  • 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.
6 · Interativo

Stepper: subindo um contêiner

Passo 1
O runtime lê a imagem (sistema de arquivos empacotado) do contêiner.
Passo 2
Cria namespaces novos: PID, rede, montagem, usuário — isolando a visão do processo.
Passo 3
Configura cgroups para limitar CPU e memória do contêiner.
Passo 4
Monta o sistema de arquivos da imagem como raiz isolada do processo.
Passo 5
Inicia o processo principal: ele compartilha o kernel do host, mas se "vê" sozinho. Sem inicializar um SO inteiro.
7 · Conceito 2

Proteção e segurança

Proteção. Mecanismos internos que controlam o acesso de processos a recursos.
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".

8 · Matriz de acesso

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 \ Objetoarquivo Aimpressora
Usuário 1ler, escreverusar
Usuário 2ler
💡
A matriz pode ser implementada por listas de controle de acesso (ACLs), por coluna (por objeto), ou por capabilities, por linha (por sujeito).
9 · Analogia

O condomínio com crachás

🏢 Analogia
A VM é um prédio inteiro só seu: hall, elevador, encanamento próprios — caro, mas totalmente isolado. O contêiner é um apartamento em um prédio compartilhado: você tem sua porta e seu espaço (namespaces) e uma cota de água e luz (cgroups), mas a estrutura (kernel) é a mesma de todos.
10 · Princípios

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.
🔑
Esses princípios reduzem a superfície de ataque: quanto menos privilégios e mais camadas, menor o estrago possível de uma falha ou invasão.
11 · Fluxo

A pilha de virtualização

HardwareHypervisor /
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.

12 · Aprofundamento

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.

Namespacesvirar
Isolam a visão de recursos (PIDs, rede, arquivos, usuários) — base dos contêineres.
cgroupsvirar
Limitam e contabilizam o uso de recursos (CPU, memória) por grupo de processos.
CFSvirar
Completely Fair Scheduler: o escalonador padrão do Linux, que busca justiça entre processos.
13 · Interativo

Check: VM ou contêiner?

Você precisa rodar um sistema legado que exige um kernel diferente e antigo, totalmente isolado. O que usar?

Como o contêiner compartilha o kernel do host, ele não pode rodar um kernel diferente. Para um kernel próprio e isolamento forte, é caso de máquina virtual.
14 · Caso prático

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.

15 · Erros comuns

Mitos sobre contêineres e VMs

⚠️
Cuidados:
  • 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.
16 · Dicas

Decisões de arquitetura

Para decidir:
  • 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.
17 · Interativo

Reveal: namespaces e cgroups

Como namespaces e cgroups, juntos, criam um contêiner?
Os namespaces dão ao processo uma visão isolada dos recursos: ele tem sua própria árvore de PIDs, sua interface de rede, seu sistema de arquivos montado, seus usuários — como se estivesse sozinho na máquina. Os cgroups (control groups) limitam e contabilizam o quanto ele pode consumir de CPU, memória, E/S. Juntos: namespaces dizem "o que ele vê", cgroups dizem "o quanto ele pode usar". Isso, sobre o mesmo kernel, é a essência de um contêiner.
18 · Flashcards

Revisão relâmpago

Hypervisor tipo 1virar
Roda direto sobre o hardware (bare-metal); ex.: ESXi, KVM, Xen.
Menor privilégiovirar
Conceder a cada entidade apenas o acesso estritamente necessário.
Matriz de acessovirar
Sujeitos × objetos definindo direitos; implementada por ACLs ou capabilities.
CFSvirar
Escalonador padrão do Linux, que busca justiça entre os processos.
19 · Conexões

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.
20 · Síntese

O essencial sobre virtualização

🔑
Síntese: VMs isolam por hardware (kernel próprio, via hypervisor tipo 1 ou 2); contêineres isolam pelo SO (kernel compartilhado, via namespaces e cgroups). Proteção controla o acesso interno e segurança defende de ameaças, guiadas por menor privilégio e defesa em profundidade. O Linux integra todos os conceitos do curso: monolítico modular, fork(), CFS, memória virtual, ext4 e contêineres.
Mão na massa · colaborativo

Atividade em grupo · VM ou contêiner?

Em trios, decidam a tecnologia para diferentes cenários.

⏱️ 25 min👥 trios🧩 estudo de caso

Roteiro

  1. Cenário A: rodar Windows e Linux no mesmo notebook.
  2. Cenário B: implantar 50 microsserviços leves e idênticos.
  3. Cenário C: isolar um sistema legado com kernel antigo.
  4. Justifiquem cada escolha em termos de isolamento, peso e compartilhamento de kernel.
Decisorescolhe VM ou contêiner
Justificadorargumenta isolamento/peso
Relatorconsolida
📤 Entrega: Tabela cenário → tecnologia (VM/contêiner) com justificativa.
Teste seu conhecimento

Mini-quiz · Aula 13

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

0/20

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