Virtualization is the foundation that enables cloud computing by abstracting physical resources into logical units that can be provisioned on-demand.

Definition

According to NIST Special Publication 800-125:

“Virtualization is the simulation of the software and/or hardware upon which other software runs. This simulated environment is called a virtual machine (VM).”

In other words, virtualization creates an abstraction layer that transforms a real (physical) system so it appears as a different virtual system or as multiple virtual systems.

Key Concepts

  • Host System: The physical hardware and software on which virtualization is implemented
  • Guest System: The virtual system that runs on the host
  • Hypervisor/VMM (Virtual Machine Monitor): Software that creates and manages virtual machines

Formal Definition

Virtualization can be formally defined through an isomorphism V that maps the guest state to the host state:

  • For each sequence of operations e that modifies the guest’s state from Si to Sj
  • There exists a corresponding sequence of operations e’ that performs an equivalent modification between the host’s states (S’i to S’j)

Categories of Virtualization

Virtualization technologies can be categorized into three main types:

1. Process Virtualization

  • Creates a virtual environment for individual applications
  • Examples: Java Virtual Machine (JVM), Common Language Runtime (.NET/Mono)
  • Used for platform independence and sandboxing

2. OS-Level Virtualization

  • Creates isolated environments (containers) within an operating system
  • Examples: Linux Containment Features, Docker, FreeBSD Jails
  • Used for application isolation and packaging

3. System Virtualization

Creates complete virtual machines with virtualized hardware

  • Emulation: Complete software emulation of hardware (e.g., QEMU, Bochs)
  • Full Virtualization: Virtualization where the guest OS is unmodified (e.g., VMware Workstation, VirtualBox)
  • OS-Assisted Virtualization: Virtualization where the guest OS is modified to cooperate with the hypervisor (e.g., Xen)
  • Hardware-Assisted Virtualization: Virtualization leveraging special CPU features (e.g., KVM, Hyper-V)

Types of Hypervisors

Type 1 (Bare-Metal Hypervisors)

  • Run directly on hardware
  • Examples: VMware ESXi, Xen, Microsoft Hyper-V, KVM
  • More efficient, better performance
  • Require special device drivers

Type 2 (Hosted Hypervisors)

  • Run as an application on a host operating system
  • Examples: VMware Workstation, Oracle VirtualBox, QEMU
  • Less efficient but more flexible
  • Can use the host OS device drivers

Importance in Cloud Computing

Virtualization is critical for cloud computing because it enables:

  1. Resource pooling: Physical resources can be shared among multiple users
  2. Isolation: Different users’ workloads can run on the same hardware without interfering with each other
  3. Rapid provisioning: Virtual resources can be created, modified, or deleted quickly
  4. Elasticity: The ability to scale resources up or down based on demand
  5. Efficient resource utilization: Higher utilization rates of physical hardware

Challenges

  • Performance overhead: Virtualization introduces some performance penalties
  • Security concerns: Potential for VM escape vulnerabilities
  • Resource management: Allocation and scheduling of resources among VMs
  • Complexity: Additional layer in the system architecture