TODO ==== Architectural Milestones [-] 64-bit rewrite [x] Limine (Bootloader) [ ] Decent build system (feat. cross-compiler) [x] kernel.h rewrite & header cleanup [x] debugf() cleanup, kprintf() & pr_*() (Standardized logging levels) [x] errno.h errors and "errno-in-pointer" macros Low-Level Hardware & Interrupts [x] GDT [x] IDT [x] Basic IRQs (Internal/Legacy) [x] Proper fault handling (Exceptions, Page Faults, #GP) [ ] Check for features with CPUID (NX-bit, SSE, AVX) [ ] APIC driver (Local APIC & I/O APIC) [ ] ACPI driver (Parsing RSDP/MADT for multi-core/APIC) [ ] HPET driver (High precision timing) Memory Management [x] Physical memory manager (Bitmap or Buddy) [x] Paging (Recursive or Offset mapping) [-] Kernel heap (kmalloc/kfree - Linked list or Slab) [ ] Memory mapped I/O (MMIO) API for drivers [ ] VMM: Shared memory regions (For IPC/Framebuffers) [ ] VMM: Copy-on-Write (COW) support (Optional but good) Multitasking & User Space [ ] System calls (SYSCALL/SYSRET implementation) [ ] Context switching (Saving/Restoring CPU state) [ ] Tasking (Thread/Process control blocks) [ ] Scheduler (Round Robin or Priority-based) [ ] User-space stacks & privilege isolation (Ring 3) [x] Stack Smash Protector Interprocess Communication [ ] Interprocess Communication (Sync/Async messaging) [ ] Capability-based security (Optional: basic handle system) [ ] Signal/Event system (Interrupt forwarding to user space) Bootstrapping & Filesystem [ ] USTAR parser (Read initrd.tar) [ ] Initrd integration (Loading modules via Limine) [ ] ELF parser (Loading PT_LOAD segments) [ ] /init (The first user-space process) [ ] VFS Server (Abstracting file requests via IPC) Drivers & IO [x] Serial driver (For kernel debugging) [-] Framebuffer driver (Basic LFB/GOP) [ ] PS/2 Keyboard driver (As a user-space server) [ ] PCI Bus Enumerator (The "parent" of hardware drivers) [ ] Storage driver (SATA/AHCI or VirtIO) The Final TODOs [ ] Gaming???!!?? [ ] Run DOOM [-] Finish all the TODOs Legend ------ [ ] Not finished [-] In progress [x] Finished