Same virtual regions, different ownership
This figure documents the historical i386 source baseline. Current native x86-64/AArch64 qualification is recorded separately; this is not an ELF64 or native SMP implementation diagram.
Task A · page directory A
- Private user stack
- User + writable
- Private heap / ELF
- User pages
- Low 128 MiB identity map
- Supervisor only
Task B · page directory B
- Private user stack
- Different frames
- Private heap / ELF
- Different frames
- Low 128 MiB identity map
- Same kernel frames
Scheduler: change CR3 when page directories differ. Shared virtual regions do not imply shared user frames.
Each user task has private user frames and the same supervisor-only kernel identity map.
Text equivalent and source references
- Task A and task B have different page directories and private ELF, stack and heap frames.
- Both directories retain the low 128 MiB supervisor-only identity map. A context switch loads CR3 only when the selected directories differ. Rows show regions, not address-scale measurements.
Aligned comparison. Source paths refer to the atlas baseline; the kernel checkout is private.
kernel/core/memory.c · vmm_init, vmm_create_user_dirkernel/core/task.c · task_create_user, schedule