Expand description
Per-process address spaces for Strat9-OS.
Each task owns an AddressSpace backed by a PML4 page table.
Kernel tasks share a single kernel address space. User tasks get a fresh
PML4 with the kernel half (entries 256..512) cloned from the kernel’s table.
x86_64 virtual address space layout:
- PML4[0..256] → User space (per-process, zeroed for new AS)
- PML4[256..512] → Kernel space (shared, cloned from kernel L4)
Structs§
- Address
Space - A per-process address space backed by a PML4 page table.
- Virtual
Memory Region - A tracked virtual memory region within an address space.
- VmaFlags
- Flags describing permissions for a virtual memory region.
Enums§
- VmaPage
Size - Supported page sizes for VMAs.
- VmaType
- Type/purpose of a virtual memory region.
Functions§
- init_
kernel_ ⚠address_ space - Initialize the kernel address space singleton.
- kernel_
address_ space - Get a reference to the kernel address space.