
No program ever touches memory directly. What it holds is an address that means nothing until a page table walker climbs down through PML5, PML4, PUD, PMD, and PTE, level after level, converting a polite fiction into a real physical frame. Every virtual address is a claim, not a place — a claim that has to be resolved fresh, one level of indirection at a time, before it can be honored.
The Translation Lookaside Buffer exists because that climb is expensive and the same handful of translations get reused constantly. It is a cache of recently agreed-upon lies, tagged with an address-space ID so a context switch doesn't have to burn them all down — the fiction survives being set aside for a moment, as long as the tag proves which process's fiction it was.
Virtualization stacks the fiction higher still. A guest kernel walks its own page tables to translate its own lie into what it believes is a physical frame, and hardware silently walks a second nested table underneath — Extended Page Tables, Nested Page Tables — to translate that translation into something the host actually owns. Two walks for one memory access, each one a separate agreement about what a number is allowed to mean.
The address was never a place. It was always a claim, honored on demand, by machinery built entirely to make the honoring fast enough that no program ever has to notice it was asking a question at all.
Seed: Operating System Virtual Memory & Hardware Page Table Mechanics (TLB, Multi-Level Page Tables, EPT/NPT).