diff options
Diffstat (limited to 'CLAUDE.md')
| -rw-r--r-- | CLAUDE.md | 15 |
1 files changed, 10 insertions, 5 deletions
@@ -4,7 +4,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co ## Project Overview -**Strix OS** is a bare-metal x86-64 operating system kernel written in Rust, aiming for Linux application compatibility. Currently in Phase 0-1 (foundational infrastructure). +**Strix OS** is a bare-metal x86-64 operating system kernel written in Rust, aiming for Linux application compatibility. Currently in Phase 1 (memory management complete, heading into user space). ## Build Commands @@ -45,13 +45,18 @@ cargo clean | `gdt.rs` | Global Descriptor Table + Task State Segment (double-fault stack) | | `interrupts.rs` | IDT setup, exception handlers, hardware interrupts (timer/keyboard via PIC 8259) | | `memory.rs` | Page table access (`OffsetPageTable`), `BootInfoFrameAllocator` for physical frames | +| `allocator.rs` | Heap allocator dispatcher; `HEAP_START`/`HEAP_SIZE` constants; `init_heap()` | +| `allocator/bump.rs` | Simple bump allocator (fast alloc, dealloc only when all freed) | +| `allocator/linked_list.rs` | First-fit linked-list allocator (arbitrary alloc/dealloc) | +| `allocator/fixed_size_block.rs` | **Active**: hybrid fixed-size block allocator with 9 size classes (8–2048 bytes) + linked-list fallback | | `vga_buffer.rs` | VGA text mode (80x25), `print!`/`println!` macros | | `serial.rs` | UART 16550 serial output, `serial_print!`/`serial_println!` for debugging | ### Memory Model -- Uses bootloader's `map_physical_memory` feature: all physical memory mapped at a fixed offset +- Uses bootloader's `map_physical_memory` feature: all physical memory mapped at a fixed offset (`0x0000256000000000`) - `OffsetPageTable` translates virtual ↔ physical addresses - `BootInfoFrameAllocator` provides frames from bootloader's memory map +- Heap region: virtual address `0x4444_4444_0000`, size 100 KiB ### Test Framework - Custom `#[test_case]` attribute with `Testable` trait @@ -74,7 +79,7 @@ cargo clean ## Roadmap -See `roadmap.md` for the 6-phase development plan. Next priorities: -1. Heap allocator (GlobalAlloc implementation) -2. User space (Ring 3 transition, syscall interface) +See `roadmap.md` for the 6-phase development plan. Phase 1 (memory management) is complete. Next priorities: +1. User space (Ring 3 transition, syscall interface via SYSCALL/SYSRET MSRs) +2. ELF loading (parser + execve) 3. Process management (fork, exec, scheduler) |
