Hypervisor

From Pulsed Media Wiki

Template:Short description Template:Redirect Template:Infobox software

A hypervisor (also known as a Virtual Machine Monitor or VMM) is a layer of software, firmware, or hardware that creates and runs virtual machines (VMs). It allows one host machine to support multiple guest machines by virtually sharing its hardware resources, such as CPU power, memory, and I/O devices.

The hypervisor acts as an intermediary layer between the physical host hardware and the guest operating systems (OSs) running inside the VMs. Its primary function is to provide isolation between VMs and manage the allocation of the host's resources to ensure that each VM operates independently and efficiently.

Overview

The hypervisor is the core component of virtualization platforms. It enables the virtualization of physical hardware, allowing multiple operating systems to run concurrently on a single physical machine. Each VM is presented with a virtualized set of hardware resources, giving the guest OS the impression that it has dedicated access to hardware, when in reality, the hypervisor is managing and sharing the host's actual resources.

Isolation provided by the hypervisor ensures that if one VM crashes or is compromised, it does not affect the operation of other VMs or the host system. This enhances stability, security, and resource utilization.

Role in Virtualization

The hypervisor is essential for hardware virtualization. It performs tasks such as:

  • Hardware Abstraction: It hides the details of the underlying physical hardware from the guest OS, providing a consistent virtual hardware environment.
  • Resource Allocation: It controls how the host's CPU time, memory, storage I/O, and network bandwidth are allocated and scheduled among the competing guest VMs.
  • Instruction Interception: It can intercept and manage privileged instructions issued by the guest OS that directly access hardware, either handling them itself or translating them for the physical hardware.
  • Device Emulation/Paravirtualization: It provides guests with access to virtual devices (emulated hardware) or uses paravirtualization techniques (where the guest OS is modified to be aware it's running on a hypervisor for better performance) to handle I/O.

Types

Hypervisors are generally categorized into two main types based on their relationship to the host hardware and operating system:

Type 1 Hypervisors (Native or Bare-Metal)

  • These hypervisors run directly on the host computer's hardware, below any operating system.
  • They manage the hardware resources directly and provide a platform for guest operating systems to run on.
  • Guest OSes run directly on the hypervisor.
  • They are typically used in server environments and data centers due to their efficiency, performance, and resource management capabilities.

Common Examples:

  • VMware ESXi
  • Microsoft Hyper-V (when installed as the primary OS layer)
  • Xen
  • KVM (A virtualization infrastructure in the Linux kernel that, combined with user-space components like QEMU and libvirt, functions as a Type 1 hypervisor).

Type 2 Hypervisors (Hosted)

  • These hypervisors run as an application on top of a conventional host operating system (like Windows, macOS, or Linux).
  • The host OS manages the hardware resources, and the hypervisor is a software layer that schedules and manages the guest VMs as processes within the host environment.
  • Guest OSes run on top of the hypervisor software, which in turn relies on the host OS.
  • They are commonly used on desktop computers for running different operating systems for development, testing, or compatibility purposes.

Common Examples:

Key Functions

The core functions performed by a hypervisor include:

  • Creating, starting, stopping, and deleting virtual machines.
  • Allocating and dynamically adjusting CPU, memory, and storage resources for each VM.
  • Scheduling CPU time for guest VMs on the physical CPU cores.
  • Managing virtual networking and storage for VMs.
  • Providing virtual input/output devices to the guest OS.
  • Maintaining isolation and security boundaries between VMs.

See also

References

Template:Reflist

External links

Template:Virtualization Template:Operating system kernels Template:Computer architecture