Hypervisor Fundamentals

Session: 2026-08-20 — Building toward "write a kernel driver that enables SVM and does a VMRUN/VMEXIT round-trip"

Dependency order: Core → Kernel Driver → SVM → VMRUN/VMEXIT
Each concept is defined in terms of the ones before it, so we teach them in this order.
1 Core confirmed

A core is one independent processing unit inside your CPU chip. Your Ryzen 9 9900X has 12 cores — 12 separate copies of the Zen 5 microarchitecture on one chip. Each core can fetch, decode, and execute ISA instructions independently and simultaneously.

For a hypervisor: each core has its own SVM hardware that must be enabled individually. 12 cores = 12 separate "flip the switch" setup routines.

LTM anchor
Microarchitecture = a chip design implementing the ISA. A core = one physical copy of that design. 12 cores = 12 independent Zen 5 engines.

Follow-up: CPU parallelism vs GPU parallelism

CPUs do have parallelism — 12 cores = 12 things truly simultaneous. GPUs have massive parallelism — ~10,752 tiny cores doing the same simple op on different data. CPU cores are few and powerful (complex branching); GPU cores are many and simple (bulk arithmetic). Hypervisors need CPU-style parallelism. Neural net training needs GPU-style.

Follow-up: Threads, Concurrency, Parallelism

Thread = one sequential instruction stream. Concurrency = multiple threads making progress, possibly by one core time-slicing between them. Parallelism = multiple threads running at the literal same instant on different cores. Multi-threaded program on 1 core = concurrency; on multiple cores = parallelism.

2 Kernel Driver learning now

A kernel driver is a program that runs at Ring 0, the same privilege level as the Windows kernel itself. Normal programs (Chrome, VS Code) run at Ring 3 and are blocked from directly accessing hardware. A kernel driver runs inside the kernel, so it can access hardware — including the SVM registers on each core.

Why you need one: SVM can only be enabled by code running at Ring 0 (kernel privilege). A normal .exe at Ring 3 can't do it. So you write a kernel driver, load it into Windows, and from Ring 0 it flips the SVM switch on each core. The driver is your launchpad — once SVM is on, you're at Ring -1 and the hypervisor is running.

LTM anchor
You already know Ring -2 / -1 / 0 / 3 from your BIOS notes. A kernel driver = code that runs at Ring 0. It's the minimum privilege level needed to touch SVM hardware. Think of it as: Ring 3 programs ask the OS nicely; Ring 0 drivers reach into the hardware directly.
3 SVM (Secure Virtual Machine) locked

Unlocks after Kernel Driver is confirmed.

4 VMRUN / VMEXIT locked

Unlocks after SVM is confirmed.

Q&A Log

Q: What is a core, and why does the number of cores matter for a hypervisor? Core
Answer: "Core = a processing unit on your CPU. A computer can have multiple cores, say 12, that can do work independently." Intuited that VMs shouldn't share cores — close; the immediate reason is that each core has independent SVM hardware that must be enabled separately. Confirmed after correction.
Q: Is multi-threading concurrency or parallelism? Core
Follow-up from user. Thought CPUs couldn't do parallelism at all (only GPUs). Clarified: CPUs do parallelism (12 cores = 12 simultaneous), GPUs do massive parallelism (~10k tiny cores). Concurrency = time-slicing on one core; parallelism = truly simultaneous on multiple cores.