|
- Restructure GDT to add kernel_data/user_data/user_code in the order
required for SYSCALL/SYSRET ABI:
0x08 kernel code, 0x10 kernel data, 0x18 user data, 0x20 user code, 0x28 TSS
STAR MSR values: STAR[47:32]=0x08, STAR[63:48]=0x10
- Add TSS.privilege_stack_table[0] (RSP0) with 8 KiB static initial stack
for Ring3→Ring0 hardware interrupt transitions
- Expose GDT static and all Selectors fields as pub (needed by syscall module)
- Add set_kernel_stack(VirtAddr) for scheduler to update RSP0 per-process
- Grow HEAP_SIZE 100 KiB → 4 MiB to support process table + kernel stacks
- Fix pre-existing lifetime elision lint in allocator.rs
- Update flake.nix: add cpio, busybox, gdb, binutils, e2fsprogs
- Update NOTES.md with decisions and next steps
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|