diff --git a/notes/chapter3-page-tables b/notes/chapter3-page-tables index 337cf86..9b7f4e4 100644 --- a/notes/chapter3-page-tables +++ b/notes/chapter3-page-tables @@ -76,3 +76,10 @@ Before setting satp, instructions use phy@. Each CPU its own satp so each CPU can handle user code. XV6 = 1 page table per process and 1 page table for the kernel +XV6 kernel page table: +- direct mapping for most pages +- no direct mapping for the trampoline page +- no direct mapping for stacks' pages + => these pages are related to the processes (`kstack` in the `proc` structure) + => the kstack is followed by an invalid guard page (PTE_V not set) + to prevent memory corruption from stack overflows