diff --git a/README.md b/README.md index 7706d2d..663af1b 100644 --- a/README.md +++ b/README.md @@ -103,51 +103,50 @@ make run KARCH=aarch64 ## Current Functionality -| Component | Status | Description | -| -------------------- | ------- | -------------------------- | -| Limine Bootloader | ✅ Done | BIOS/UEFI support | -| Physical MM (Bitmap) | ✅ Done | Page bitmap | -| Page Tables (x86_64) | ✅ Done | 4-level addressing | -| Global Allocator | ✅ Done | Bump allocator (8MB) | -| Framebuffer | ✅ Done | Graphical output | -| Console | ✅ Done | Text output with scrolling | +| Component | Status | Description | +| --- | --- | --- | +| Limine Bootloader | ✅ Done | BIOS/UEFI support | +| Physical MM (Bitmap) | ✅ Done | Initial physical frame management | +| Page Tables (x86_64) | ✅ Done | 4-level paging, HHDM support | +| Kernel Heap | ✅ Done | Slab Allocator (8MB) | +| Framebuffer/Console | ✅ Done | Graphical output with font rendering | +| PMActor Subsystem | ✅ Done | Distributed memory ownership model | +| PMRouter | ✅ Done | Lock-free MPSC response routing | +| Capability Model | ✅ Done | Base `CNode` & `Capability` primitives | ## Memory System Development Status -| Task | Status | Note | -| --------------------------- | -------------- | ----------------------- | -| **Basic initialization** | ✅ Ready | Limine, MMU, PMM | -| **Physical allocator** | ✅ Ready | BitmapPMM working | -| **Paging** | ✅ Ready | P4->P1 mapping | -| **Global heap** | ✅ Ready | 8MB bump allocator | -| **Descriptor memory model** | ⏳ Not Started | Planned | -| **Processes and spaces** | ⏳ Not Started | No IPC | -| **Memory syscalls** | ⏳ Not Started | allocate/clone/transfer | -| **Weak references** | ⏳ Not Started | borrow/release | -| **Process auto-cleanup** | ⏳ Not Started | On exit | +| Task | Status | Note | +| --- | --- | --- | +| **Basic Initialization** | ✅ Ready | Boot, MMU, IDT, PMM | +| **Buddy Allocator** | ✅ Ready | Efficient per-actor memory carving | +| **Async PM Messaging** | ✅ Ready | Actor-based allocation requests | +| **Lock-free Routing** | ✅ Ready | Zero-copy response dispatching | +| **Descriptor Model** | ⏳ In Progress | `MemoryObject` & refcounting logic | +| **Process Isolation** | ⏳ Not Started | Address space cloning/switching | +| **Memory Syscalls** | ⏳ Not Started | `allocate`, `transfer`, `grant` | +| **Weak References** | ⏳ Not Started | `borrow`/`release` for capabilities | ## Development Plan (TODO) | # | Task | Subtasks | Priority | Dependencies | -|---|------|----------|----------|--------------| -| 1 | **Descriptor memory model** | | High | PMM, VMM | -| | | 1.1. `MemoryObject` structure | | | -| | | 1.2. Descriptor table per process | | | -| | | 1.3. Refcounting (strong/weak) | | | -| | | 1.4. Syscalls: `allocate`, `clone` | | | -| 2 | **Processes** | | High | Descriptors | -| | | 2.1. PCB structure | | | -| | | 2.2. Descriptor Table per process | | | -| | | 2.3. Auto-cleanup on exit | | | -| 3 | **Syscalls API** | | Medium | Processes | -| | | 3.1. `transfer(desc, target)` | | | -| | | 3.2. `borrow(desc, duration)` | | | -| | | 3.3. `release(desc)` | | | -| 4 | **MMU Integration** | | Medium | Syscalls | -| | | 4.1. Page table per process | | | -| | | 4.2. Mapping by descriptors | | | -| | | 4.3. Unmapping on release | | | -| 5 | **Circular references** | | Low | All above | +| --- | --- | --- | --- | --- | +| 1 | **Capabilities System** | | High | PMActor | +| | | 1.1. Capability refcounting | | | +| | | 1.2. Inter-process delegation | | | +| 2 | **Process Management** | | High | Capabilities | +| | | 2.1. PCB & Context switching | | | +| | | 2.2. Address Space isolation | | | +| | | 2.3. Auto-cleanup on exit | | | +| 3 | **Syscalls API** | | Medium | Processes | +| | | 3.1. `transfer(desc, target)` | | | +| | | 3.2. `mint(desc)` (delegation) | | | +| 4 | **Advanced MMU** | | Medium | Syscalls | +| | | 4.1. Lazy paging / Copy-on-Write | | | +| | | 4.2. TLB Shootdown (SMP support) | | | +| 5 | **Security/Hardening** | | Low | All above | +| | | 5.1. Circular ref detection | | | +| | | 5.2. Capability revocation depth | | | ## Debugging