Virtualização e Contêineres: KVM vs LXC
Gabarito: CERTO. O KVM é um hipervisor que utiliza virtualização total assistida por hardware (Intel VT-x e AMD-V) e, de fato, cada máquina virtual KVM executa um sistema operacional convidado completo, enquanto contêineres como o LXC compartilham o kernel do host e não possuem um SO convidado próprio — daí a maior sobrecarga de recursos do KVM em comparação ao LXC. Essa distinção é o núcleo da afirmação.
A virtualização e os contêineres são duas abordagens distintas para isolar e executar múltiplos ambientes em um mesmo hardware. A virtualização tradicional, representada por hipervisores como KVM, VMware e VirtualBox, cria máquinas virtuais completas, cada uma com seu próprio sistema operacional convidado, que acessa recursos de hardware virtualizados. Já os contêineres, como LXC e Docker, virtualizam o espaço de usuário do sistema operacional, dividindo-o em domínios isolados que compartilham o mesmo kernel do host. Essa diferença fundamental explica por que o KVM exige um SO convidado completo e, consequentemente, consome mais recursos.
O KVM (Kernel-based Virtual Machine) é um hipervisor do tipo 2, embutido no núcleo Linux desde a versão 2.6.20. Ele explora as extensões de virtualização dos processadores modernos (Intel VT-x e AMD-V) para executar instruções privilegiadas do sistema convidado diretamente no hardware, sem necessidade de tradução binária. Isso caracteriza a virtualização total assistida por hardware. Cada máquina virtual KVM possui suas próprias vCPUs, memória, dispositivos de E/S e um sistema operacional convidado completo, que pode ser Linux, Windows, etc. Por isso, a sobrecarga é maior: cada VM precisa de recursos dedicados para o SO convidado, além do hipervisor e do host.
Os contêineres, por outro lado, não possuem um sistema operacional convidado. Eles compartilham o kernel do sistema operacional hospedeiro e isolam apenas o espaço de usuário, com seus próprios processos, sistema de arquivos, rede e usuários. Isso os torna muito mais leves e rápidos para iniciar, pois não há um SO inteiro para bootar. A sobrecarga é mínima, já que os contêineres usam os recursos do host diretamente, sem a camada de virtualização de hardware. Essa é a razão pela qual o LXC (Linux Containers) é mais eficiente em termos de recursos do que o KVM.
A pegadinha que a banca explora é a confusão entre virtualização total e paravirtualização, ou entre hipervisores e contêineres. Muitos candidatos podem pensar que o KVM usa paravirtualização (como o Xen), mas o KVM, por padrão, usa virtualização total assistida por hardware, embora também suporte paravirtualização para dispositivos de E/S (VirtIO). Além disso, é comum confundir contêineres com máquinas virtuais, achando que ambos possuem SO convidado. A distinção crucial é: máquina virtual = SO convidado completo; contêiner = compartilha o kernel do host.
Guarde essa fronteira: hipervisor (KVM) = virtualização de hardware, SO convidado completo, maior sobrecarga; contêiner (LXC) = virtualização do SO, compartilha o kernel, menor sobrecarga. É exatamente nessa distinção que a afirmação se apoia.
Critério | KVM (Virtualização Total) | LXC (Contêineres) |
|---|
Tipo de virtualização | Total, assistida por hardware (Intel VT-x/AMD-V) | Virtualização do SO (compartilha o kernel do host) |
Sistema operacional convidado | Completo (Linux, Windows, etc.) | Não possui SO convidado; apenas espaço de usuário isolado |
Sobrecarga de recursos | Maior (SO convidado completo + hipervisor) | Menor (leve, sem boot de SO) |
Item — ✅ CERTO
A afirmação está correta em todos os seus elementos:
KVM utiliza virtualização total com base em extensões de hardware (Intel VT-x e AMD-V) — correto. O KVM é um hipervisor que explora as extensões de virtualização dos processadores modernos para executar instruções privilegiadas do convidado diretamente no hardware, caracterizando a virtualização total assistida por hardware.
Diferentemente de contêineres, requer um sistema operacional convidado completo — correto. Cada máquina virtual KVM executa um SO convidado completo (Linux, Windows, etc.), enquanto contêineres como o LXC compartilham o kernel do host e não possuem SO convidado.
O que implica maior sobrecarga de recursos quando comparado ao LXC — correto. A necessidade de um SO convidado completo, com seus próprios processos, memória e drivers, gera maior consumo de CPU, memória e armazenamento em comparação com contêineres, que são mais leves por compartilharem o kernel do host.
Portanto, a afirmação está CORRETA.
Gabarito: CERTO