Virtualization Series
A guided tour of traditional machine virtualization, organized as ten chapters from foundations through performance, plus per-system case studies grounded in source-code reading.
A guided tour of traditional machine virtualization, organized as ten chapters from foundations through performance, plus per-system case studies grounded in source-code reading.
Canonical paravirtualizing Type-1 hypervisor. PV/HVM/PVH modes contrasted side by side across CPU, memory, I/O, cross-domain communication, and VM management. The disaggregated shape in production form.
A historical preface to the survey, organized into five eras from IBM CP-40 (1964) through modern microVMs and language-isolated systems. Anchors each era in the papers that invented the techniques later chapters treat as ambient.
What virtualization is, why it is used, and the Popek–Goldberg condition for virtualizability. Sets up the trap-and-emulate discipline that the rest of the survey treats as ambient context.
The four largely-independent axes of VMM design: placement (Type 1 vs Type 2), guest interface (full vs paravirtual), hardware support (VT-x, EPT, IOMMU), and isolation boundary (hardware, software, language).
The recurring component set inside a VMM (vCPU, memory, device, interrupt/timer, exit handler, control plane) and the three architectural shapes (monolithic, hosted, disaggregated) they organize into.
How guest code actually runs on a physical CPU: trap-and-emulate, binary translation, paravirtualization, and hardware-assisted virtualization (VT-x, AMD-V). Plus vCPU scheduling, gang scheduling, and the exit-cost story.
From shadow page tables to nested paging (EPT, NPT), with the overcommit toolbox: demand allocation, ballooning, content-based page sharing, hypervisor swapping, idle-memory taxation.
Full device emulation vs paravirtual (virtio + vhost) vs direct assignment (SR-IOV). The order-of-magnitude performance spread, the role of IOMMU, APICv, and posted interrupts, and how all three coexist in production.
Hypercalls, microkernel IPC, shared-memory rings, grant tables, capabilities — the substrate every non-monolithic VMM is built on. Cost anatomy of boundary crossings and why disaggregation lives or dies by it.