A comparison between Linux virtualization technologies

full virt paravirt license x86 x86-64 IA64 PPC performance notes
Xen (./) (./) GPL (./) (./) (./) (./) paravirt very fast, full virt slow/medium full virt needs VT / AMD-V, supports SMP guests
KVM (./) GPL (./) (./) still slow requires VT / AMD-V, upstream
lhype (./) GPL (./) slow/medium
UML (./) GPL (./) (./) ?? (./) slow upstream
qemu (./) GPL (./) (./) ?? (./) slow/medium runs in userspace, kQEMU not GPL
OpenVZ GPL (./) (./) (./) (./) very fast shared kernel
VServer GPL (./) (./) (./) (./) very fast shared kernel, no performance isolation
VMware (./) proprietary (./) (./) medium

Notes:

  1. Paravirtualization is fundamentally faster than full virtualization, with the exception of the userspace implementation in UML.
  2. Full virtualization performance in KVM and Xen is largely limited by the overhead of trap & emulate. Emulating multiple instructions at once at the time of a trap should bring it up to speed with VMware.
  3. OpenVZ (Virtuozo) and VServer are not virtualization technologies per se. They carve up a single system in "super chroot" jails. All the containers run on top of the same kernel.
  4. Qemu can emulate different guest architectures, eg. running an x86 virtual machine on a PPC guest.
  5. Parts of Qemu are used in the full virtualization implementations of Xen and KVM.