Overview

The Virtual Machines module covers system-level virtualization abstractions that decouple operating systems and process environments from physical hardware. It details Virtual Machine Monitor (VMM / Hypervisor) architectures, execution paradigms (Trap-and-Emulate), software translation techniques (Paravirtualization and Binary Translation), vCPU scheduling, event vectoring, I/O virtualization (SR-IOV), hardware-assisted memory translation (EPT / NPT), and OS-level container virtualization (Namespaces & cgroups).


Module Notes

Note LinkDescriptionKey Concepts
Virtualization Fundamentals & Trap-and-EmulateProcess vs VM abstractions, VMM responsibilities, hypervisor design goals, full simulation vs. Trap-and-Emulate execution workflows.Process vs VM, VMM, Hypervisor Goals, Trap-and-Emulate, HALT Handling
Hypervisor Architectures & Software VirtualizationStructural classification of Type-1 bare-metal vs Type-2 hosted hypervisors, x86 virtualization pitfalls, Paravirtualization, and Binary Translation.Type-1, Type-2, Popek-Goldberg, Paravirtualization, Binary Translation
CPU, Event, and IO VirtualizationVirtual core scheduling (vCPUs), event/interrupt vectoring, system call execution, and I/O virtualization via emulated drivers, virtio, and SR-IOV.vCPU Scheduling, System Call Traps, Emulated I/O, virtio, SR-IOV
Memory Virtualization & Extended Page TablesThree-tier memory mapping (GVA GPA HPA), software Shadow Page Tables, and hardware-assisted Extended Page Tables (EPT / NPT).GVA/GPA/HPA, Shadow Page Tables, Intel EPT, AMD NPT, IOMMU
ContainersOS-level virtualization, container vs. VM architectural comparisons, namespace isolation (PID, Network, Mount), and resource control via cgroups.OS Virtualization, Namespaces, Local-to-Global PID Mapping, cgroups

Virtualization Architecture Overview

graph TD
    App["Guest Applications (User Space / Ring 3)"] --> GuestOS["Guest Operating System (Non-Root Ring 0)"]
    GuestOS -->|GVA -> GPA Walk| GuestPT["Guest Page Table"]
    
    subgraph HardwareVirtualization ["Hardware-Assisted Hypervisor Layer (Root Ring 0)"]
        VMM["Virtual Machine Monitor (VMM / Hypervisor)"]
        EPT["Extended Page Tables (EPT / NPT)"]
        SRIOV["IOMMU & SR-IOV Drivers"]
    end
    
    subgraph OSVirtualization ["OS-Level Virtualization Layer (Containers)"]
        Containers["Containers (Process Groups)"]
        NS["Namespaces (Isolation)"]
        CG["cgroups (Resource Limits)"]
    end

    Containers --> NS
    Containers --> CG
    NS --> SharedKernel["Shared Host Kernel"]
    CG --> SharedKernel
    
    GuestOS -->|VM-Exit Trap on Privileged Actions| VMM
    GuestPT -->|GPA -> HPA Walk| EPT
    EPT --> DRAM["Physical DRAM Frames (HPA)"]
    SRIOV --> PCIe["Physical PCIe Devices"]