The history of Xen: the Cambridge hypervisor

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

In 2003 a hypervisor emerged from Cambridge's Computer Laboratory and changed how a server could be divided up. Xen — type 1, GPLv2, paravirtualization — became the foundation of Amazon EC2, Rackspace and, later, Qubes OS. In 2026 Xen Project 4.21 is still the core of XenServer, XCP-ng, and a slice of embedded ARM. This is the story of a SOSP paper that became the cloud.

XenoServers, 1999

Ian Pratt, a lecturer at the Computer Laboratory, led the XenoServers project: “wide-area public computing” — anyone running any code on any machine, charged by resource usage. The name comes from the Greek xenos, guest. Anil Madhavapeddy, then a doctoral student, recounts the origin myth: a weekend bet on whether Keir Fraser could boot several Linux kernels on the same hardware. He could. Technical report UCAM-CL-TR-553 (January 2003) describes the design: multiple guest systems, isolation, QoS, overhead of a few percent.

On October 2–3, 2003, the first stable release came out, with Linux 2.4.22 as a guest. SOSP’03 published Xen and the Art of Virtualization (Barham, Dragovic, Fraser, Hand, Harris, Ho, Kotsovinos, Madhavapeddy, Neugebauer, Pratt, Warfield). Microsoft Research even ported Windows XP to Xen under an academic license — the code could not be published, but the paper mentions the experiment.

Paravirtualization, dom0, and the cloud

Xen does not pretend to be an entire PC. The guest knows it is virtualized and talks to the hypervisor through hypercalls. This is paravirtualization (PV): fast, but it requires a kernel patch. The privileged domain, dom0, holds the drivers and wakes the others (domU). When Intel released VT-x (late 2005), Xen 3.0 was the first hypervisor to support it — HVM for unpatched Windows. Later came PVH, the middle ground.

Amazon EC2 entered production in 2006 on Xen. It stayed that way until November 2017, when AWS migrated to Nitro (KVM). Rackspace, Linode, SoftLayer: the first generation of public cloud was Xen. In 2014 a bug in the x2APIC emulator forced mass reboots on EC2 — the price of being the internet's hypervisor.

XenSource and Citrix

In 2005 Pratt, Fraser, Hand, and CEO Nick Gault founded XenSource to package the hypervisor as a product. The commercial result is what would become XenServer. On October 22, 2007, Citrix bought XenSource for US$ 500 million. The hypervisor code remained GPLv2; the product gained a console, pools, HA, and the XAPI toolstack.

Linux Foundation, 2013

On April 15, 2013, ten years after the first release, Xen Project joined the Linux Foundation as a Collaborative Project. Members at the time: Amazon, AMD, Cisco, Citrix, Google, Intel, Oracle, Samsung, Verizon. The “Xen Project” brand separates the free hypervisor from the “Xen” Citrix used in XenApp and XenDesktop. The website moved to xenproject.org. License: GPLv2. Governance: meritocracy.

What Xen is today

4.21 came out on November 19, 2025. Architectures: x86, ARM, RISC-V, PowerPC. Qubes OS uses Xen to isolate each application in a domain. XAPI — the enterprise toolstack — powers Citrix/XenServer, XCP-ng and Magrana. The project itself maintains Windows PV drivers.

On Linux, KVM won the kernel and the desktop. Xen stayed a true type 1: small, auditable, the foundation for those needing strong isolation. The Cambridge → XenSource → Citrix → Foundation lineage is in The history of XenServer and The history of XCP. The desktop cube, another branch, is VirtualBox. The surrounding kernel: Linux turns 35.

Hands-on: Xen on your Linux machine

The history is good, but Xen has a reputation for being difficult — and much of that reputation comes from people who never got past the first paragraph. Installing it is simpler than it looks.

The manual approach, on Debian or 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

After booting, check that you really are inside dom0 — the privileged domain, not regular Linux:

sudo xl info | head -20
sudo xl list

If xl list shows Domain-0, the hypervisor is in charge and your Linux has become the control domain. This is the mental inversion that confuses people coming from KVM: here Linux does not host the VMs — it is a privileged VM, like the others, but with the drivers.

One detail that prevents headaches on small machines: by default, dom0 takes all the memory and gives it back as guests start. Set a fixed amount of memory for it:

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

Creating the first guest

The xen-tools builds an entire Debian VM in one command:

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

Everyday commands:

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

Adjusting memory and CPU while the machine is running is one of the tricks Xen does better than the competition — a direct legacy of its paravirtualization design.

The ready-made approach: XCP-ng

If the goal is a real virtualization server rather than study, nobody sets up Xen manually. Install XCP-ng — an entire distribution built around Xen with the XAPI toolstack, providing a web interface, host pools, live migration, and backup. It is the free equivalent of what Citrix sells, and installation is an ISO with next, next, finish.

Xen or KVM: when each makes sense

Xen KVM
Type 1 — runs directly on bare metal 2 — a Linux kernel module
Attack surface Small, auditable hypervisor The entire Linux kernel
Installation Requires booting through the hypervisor Already in your kernel
Ecosystem XCP-ng, XenServer, Qubes Proxmox, oVirt, libvirt, everything else
Where it shines Strong isolation, embedded ARM, security General use, desktop, most cases

The honest answer for 2026: KVM for most people — it is in the kernel, the tooling is broader, and Proxmox handles everything. Xen wins when serious isolation is required: that is why Qubes OS chose it to separate each application into its own domain, and why it survives in embedded ARM, where a hypervisor of a few megabytes is worth more than an entire kernel.

Timeline

  • 1999 — XenoServers project at Cambridge's Computer Laboratory (Ian Pratt)
  • Jan/2003 — Technical report UCAM-CL-TR-553 describes the design
  • Oct/2003 — First stable release; paper Xen and the Art of Virtualization at SOSP’03
  • 2005 — XenSource founded; Xen 3.0, first hypervisor with VT-x (HVM)
  • 2006 — Amazon EC2 enters production on Xen
  • 22/Oct/2007 — Citrix buys XenSource (US$ 500 million)
  • 15/Apr/2013 — Xen Project moves to the Linux Foundation
  • 2017 — AWS migrates from Xen to Nitro (KVM)
  • 19/Nov/2025 — Xen Project 4.21 (x86, ARM, RISC-V, PowerPC)

From a weekend bet in Cambridge to 4.21: Xen is still the hypervisor that fits between the hardware and the system — and refuses to be just another kernel module.