A hypervisor, also called a virtual machine manager, is a program that allows multiple operating systems to share a single hardware host. Each operating system appears to have the host’s processor, memory, and other resources all to itself. However, the hypervisor is actually controlling the host processor and resources, allocating what is needed to each operating system in turn and making sure that the guest operating systems (called virtual machines) cannot disrupt each other.
You can think of a Hypervisor as the kernel or the core of a virtualization platform. The Hypervisor is also called the Virtual Machine Monitor. The Hypervisor has access to the physical host hardware.
Of the total amount of disk space taken for a virtualization platform (like Hyper-V or VMware ESX), the Hypervisor is, by far, the smallest part. A Type 1 Hypervisor (AKA, Bare metal Hypervisor) runs on the bare metal of the hardware. Examples of a Type 1 Hypervisor(AKA, Hosted Hypervisor) are Hyper-V and ESX Server. A Type 2 Hypervisor is hosted by an operating system. Examples of a Type 2 Hypervisor are VMware Server and Microsoft Virtual Server.
What is a Client Hypervisor?
A client hypervisor is a hypervisor that is installed on end user laptops or desktop computers to provide the ability to run virtual desktops locally in an Intelligent Desktop Virtualization (IDV) solution.
Client hypervisors are very similar to server hypervisors, with one major difference. Server hypervisors don’t have to worry as much about device support because servers are relatively simple when it comes to devices. Client hypervisors must support a much wider array of devices as well as support a variety of buttons and unique hardware on laptop computers.
Which Type of Client Hypervisor is Best?
Type-1 hypervisors are far superior to Type-2 hypervisors because they provide a higher level of performance and security. This is mainly due to the fact that there is no underlying operating system to be compromised, as with Type-2 hypervisors. Virtual Computer NxTop Engine is an example of a Type-1 hypervisor, which was developed using the open source Xen hypervisor as a foundation.
Full Virtualization is done with a hardware emulation tool and processor-based virtualization support that allows you to run unmodified guest kernels that are not “aware” they are being virtualized. The result is that you give up performance on these platforms. Windows, NetWare, and most closed-source O/Ss require full virtualization. Many of these guests have PV drivers available, though, which allow for devices like disks, network cards, etc., to run with improved performance.
Here in the above picture, we can see network adapters are physical adapters. It shows no virtual adapters/drivers here. This is Full Virtualization.
Paravirtualization is done with a modified kernel that is “aware” that it’s being virtualized. This yields better performance, but requires either
a) an open source kernel that the community has modified to support Xen, or
b) the vendor responsible for the kernel to incorporate Xen support. Linux, some of the BSDs, and Opensolaris support para-virtualization.
Here in the above image we can see virtualized network adapters are automatically added to the machine after installation is done.(from image we can see vmware accelerated amd pcnet adapter). Which means OS kernel is modified and these drivers are pushed into the OS so that it can contact the physical ethernet adapter.This is Para-Virtualization.
Full and Para Virtualization also explained as:
Full virtualization is called “full” because the entire system’s resources are abstracted by the virtualization software layer. Paravirtualization is called “para” because only a portion of the system’s resources, or partial amount, is abstracted. Application programming interfaces (APIs) enable communication or provide assistance in certain situations. Paravirtualization requires that the guest operating system running on the host server be modified so that it recognizes the virtualization software layer, while fully virtualized workloads do not require any change or modification to their guest operating systems.