A hypervisor (or virtual machine monitor, VMM, virtualizer) is similar to an emulator; it is computer software, firmware or hardware that creates and runs virtual machines. A computer on which a hypervisor runs one or more virtual machines is called a host machine, and each virtual machine is called a guest machine. The hypervisor presents the guest operating systems with a virtual operating platform and manages the execution of the guest operating systems. Multiple instances of a variety of operating systems may share the virtualized hardware resources: for example, Linux, Windows, and macOS instances can all run on a single physical x86 machine. This contrasts with operating-system–level virtualization, where all instances (usually called containers) must share a single kernel, though the guest operating systems can differ in user space, such as different Linux distributions with the same kernel.
Benefits of hypervisors
- Speed: Hypervisors allow virtual machines to be created instantly, unlike bare-metal servers. This makes it easier to provision resources as needed for dynamic workloads.
- Efficiency: Hypervisors that run several virtual machines on one physical machine’s resources also allow for more efficient utilization of one physical server. It is more cost- and energy-efficient to run several virtual machines on one physical machine than to run multiple underutilized physical machines for the same task.
- Flexibility: Bare-metal hypervisors allow operating systems and their associated applications to run on a variety of hardware types because the hypervisor separates the OS from the underlying hardware, so the software no longer relies on specific hardware devices or drivers.
- Portability: Hypervisors allow multiple operating systems to reside on the same physical server (host machine). Because the virtual machines that the hypervisor runs are independent from the physical machine, they are portable. IT teams can shift workloads and allocate networking, memory, storage and processing resources across multiple servers as needed, moving from machine to machine or platform to platform. When an application needs more processing power, the virtualization software allows it to seamlessly access additional machines.
There are two types of hypervisors:
- Type I hypervisor: hypervisors run directly on the system hardware – A “bare metal” embedded hypervisor,
- Type II hypervisor: hypervisors run on a host operating system that provides virtualization services, such as I/O device support and memory management
Type II hypervisor
1. VMware Workstation/Fusion/Player
VMware Player is a free virtualization hypervisor.
It is intended to run only one virtual machine (VM) and does not allow creating VMs.
VMware Workstation is a more robust hypervisor with some advanced features, such as record-and-replay and VM snapshot support.
VMware Workstation has three major use cases:
- for running multiple different operating systems or versions of one OS on one desktop,
- for developers that need sandbox environments and snapshots, or
- for labs and demonstration purposes.
2. VMware Server
VMware Server is a free, hosted virtualization hypervisor that’s very similar to the VMware Workstation.
VMware has halted development on Server since 2009
3. Microsoft Virtual PC
This is the latest Microsoft’s version of this hypervisor technology, Windows Virtual PC and runs only on Windows 7 and supports only Windows operating systems running on it.
4. Oracle VM VirtualBox
VirtualBox hypervisor technology provides reasonable performance and features if you want to virtualize on a budget. Despite being a free, hosted product with a very small footprint, VirtualBox shares many features with VMware vSphere and Microsoft Hyper-V.
5. Red Hat Enterprise Virtualization
Red Hat’s Kernel-based Virtual Machine (KVM) has qualities of both a hosted and a bare-metal virtualization hypervisor. It can turn the Linux kernel itself into a hypervisor so the VMs have direct access to the physical hardware.
KVM This is a virtualization infrastructure for the Linux kernel. It supports native virtualization on processors with hardware virtualization extensions.
Type 1 hypervisors:
1. VMware ESX and ESXi
These hypervisors offer advanced features and scalability, but require licensing, so the costs are higher.
There are some lower-cost bundles that VMware offers and they can make hypervisor technology more affordable for small infrastructures.
VMware is the leader in the Type-1 hypervisors. Their vSphere/ESXi product is available in a free edition and 5 commercial editions.
2. Microsoft Hyper-V
The Microsoft hypervisor, Hyper-V doesn’t offer many of the advanced features that VMware’s products provide.
However, with XenServer and vSphere, Hyper-V is one of the top 3 Type-1 hypervisors.
It was first released with Windows Server, but now Hyper-V has been greatly enhanced with Windows Server 2012 Hyper-V. Hyper-V is available in both a free edition (with no GUI and no virtualization rights) and 4 commercial editions – Foundations (OEM only), Essentials, Standard, and Datacenter. Hyper-V
3. Citrix XenServer
It began as an open source project.
The core hypervisor technology is free, but like VMware’s free ESXi, it has almost no advanced features.
Xen is a type-1 bare-metal hypervisor. Just as Red Hat Enterprise Virtualization uses KVM, Citrix uses Xen in the commercial XenServer.
Today, the Xen open source projects and community are at Xen.org. Today, XenServer is a commercial type-1 hypervisor solution from Citrix, offered in 4 editions. Confusingly, Citrix has also branded their other proprietary solutions like XenApp and XenDesktop with the Xen name.
4. Oracle VM
The Oracle hypervisor is based on the open source Xen.
However, if you need hypervisor support and product updates, it will cost you.
Oracle VM lacks many of the advanced features found in other bare-metal virtualization hypervisors.
The open-source KVM (or Kernel-Based Virtual Machine) is a Linux-based type-1 hypervisor that can be added to most Linux operating systems including Ubuntu, Debian, SUSE, and Red Hat Enterprise Linux, but also Solaris, and Windows.
6. LXC (Linux containers)
LXC (also known as Linux containers) is a virtualization technology that works at the operating system level. This is different from hardware virtualization, the approach used by other hypervisors such as KVM, Xen, and VMware. LXC (as currently implemented using libvirt in the Compute service) is not a secure virtualization technology for multi-tenant environments (specifically, containers may affect resource quotas for other containers hosted on the same machine). Additional containment technologies, such as AppArmor, may be used to provide better isolation between containers, although this is not the case by default. For all these reasons, the choice of this virtualization technology is not recommended in production.
A type I hypervisor operates directly on the host’s hardware to monitor hardware and guest virtual machines, and it’s referred to as the bare metal. Usually, they don’t require the installation of software ahead of time. Instead, you can install right onto the hardware. This type of hypervisor tends to be powerful and requires a great deal of expertise to function it well. In addition, Type I hypervisor are more complex and have certain hardware requirements to run adequately. Due to this, it is mostly chosen by IT operations and data center computing. Examples of type I hypervisors include Xen, Oracle VM Server for SPARC, Oracle VM Server for x86, Microsoft Hyper-V and VMware’s ESX/ESXi. Whereas Type II also called a hosted hypervisor because it is usually installed onto an existing operating system. They are not much capable to run more complex virtual tasks. People use it for basic development, testing, and emulation. If there is any security flaw found inside the host OS, it can potentially compromise all of virtual machines running. This is why type II hypervisors cannot be used for data center computing. They are designed for end-user systems where security is a lesser concern. For instance, developers could use type II Hypervisor to launch virtual machines in order to test software product before their release. A few examples are Virtual box, VMware workstation, fusion.