How Hypervisors Changed Computing

A hypervisor is the layer that creates and manages virtual machines (VMs): isolated computer environments with virtual CPUs, memory, devices, firmware, and storage. Its importance is not that it makes a computer “pretend” to be another one. Most production VMs run the same instruction-set architecture as their host and execute much of their code directly on a physical processor. The achievement is safe multiplexing: one machine can host independently administered operating systems while each receives a coherent, controllable view of hardware.

From CP-40 to VM

The idea predates personal computers. IBM’s experimental CP-40, developed at the Cambridge Scientific Center in the 1960s, demonstrated time-sharing by presenting users with virtual System/360-like machines. CP-67 extended that work to the System/360 Model 67 and paired the Control Program (CP) with the conversational monitor system (CMS). IBM’s VM family—VM/370 and successors—made the model durable: CP managed hardware and virtual machines, while users could run CMS or, subject to support, other guest systems. The lineage matters because virtualization was born from sharing expensive central resources and offering strong operational separation, not from today’s cloud branding.

Modern VM platforms preserve that basic division. A virtual machine monitor schedules virtual CPUs, maps guest memory, presents virtual devices, and handles privileged events. The guest kernel remains responsible for its processes, filesystems, drivers, and policies. An administrator can snapshot a VM, migrate it, restrict its network, or run a legacy operating system without granting it ownership of the host.

What “virtualizable” means in practice

Popek and Goldberg’s 1974 paper framed a virtual machine architecture in terms of equivalence, resource control, and efficiency. In plain language, software in a VM should behave substantially as it would on hardware; the monitor must retain control of resources; and ordinary instructions should run directly rather than being interpreted one by one. Their formal results concern a particular architecture model, but the practical lesson remains useful: privileged operations must not silently change the real machine from beneath the monitor.

Trap-and-emulate is the classic answer. When a guest executes a privileged action—changing a page-table base, configuring an interrupt controller, touching a device register—the processor traps into the hypervisor. The hypervisor validates the request and updates virtual state or emulates the effect. Nonprivileged computation continues at near-native speed. The monitor also mediates memory, interrupts, timers, and DMA, so isolation is a system property rather than merely a CPU privilege setting.

Why early x86 was awkward

Classic x86 did not neatly satisfy the assumptions. Some sensitive instructions could reveal or alter state without reliably trapping when executed outside the most privileged ring. A guest operating system written for ring 0 could therefore observe that it was not really in ring 0, or behave incorrectly if simply deprivileged. Early products used techniques such as ring compression and careful emulation, but fully transparent, efficient virtualization required more work than the appealing “just run the OS” description suggests.

VMware’s influential answer on x86 was binary translation. It scanned and rewrote problematic guest kernel instruction sequences into safe sequences that called the monitor as needed, while allowing ordinary user-mode code to execute directly. This was sophisticated dynamic code generation, not conventional full CPU interpretation. It made unmodified commodity operating systems practical guests before hardware support was widespread, while device emulation and virtual networking supplied the rest of the machine.

Xen chose another trade-off: paravirtualization. A paravirtualized guest knows it is virtualized and replaces difficult privileged operations with explicit hypercalls to the hypervisor. Cooperative interfaces could reduce overhead and improve clarity, but they require a modified guest kernel or suitable vendor support. Xen also popularized efficient split-driver arrangements: a front-end driver in a guest communicates with a back-end driver in a privileged service domain, rather than imitating every detail of a physical controller.

Hardware assistance changed the default

Intel VT-x and AMD-V added CPU virtualization modes that let a hypervisor specify events causing a controlled transition, commonly called a VM exit. The guest runs in a non-root mode; the hypervisor runs in root mode. These are not simply old protection rings with new names. The processor can save relevant guest context, report why an exit occurred, and resume the guest after the monitor handles it. Hardware assistance made unmodified x86 guests broadly practical, but each exit still has a cost, so efficient platforms minimize unnecessary intercepts.

FacilityProblem it addressesOperational consequence
VT-x / AMD-VControlled CPU privilege transitionsUnmodified guests can execute privileged code under monitor control
EPT / NPTGuest physical memory must map safely to host memoryHardware performs nested page translation; fewer software shadow-page-table costs
IOMMUA device can DMA outside a guest’s assigned memoryDMA is translated and constrained, enabling safer assignment
Paravirtual driversEmulated legacy devices can be costlyGuests use efficient, virtualization-aware I/O paths

Extended Page Tables (EPT) on Intel and Nested Page Tables (NPT), also called Rapid Virtualization Indexing on AMD systems, add a second hardware-managed translation. A guest translates virtual addresses to what it believes are physical addresses; the hypervisor maps those guest physical pages to host physical pages. This permits strong memory isolation and avoids much of the old shadow page-table maintenance. It does not erase memory overhead: page walks, translation lookaside buffer pressure, overcommit policies, and large-page choices still affect latency.

An IOMMU performs an analogous role for device DMA. Without it, directly assigned hardware might read or write arbitrary host memory. With appropriate IOMMU mappings and interrupt remapping, a hypervisor can give a guest controlled access to a PCIe device, often called passthrough. This can improve performance for GPUs, network adapters, or storage controllers, but changes manageability: migration, snapshots, power control, firmware compatibility, and host recovery become more constrained.

Platforms and architectures

KVM (Kernel-based Virtual Machine) is a Linux kernel virtualization subsystem using hardware extensions; user-space software such as QEMU commonly provides machine and device emulation, management hooks, and migration machinery. Calling KVM “just a type 2 hypervisor” misses this split design: Linux supplies scheduling, memory management, security controls, and drivers, while KVM converts a process into a VM-capable execution context. Its behavior depends materially on the kernel, QEMU device model, virtio drivers, and orchestration around it.

Hyper-V uses a hypervisor beneath Windows and partitions above it. The parent partition has special management and device responsibilities; child partitions run guests. Integration services and synthetic devices avoid some legacy emulation costs. VirtualBox is commonly used as a hosted desktop product: it integrates with a host operating system’s drivers and services while providing virtual hardware and management UI. It can use hardware virtualization and guest additions. These descriptions are more useful than ranking products by a single label.

The old taxonomy calls a bare-metal monitor “type 1” and a hosted product “type 2.” It is a useful starting vocabulary, not a security or performance theorem. A type 1 deployment still relies on firmware, management domains, device drivers, storage, networks, and privileged tooling. A hosted monitor can be entirely suitable for development, teaching, and desktop testing. Risk and performance depend on the trusted computing base, patch discipline, device model, isolation configuration, workload, observability, and recovery plan—not the numeral alone.

VMs are not containers

PropertyVirtual machineContainer
KernelUsually has its own guest kernelShares the host kernel
Isolation boundaryHardware-assisted virtual hardware plus monitorKernel namespaces, cgroups, LSMs and runtime policy
Operating-system choiceCan run a different compatible guest OSMust use the host kernel’s ABI family
Startup and densityOften heavier, though microVMs reduce overheadOften faster and denser

Containers package processes and dependencies while using one kernel. They are valuable, but a container escape is a host-kernel security concern; a VM supplies a different boundary and can itself run containers. Production systems frequently combine them: a cluster schedules containers inside VMs so tenant isolation, OS lifecycle, and application packaging can be managed separately. Neither tool eliminates the need for least privilege, image provenance, patching, backups, and network policy.

ARM, nesting, and confidential guests

ARM servers and desktops have made AArch64 virtualization increasingly important. ARM virtualization extensions provide privilege levels intended for a hypervisor, commonly described through Exception Level 2, while guests normally use lower exception levels. Stage-2 translation plays a role analogous to x86 EPT/NPT. Device assignment, interrupt virtualization, timer behavior, and firmware standards remain platform-specific engineering work; “ARM64” does not imply that every peripheral or guest image is interchangeable with x86-64.

Nested virtualization lets a guest hypervisor create its own guests: an L0 host runs L1, which runs L2. It is useful for labs, CI systems, training, and some cloud services, but multiplies translation and exit complexity. Features may be exposed selectively, performance can be uneven, and debugging a fault requires knowing which layer owns the virtual device or page mapping. A nested-capable checkbox is not a guarantee that every migration, passthrough, or security feature works at every depth.

Confidential-computing technologies seek to protect guest memory even from parts of the host or cloud operator. AMD SEV variants, Intel TDX, and ARM Confidential Compute Architecture pursue different designs involving memory encryption, hardware isolation, attestation, and carefully defined trust boundaries. They improve particular threats, not all threats: a guest still trusts its own kernel and applications, must manage secrets after attestation, and may expose information through configuration, I/O, availability, or side channels. Compatibility, debugging, live migration, and monitoring can require different workflows.

The 2026 picture

In 2026, virtualization is ordinary infrastructure rather than a novelty: cloud instances, enterprise consolidation, developer desktops, CI runners, network functions, and microVM sandboxes all use related mechanisms. Hardware-assisted virtualization, nested paging, virtio-style I/O, and automation have made it practical at enormous scale. The hard work has moved toward lifecycle and boundaries: firmware supply chains, device isolation, measured boot, confidential guest attestation, migration compatibility, resource contention, and observability without excessive privilege.

There is no universal “best hypervisor.” An archival guest may prioritize a stable virtual chipset; a latency-sensitive database may prioritize NUMA placement and I/O; a laptop lab may value simple snapshots; a multi-tenant service may emphasize hardened control planes and attestation. Evaluate the documented CPU features, supported guest versions, device model, backup and restore semantics, patch process, and failure behavior for the workload.

Authoritative starting points

  1. G. J. Popek and R. P. Goldberg, Formal Requirements for Virtualizable Third Generation Architectures (1974).
  2. IBM, z/VM history timeline, for CP-40, CP-67, and VM/370 context.
  3. Keith Adams and Ole Agesen, A Comparison of Software and Hardware Techniques for x86 Virtualization, for VMware's binary-translation history.
  4. Intel, Intel 64 and IA-32 Architectures Software Developer’s Manual, and AMD, Architecture Programmer’s Manuals, for virtualization extensions.
  5. The Linux KVM documentation and the OASIS virtio 1.3 specification for current implementation detail.