- Implement Process structure representing a virtual address space
- Add process table with PID allocation (max 64 processes)
- Initialize new process page tables with kernel mappings copied
- Implement address space switching via CR3 manipulation
- Process 0 reserved for kernel, uses boot page table
In XOmB's exokernel model, a process is fundamentally its page table.
The kernel maintains minimal state - just enough to securely multiplex
hardware resources via paging.
- Implement IDT with handlers for CPU exceptions (vectors 0-19)
- Add kernel-space GDT module to support identity mapping removal
- Add memory intrinsics (memcpy, memset, memmove, memcmp) for no_std
- Add remove_identity_mapping() to paging module
- Reload GDT to higher-half before removing identity mapping
Exception handlers print full register state and halt on fault.
Tested with divide-by-zero and INT3 breakpoint exceptions.
Core kernel infrastructure:
- Multiboot2 boot with GRUB, long mode setup, higher-half kernel
- Serial port output for debugging
- Unified boot info abstraction for future UEFI support
Memory management:
- Physical frame allocator with bitmap tracking
- Page table manipulation via recursive mapping (PML4[510])
- Support for 4KB, 2MB, and 1GB page mappings
- TLB invalidation and proper NXE support
Build system:
- Cargo-based build with custom x86_64 target
- Makefile for QEMU and Bochs testing
- GRUB ISO generation for multiboot2 boot