A história do Xen: o hipervisor de Cambridge

Mascote do LinuxPro apoiando um cubo de máquina virtual sobre a base do hipervisor, ao lado dos servidores

Em 2003 um hipervisor saiu do Computer Laboratory de Cambridge e mudou o jeito de fatiar um servidor. Xen — tipo 1, GPLv2, paravirtualização — virou o chão do Amazon EC2, do Rackspace e, depois, do Qubes OS. Em 2026 o Xen Project 4.21 ainda é o núcleo do XenServer, do XCP-ng e de uma fatia do ARM embarcado. A história é a de um paper da SOSP que virou nuvem.

XenoServers, 1999

Ian Pratt, lecturer no Computer Laboratory, liderou o projeto XenoServers: “computação pública de área ampla” — qualquer um rodando qualquer código em qualquer máquina, com cobrança por recurso. O nome vem do grego xenos, hóspede. Anil Madhavapeddy, então doutorando, conta o mito de origem: uma aposta de fim de semana se Keir Fraser conseguiria bootar vários kernels Linux no mesmo hardware. Conseguiu. O relatório técnico UCAM-CL-TR-553 (janeiro de 2003) descreve o desenho: vários sistemas convidados, isolamento, QoS, overhead de poucos por cento.

Em 2–3 de outubro de 2003 saiu o primeiro release estável, com Linux 2.4.22 como convidado. A SOSP’03 publicou Xen and the Art of Virtualization (Barham, Dragovic, Fraser, Hand, Harris, Ho, Kotsovinos, Madhavapeddy, Neugebauer, Pratt, Warfield). Microsoft Research chegou a portar Windows XP para Xen sob licença acadêmica — o código não podia ser publicado, mas o paper cita a experiência.

Paravirtualização, dom0 e o cloud

Xen não finge um PC inteiro. O convidado sabe que está virtualizado e fala com o hipervisor por hypercall. Isso é paravirtualização (PV): rápido, mas exige patch no kernel. O domínio privilegiado, dom0, segura os drivers e acorda os outros (domU). Quando a Intel soltou VT-x (final de 2005), o Xen 3.0 foi o primeiro hipervisor com suporte — HVM para Windows sem patch. Mais tarde veio o PVH, o meio-termo.

Amazon EC2 entrou em produção em 2006 em cima de Xen. Ficou assim até novembro de 2017, quando a AWS migrou para Nitro (KVM). Rackspace, Linode, SoftLayer: a primeira geração de nuvem pública foi Xen. Em 2014 um bug no emulador x2APIC forçou reboot em massa na EC2 — o preço de ser o hipervisor da internet.

XenSource e a Citrix

Em 2005 Pratt, Fraser, Hand e o CEO Nick Gault fundaram a XenSource para empacotar o hipervisor como produto. O resultado comercial é o que viraria XenServer. Em 22 de outubro de 2007 a Citrix comprou a XenSource por US$ 500 milhões. O código do hipervisor continuou GPLv2; o produto ganhou console, pool, HA e o toolstack XAPI.

Linux Foundation, 2013

Em 15 de abril de 2013, nos dez anos do primeiro release, o Xen Project foi para a Linux Foundation como Collaborative Project. Membros na época: Amazon, AMD, Cisco, Citrix, Google, Intel, Oracle, Samsung, Verizon. A marca “Xen Project” separa o hipervisor livre do “Xen” que a Citrix usava em XenApp e XenDesktop. O site passou a xenproject.org. Licença: GPLv2. Governança: meritocracia.

O que o Xen é hoje

O 4.21 saiu em 19 de novembro de 2025. Arquiteturas: x86, ARM, RISC-V, PowerPC. Qubes OS usa Xen para isolar cada aplicativo num domínio. O XAPI — toolstack enterprise — alimenta Citrix/XenServer, XCP-ng e Magrana. Drivers PV de Windows o próprio projeto mantém.

No Linux o KVM ganhou o kernel e o desktop. Xen ficou no tipo 1 de verdade: pequeno, auditável, o chão de quem precisa de isolamento forte. A linhagem Cambridge → XenSource → Citrix → Foundation está em A história do XenServer and A história do XCP. O cubo do desktop, outro ramo, é o VirtualBox. O kernel em volta: Linux faz 35 anos.

Colocando a mão: Xen no seu Linux

A história é boa, mas o Xen tem fama de difícil — e boa parte dessa fama vem de gente que nunca passou do primeiro parágrafo. Instalar é mais simples do que parece.

O caminho manual, em Debian ou Ubuntu

sudo apt update
sudo apt install -y xen-system-amd64 xen-tools

# o GRUB precisa passar a bootar o hipervisor ANTES do kernel
sudo sed -i 's/^GRUB_DEFAULT=.*/GRUB_DEFAULT="Xen 4.21-amd64"/' /etc/default/grub
sudo update-grub
sudo reboot

Depois do boot, confira se você está de fato dentro do dom0 — o domínio privilegiado, e não no Linux normal:

sudo xl info | head -20
sudo xl list

Se o xl list mostrar Domain-0, o hipervisor está no comando e o seu Linux virou o domínio de controle. É a inversão mental que confunde quem vem do KVM: aqui o Linux não hospeda as VMs — ele é uma VM privilegiada, como as outras, só que com os drivers.

Um detalhe que evita dor de cabeça em máquina pequena: por padrão o dom0 pega toda a memória e vai devolvendo conforme os convidados sobem. Fixe a memória dele:

# /etc/default/grub.d/xen.cfg
GRUB_CMDLINE_XEN_DEFAULT="dom0_mem=4096M,max:4096M dom0_max_vcpus=4 dom0_vcpus_pin"

Criando o primeiro convidado

The xen-tools monta uma VM Debian inteira num comando:

sudo xen-create-image 
  --hostname=teste 
  --memory=2gb --vcpus=2 --size=20gb 
  --dist=trixie --dhcp 
  --dir=/var/lib/xen/images 
  --pygrub

sudo xl create /etc/xen/teste.cfg
sudo xl console teste     # Ctrl+] sai do console

Os comandos do dia a dia:

xl list                    # o que está rodando
xl top                     # o htop do hipervisor
xl shutdown teste          # desligar com educação
xl destroy teste           # puxar o cabo
xl mem-set teste 4096      # mudar memória com a VM ligada
xl vcpu-set teste 4        # mudar CPU com a VM ligada
xl save teste /tmp/t.save  # congelar em disco
xl restore /tmp/t.save     # descongelar

Ajustar memória e CPU com a máquina ligada é um dos truques que o Xen faz melhor que a concorrência — herança direta do desenho de paravirtualização.

O caminho pronto: XCP-ng

Se o objetivo é um servidor de virtualização de verdade, e não estudo, ninguém monta o Xen na mão. Instala-se o XCP-ng — uma distribuição inteira construída em volta do Xen com o toolstack XAPI, que dá interface web, pool de hosts, migração ao vivo e backup. É o equivalente livre ao que a Citrix vende, e a instalação é um ISO com next, next, finish.

Xen ou KVM: quando cada um faz sentido

Xen KVM
Tipo 1 — roda direto no metal 2 — é um módulo do kernel Linux
Superfície de ataque Hipervisor pequeno e auditável O kernel Linux inteiro
Installation Exige boot pelo hipervisor Já está no seu kernel
Ecossistema XCP-ng, XenServer, Qubes Proxmox, oVirt, libvirt, todo o resto
Onde brilha Isolamento forte, ARM embarcado, segurança Uso geral, desktop, a maioria dos casos

A resposta honesta para 2026: para a maioria, KVM — está no kernel, o ferramental é maior e o Proxmox resolve tudo. O Xen ganha quando o requisito é isolamento sério: por isso o Qubes OS o escolheu para separar cada aplicativo em um domínio próprio, e por isso ele sobrevive no ARM embarcado, onde um hipervisor de poucos megabytes vale mais que um kernel inteiro.

Timeline

  • 1999 — Projeto XenoServers no Computer Laboratory de Cambridge (Ian Pratt)
  • jan/2003 — Relatório técnico UCAM-CL-TR-553 descreve o desenho
  • out/2003 — Primeiro release estável; paper Xen and the Art of Virtualization na SOSP’03
  • 2005 — Fundação da XenSource; Xen 3.0, primeiro hipervisor com VT-x (HVM)
  • 2006 — Amazon EC2 entra em produção sobre Xen
  • 22/out/2007 — Citrix compra a XenSource (US$ 500 milhões)
  • 15/abr/2013 — Xen Project migra para a Linux Foundation
  • 2017 — AWS migra do Xen para o Nitro (KVM)
  • 19/nov/2025 — Xen Project 4.21 (x86, ARM, RISC-V, PowerPC)

De uma aposta de fim de semana em Cambridge ao 4.21: o Xen ainda é o hipervisor que cabe entre o metal e o sistema — e recusa ser só mais um módulo do kernel.