A hypervisor monitors the creation and running of virtual machines. It allows a large number of machines with different operating systems to run on a single host machine. This article covers the types of hypervisors with descriptions of the top hypervisor technologies.
A hypervisor is a software layer which provides the capability to run multiple virtual machines on the same physical host. It generally falls into either one of the following two classifications
- Type1 hypervisors
- Type2 hypervisors.
Type1 hypervisors directly run on the physical hardware. They control the hardware as well as manage the virtual machines. Type1 are also termed bare metal hypervisors.
Type2 hypervisors run as an application on an existing operating system (also known as the host operating system), which is installed on the bare metal. Here, there is an added complexity of the guest operating system calls needing to traverse via the host operating system stack before they reach the hardware.
Let’s now look at a list of popular free hypervisors, both Type1 and Type2, which can be used by systems administrators. Hopefully, this will help them in choosing the most relevant hypervisor technology based on their requirements and will also help in evaluating other commercial hypervisors.
A KVM (kernel based virtual machine) is a GNU/Linux based project developed for x86 machines. It operates with a loadable kernel module named kvm.ko, which turns the Linux kernel itself into a hypervisor and thus VMs have direct access to the hardware. KVM also contains processor-specific kernel modules such as kvm-intel.ko and kvm-amd.ko. Virt-manager and virsh applications are generally used to manage the virtual machines created using KVM. Virt-manager provides a GUI, whereas virsh is a command line utility. There is a misconception that KVM is a Type2 hypervisor that is hosted by the operating system, and not a bare metal hypervisor. This is a persistent myth, but the truth is that KVM actually does run directly on x86 hardware.
VMware free ESXi
We may think that VMware products are proprietary and not free but thats not always true. VMwares premium hypervisor product, named VMware ESXi, is available for free download. Though its not open source, some of its components source software is available for download. However, a user can choose to work for 60 days with all advanced features enabled if the free versions serial number is not entered. Try out free VMware ESXi from this link.
The Xen Project is one of the leading open source virtualisation platforms. The Xen hypervisor is licensed under GPLv2. Like many of its competitors, Xen is also available in a commercial form from Citrix. Oracle VM is another commercial implementation of Xen. The Xen Project platform supports many cloud platforms such as Openstack, Cloudstack, etc. The Xen hypervisor provides an efficient and secure feature set for virtualisation of X86, IA64, ARM and other CPU architectures, and has been used to virtualise a wide range of guest operating systems, including Windows, Linux, Solaris and various versions of the BSD operating systems.
Microsoft has introduced Hyper-V as a competitor for many other virtualisation products. Its available for a free download from an evaluation point of view. The free standalone Hyper-V server 2012 has all the features which are integrated in the Hyper-V role in Windows Server 2012 such as shared nothing live migration, failover clustering, etc. The architecture of Hyper-V is clearly explained in Wikipedia.
Xvisor is a Type2 monolithic open source hypervisor that aims to provide lightweight, portable and flexible virtualisation solutions. It is supported on X86 and ARM CPU architectures. One major difference is that Xvisor is completely monolithic; so it has one common software for hardware access, CPU virtualisation and guest IO emulation.
However, other virtualisation technologies such as KVM and Xen are partially based on monolithic and micro-kernels, respectively. Partially monolithic hypervisors such as KVM are an extension of general-purpose monolithic OSs (such as Linux), which provide host hardware access and CPU virtualisation in the kernel and guest IO emulation from an application running in the user space (such as Qemu). Micro-kernel hypervisors are usually lightweight micro-kernels providing basic host hardware access and CPU virtualisation in the kernel, whereas the rest are dependent upon managing guests (such as Dom0 of Xen). Refer to the Xvisor website  for more details and to download it.
Oracle VirtualBox is a Type2 hypervisor that can run on Linux, Windows, Macintosh and Solaris hosts. It is portable as it can run on a large number of 32-bit and 64-bit host operating systems. Its called a hosted hypervisor as it requires an existing operating system to be installed. One good feature of VirtualBox is that virtual machines can be easily imported and exported using OVF (Open Virtualization Format). Its even possible to import OVFs that are created by different virtualisation software.
VMware Workstation Player
VMware Workstation Player is a Type2 desktop virtualisation application that provides a streamlined user interface for running and evaluating operating systems and applications in a virtual machine on Windows or Linux machines. Its simple UI makes it the easiest way to deliver a virtual desktop to your employees, contractors, or customers. Its available for download from this link.
Lguest is a very lightweight hypervisor built into the Linux kernel. The core of Lguest is the driver module (named lg) available from Linux kernel 2.6.23 and above. Lguest provides para-virtualised solutions for Linux. The lg driver module, during its initialisation, allocates a chunk of memory and maps to the kernels address space and a small hypervisor is loaded into this memory area. It also provides a virtualised I/O sub-system. That being said, it doesnt provide any of the fancy features other hypervisors do; however, it is a good option when you need to develop and test the kernel boot. To play around with Lguest, users can take a look at the LWN article. The documentation and download details are found at this link.
LinuX Containers (LXC)/Docker
LinuX Containers (LXC) is an operating system-level virtualisation method for running multiple isolated Linux systems (containers) on a single control host (LXC host). It does not provide a virtual machine, but a virtual environment that has its own CPU, memory, block I/O, network, etc. It makes use of the Linux kernels cgroups functionality, which provides isolated namespace(s) to run isolated applications. One advantage of containers is that they dont require a full-fledged guest OS like virtual machines. Refer to the site to understand more about containers.
Linux-VServer is an OS level virtualisation solution. Its a soft partitioning concept technology based on security contexts. It basically creates virtual private servers (VPS) that run simultaneously on a single physical server by sharing hardware resources. Each VPS has its own database account and root password so that its isolated from other virtual servers. Refer to the Linux-VServer website to understand the solution better and to download it.