These days virtual machines are running everywhere on the internet, from Microservices to big modules of code running on these virtual machines. We might not know the difference between an application running on a single server or multiple parts running of the same application running on multiple instances of virtual machines, that is the best part about virtual machines. We might not get the difference, but they will make us get the most of our hardware resources.
Virtual machine is hardware-level virtualization, a VM provides a real computer emulation and is implemented using software emulation programs. The end-user gets the same experience as an operating system hosted on physical hardware with a virtual machine running on a machine. Virtual machines use the hardware more efficiently and increase productivity than a single OS running on dedicated hardware. Multiple VM running on the same hardware can perform different jobs at the same time can effectively improve resource utilization.
A virtual machine monitor (VMM) or a Hypervisor is a program that runs on a machine and helps the host in creating multiple virtual machines that can be run simultaneously, pooling all the resources of the host machine and sharing among the virtual machines. A Hypervisor can manage multiple instances of different types of operating systems like macOS, Linux, or Windows, running on multiple instances in single physical hardware all at the same time. Hypervisor will manage the distribution of CPU, memory, bandwidth, or disk space among those instances. Regardless of the type of hypervisors, virtual machines and the guest operating system will work without any difference.
There are two types of Hypervisors as listed below:
Bare Metal, Native or Type 1 Hypervisors
Bare metal hypervisors are hosted directly on the host hardware and no separate host OS is needed for them. Because of the direct access to the hardware in bare-metal hypervisors, the ability to leverage all the features of the hardware is very high in bare-metal hypervisors. Virtualization requires a lot less overhead of the deployment, granular use of the resources, and better use of the hardware features. VMware ESXi (formerly ESX) is a famous example of a bare-metal hypervisor. In ESXi the hypervisor can be embedded into the direct computing platform just the way the BIOS is at the motherboard. ESX (the previous version of ESXi) has its own kernel, a Linux kernel is started first and then it loads all the virtualization components required. This Linux kernel is the primary virtual machine. The new ESXi hypervisor does not contain the Linux kernel instead of a microkernel of its own which handles CPU and memory directly using SBE (scan-before-execution) and SRAT (system resource allocation table).
Bare Metal Architecture
Hosted or Type 2 Hypervisors
Hosted hypervisor doesn’t work directly on the bare metal hardware and they need a host operating system to work. The calls by the virtual machines working over the hypervisor to access the CPU, memory, or bandwidth is coordinated by the hypervisor with the help of the host operating system. The performance of the hosted hypervisor compared to bare metal is down on the scale since they don’t have direct access to the resources but virtual machines running on this type of hypervisor can be shut down anytime, thus freeing up resources for the host machine anytime. Usually for small scale requirements hosted hypervisors are used, since the cost of setting up and management is a lot less than native hypervisors. VMWare Workstation and Oracle’s VirtualBox is a famous rivalry in hosted hypervisors, both of them are available on Windows, Linux, or macOS.
Hosted or Type 2 Architecture