| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2026-04-08 | [Phase 2.4-2.6] Process table, round-robin scheduler, Ring 3 spawnCLAUDE_TEST | Natasha Moongrave | |
| Adds the task module (process control block, PROCESS_TABLE, round-robin scheduler, and iretq-based Ring 3 entry) and wires set_syscall_kernel_stack into the scheduler so SYSCALL uses the current process's kernel stack. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> | |||
| 2026-04-08 | [Phase 2.2/2.3] SYSCALL/SYSRET MSR setup + syscall dispatcher | Natasha Moongrave | |
| syscall/mod.rs: - Configure STAR (kernel CS=0x08, user base=0x10), LSTAR, SFMASK (clear IF), EFER.SCE to enable the SYSCALL/SYSRET instruction pair - Naked assembly entry stub: swapgs, save/restore user RSP via per-CPU static, remap r10→rcx for Linux arg4 convention, call Rust syscall_handler, sysretq - validate_user_ptr(): bounds check for all user pointers (0..USER_ADDR_MAX) - set_syscall_kernel_stack(): for scheduler to update per-CPU kernel RSP syscall/dispatch.rs: - dispatch(): routes syscall numbers; unknown → -ENOSYS (never panics) - sys_write(fd, buf, count): fd 1/2 → serial; validates user ptr; read_volatile loop avoids Rust aliasing assumptions on untrusted memory - sys_exit(): serial log + hlt_loop() placeholder; Phase 2.5 adds scheduling lib.rs: register syscall::init() + syscall::init_kernel_stack() in strix_os::init() All existing integration tests pass. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> | |||
| 2026-04-08 | [Phase 2.1] GDT user space segments + heap growth | Natasha Moongrave | |
| - 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> | |||
| 2026-04-08 | [Step 0] Add PLAN.md and NOTES.md | Natasha Moongrave | |
| PLAN.md: Full 7-phase development roadmap with progress tracker, per-phase tasks, integration test specs, security baseline, and dependency list. NOTES.md: Running developer log for context recovery after session resets. Documents key architecture decisions (GDT segment order, filesystem strategy, heap sizing, syscall ABI). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> | |||
| 2026-04-01 | POST 11 DONEHEADmaster | Natasha Moongrave | |
| 2026-04-01 | added a many_boxes_long_lived intgration test for heap_allocation | Natasha Moongrave | |
| 2026-04-01 | Added all new implemented allocators to allocator.rs | Natasha Moongrave | |
| 2026-04-01 | implemented a fixed size block allocator | Natasha Moongrave | |
| 2026-04-01 | implemented a linked list allocator | Natasha Moongrave | |
| 2026-04-01 | implemented a bump allocator | Natasha Moongrave | |
| 2026-03-30 | POST 10 DONE | Natasha Moongrave | |
| 2026-03-30 | added integration tests for heap allocation | Natasha Moongrave | |
| 2026-03-30 | add debug messages for heap and alloc in entry function | Natasha Moongrave | |
| 2026-03-30 | add alloc to lib.rs | Natasha Moongrave | |
| 2026-03-30 | create the allocator | Natasha Moongrave | |
| 2026-03-30 | configure alloc | Natasha Moongrave | |
| 2026-03-30 | add allocator as a dependency | Natasha Moongrave | |
| 2026-03-30 | Add high-value integration tests for kernel functionality | Natasha Moongrave | |
| - timer_interrupt: verifies timer IRQ fires and PIC EOI works - page_fault: verifies page fault handler triggers on unmapped access - page_table: tests CR3 reading and address translation - frame_allocator: tests physical frame allocation from memory map | |||
| 2026-03-30 | Merge Documenting into master | Natasha Moongrave | |
| 2026-03-30 | Added a proper README.mdDocumenting | Natasha Moongrave | |
| 2026-03-30 | added CLAUDE.md | Natasha Moongrave | |
| 2026-03-30 | added serial output integration tests | Natasha Moongrave | |
| 2026-03-30 | Added a whole lot of documentation | Natasha Moongrave | |
| 2026-03-30 | POST 09 DONE | Natasha Moongrave | |
| 2026-03-30 | fixed main.rs | Natasha Moongrave | |
| 2026-03-30 | added frame allocators to src(memory.rs | Natasha Moongrave | |
| 2026-03-30 | fixed cargo.toml to have a proper physical-memory-offset and moved ↵ | Natasha Moongrave | |
| test-success-exit-code from incorect bootloader package config to bootimage package config | |||
| 2026-03-30 | fixed up lib.rs to use the proper kernel_main and test_kernel_main entry point | Natasha Moongrave | |
| 2026-03-30 | added the printing of level 4 page table addresses on runtime + configured a ↵ | Natasha Moongrave | |
| proper entr ypoint founction instead of a C make #no_mangle _start kernel_main() | |||
| 2026-03-30 | created src/memory.rs for helping keep track of physical and virtual memory | Natasha Moongrave | |
| 2026-03-30 | Added a physical memory offset of ~90.6 TiB to cargo.toml | Natasha Moongrave | |
| 2026-03-30 | Added boot_info argument to e passed into the entry _start() function | Natasha Moongrave | |
| 2026-03-30 | added "map_physical_memory" as a required feature of the bootloader crate in ↵ | Natasha Moongrave | |
| Cargo.toml | |||
| 2026-03-27 | POST 08 DONE | Natasha Moongrave | |
| 2026-03-27 | Added debug line to print the physical address of the level 4 page table | Natasha Moongrave | |
| 2026-03-27 | Updated variable to be prefixed with _ to avoid rust unused variable ↵ | Natasha Moongrave | |
| compiler warning | |||
| 2026-03-27 | Add roadmap.md for plan | Natasha Moongrave | |
| 2026-03-13 | added handling for page fault exceptions in interrupts.rs | Natasha Moongrave | |
| 2026-03-13 | added comments explaining the handlers in src/interrupts.rs | Natasha Moongrave | |
| 2026-03-11 | POST 07 DONE | Natasha Moongrave | |
| 2026-03-11 | fixed controller characters being shown when pressed in src/interrupts.rs | Natasha Moongrave | |
| 2026-03-11 | rewrote keyboard_interrupt_handler() in src/interrupts.rs to use pc_keyboard ↵ | Natasha Moongrave | |
| package to translate scancodes into their proper keys and print them to the screen | |||
| 2026-03-11 | added the keycodes of set 0 to support printing numbers | Natasha Moongrave | |
| 2026-03-11 | added pc-keyboard as a dependency in Cargo.toml to avoid configuring all of ↵ | Natasha Moongrave | |
| the keyboard codes manually | |||
| 2026-03-11 | fixed a mismatch in variable declaration of port in src/interrupts.rs | Natasha Moongrave | |
| 2026-03-11 | added support to handle scancodes and print them to the screen | Natasha Moongrave | |
| 2026-03-11 | added base handling for keyboard (PS/2) hardware interrupts in src/interrupts.rs | Natasha Moongrave | |
| 2026-03-10 | replace the loop{} in pani() and _start() to keep the machine running with ↵ | Natasha Moongrave | |
| the xustom hlt_loop to allow for better power efficiency and not need to amx out the CPU to hog cycles in src/lib.rs | |||
| 2026-03-10 | replace the loop{} in pani() and _start() to keep the machine running with ↵ | Natasha Moongrave | |
| the xustom hlt_loop to allow for better power efficiency and not need to amx out the CPU to hog cycles in src/main.rs | |||
| 2026-03-10 | added a halt instruction loop to not sleep via constantly spinning the cpu ↵ | Natasha Moongrave | |
| on 100% but instead allow it enter a sleep state until the next instruction via the hlt signal in src/lib.rs | |||
