I have only ever used VirtualBox and I would like to know, for example, what could I be missing from other offerings. I have heard of KVM and VMWare and I'm sure there's others. Short of reading Wikipedia articles on each (phew!), how do they differ?
-
more info on this: http://serverfault.com/questions/1898/virtualization-for-linux-vmware-vs-virtualbox-vs-kvm-vs – tshepang Jan 13 '11 at 16:33
3 Answers
I would classify virtual machine technologies into three categories (not all products fit clearly into one category):
- Full virtualization, i.e., complete hardware emulation. Examples: Qemu, Dosbox. Pro: you can potentially emulate any architecture on any hardware. Con: it's the slowest way to do it.
- Hardware-assisted virtualization, where you can emulate machine X on machine X. This can be a lot faster than full virtualization, because most instructions are executed natively, but you lose the ability to run a foreign architecture. There are two sub-categories:
- Hypervisor-based VMs: you run several OSes alongside each other. The bottom layer, called the hypervisor, is a special-purpose OS that runs the VMs and nothing else. Examples: Xen, VMware ESX.
- Hosted VMs: there is a main OS, the VM is an application on this main OS. Examples: VirtualBox, KVM.
- OS-level virtualization: you run several instances of the same OS. This can be in turn a lot more lightweight than hardware virutalization, but you lose some isolation and of course the ability to run different OSes. Examples: OpenVZ, FreeBSD jails.
First determine the category that corresponds to your needs.

- 829,060
-
Note that Solaris branded zones which belong to the OS-level virtualization class allow to "run" different OS releases (eg: Solaris 10 under Solaris 11 Express, or Solaris 8 under Solaris 10) or even different OSes with the lx brand (Linux 2.4.21 kernel emulation on top of Solaris 10). Of course, there is still a single kernel but an emulation layer is providing the required translation. http://docs.sun.com/app/docs/doc/817-1592/gepea?a=view – jlliagre Jan 13 '11 at 02:15
-
To add one other downside of OS-Level - My experience with OpenVZ was that it was a complete fork of the Linux Kernel. As a result it fell a long way behind the mainstream kernel and I started getting compatibility warnings from installers on newer distributions. Sure OpenVZ caught up, but the underlying issue was still there - it was a fork, not mainstream linux. – Philip Couling Feb 21 '21 at 23:40
VirtualBox is a software application that runs on top of your OS. It can use capabilities of your OS and hardware to accelerate the virtualization. The VirtualBox software must remain running for the virtualized systems to remain operational.
Xen is a subclass of operating systems called a hypervisor, it is an OS which only provides virtualization. It offloads management capabilities to a separate management OS which it calls the "dom0", usually Linux. The management OS provides drivers for the physical hardware.
VMWare has several products. VMWare Workstation works like VirtualBox, while VMWare ESX is a hypervisor similar to Xen. A major difference to Xen is that ESX provides its own hardware drivers and as a result has limited hardware support.
KVM is a project which adds a hypervisor into the Linux kernel. Because KVM uses a hypervisor, it does not need to remain running in the same fashion as VirtualBox. While KVM is a hypervisor such as Xen and ESX, it is simultaneously a Linux kernel & OS of its own accord.
It should be noted that KVM's inclusion into Linux is often misunderstood as being generally accepted as being the "blessed way forward". The KVM project is officially supported in Linux as it is a Linux kernel modification, while Xen and ESX are entirely separate operating systems.

- 676