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?
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:
- 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.
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.
it's a hypervisor technique various performance inside system