VMM(Virtual Machine Monitor)/Hypervisor

Creates multiple (virtual) machines on the same physical hardware.Each Guest VM directs the system calls to kernel using VMM. VMM traps into kernel.

Major Hypervisors:
  1. XEN: Open source Linux based type-1.
  2. VMWARE ESXI:
  3. HYPER-V: Hypervisor by Microsoft.
    3A. AZURE Runs on customized version of Hyper V. Its hardened and stripped down.
  4. KVM: Open source Linux based. Used in RHEV(Redhat Enterprise Virtualization).

Types of Hypervisor

Type 1 Type 2 VMM
1. TYPE-1/NATIVE/BARE-METAL/ESXI 2. TYPE-2/Hosted Hypervisor
Description Run directly on the host’s hardware. Eg: Citrix Xenserver, microsoft Hyper-V, VMWare ESX/ESXi
Equivalent to OS of system
Run as a software layer on an operating system, like other computer programs. Eg: VMWare Work Station, VM-Ware Player, Virtual box, QEMU
How it works Type 1 VMM is divided into Protection rings.
Ring3(User processes), Ring2, Ring1(guest VM kernel) lies in Guest VM while Ring0(kernel mode) lies in hypervisor
User process issues system call, it reaches Ring1(it does sanity checks), reaches Ring0(perform instructions) Type 1 Type 2 VMM
Problem? Since Type-2 Hypervisor itself is not in kernel space, if some user want to install some ISR or signal handler how he can do?
Solution: Type 2 hypervisors therefore have a kernel module operating in ring 0