← Back to Labs

Copy-on-Write Page Table Walk

Watch fork share physical pages, clear writable PTE bits, trigger a CoW fault, and copy only the page that truly diverges.

Parent page-table entries
vpn 0 -> PFN 40 W
vpn 1 -> PFN 41 W
vpn 2 -> PFN 42 W
Child page-table entries
child does not exist yet
Physical page frames
PFN 40private to one process
parent mapping
config
PFN 41private to one process
parent mapping
heap
PFN 42private to one process
parent mapping
stack
Kernel note for this step
All three mappings are writable and private.
Step 1 / 5Parent owns writable private pages

Before fork, the parent has its own page table and each virtual page points to a writable physical page.

Arrow keys to navigate · R to reset

Tap dots to jump to any step

Read the full article →Take the quiz →