What are Hypervisors?
Hypervisor = Virtual Machine Manager (VMM).
2 Types of Hypervisors
- Type-1: native or bare metal hypervisor.
- hypervisor runs directly on the host's hardware.
- e.g. XEN, Hyper-V (Windows; used by WSL), VMware ESXi (renamed from ESX; i for integrated)
- Type-2: hosted hypervisor.
- hypervisor runs on a conventional operating system, a guest operating system runs as a process on the host.
- e.g. VMware Workstation, VirtualBox, QEMU.
KVM can be considered as both Type-1 and Type-2.
The most popular Hypervisors
- Xen: an external hypervisor; it assumes control of the machine and divides resources among guests.
- KVM: part of Linux and uses the regular Linux scheduler and memory management. This means that KVM is much smaller and simpler to use; it also provides some features not available in Xen. For example, KVM can swap guests to disk in order to free RAM.
- It consists of a loadable kernel module,
kvm.ko
, that provides the core virtualization infrastructure and a processor specific module,kvm-intel.ko
orkvm-amd.ko
. - QEMU is the default VMM (Virtual Machine Manager) of KVM, but can be replaced. QEMU is a generic and open source machine emulator and virtualizer. The Android emulator is built on QEMU.
- KVM: kernel side; QEMU: userspace. QEMU can use KVM and host CPU to accelerate:
$ qemu-system-x86_64 accel=kvm ...
- The kernel component of KVM is included in mainline Linux, as of 2.6.20. The userspace component of KVM is included in mainline QEMU, as of 1.3.
- It consists of a loadable kernel module,
- VirtualBox: by Oracle
- a Type 2 Hypervisor.
- open source and free; No hardware virtualisation required.
- VMware ESXi, VMware Workstation
- Hyper-V by Microsoft
- PowerVM by IBM
- Red Hat Virtualization
- oVirt: created by RedHat
- designed to be a cost-effective alternative to commercial virtualization programs like Microsoft Hyper-V or VMware vSphere.
- Red Hat uses it as the upstream version of its commercial virtualization product, Red Hat Virtualization
- Cloud Hypervisor: a special-purposed VMM, doesn't aim to be a all-functioning emulator (like QEMU), but only concerns the use case of cloud workloads.
- owned by The Linux Foundation.
- "Cloud Hypervisor is an open source Virtual Machine Monitor (VMM) implemented in Rust that focuses on running modern, cloud workloads, with minimal hardware emulation."
- Website: https://www.cloudhypervisor.org
- Source code: https://github.com/cloud-hypervisor/cloud-hypervisor
Hypervisors used in Clouds
- AWS:
- Xen
- Nitro Hypervisor: a modified KVM. For new kinds of EC2 instances.
- Google:
- GCE: KVM
- Cloud Run: gVisor
- Azure: Windows Hyper-V
- VMware: ESXi
- Oracle VM: Xen
- Redhat: Red Hat Virtualization (RHV), based on KVM.