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:
- Paravirtualization is fundamentally faster than full virtualization, with the exception of the userspace implementation in UML.
- 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.
- 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.
- Qemu can emulate different guest architectures, eg. running an x86 virtual machine on a PPC guest.
- Parts of Qemu are used in the full virtualization implementations of Xen and KVM.