Please sign in to access this page
Amateur x86-64 (for now) kernel built from scratch, booted using Limine.
Leon
Check their project out: My Food
Shaun Thomas Shibu
Check their projects out: Soul circle , stOS, GameBoy Emulator, Textus
fluffy
Check their projects out: libxnotch, The Polished OS Development Course, Polished (V1), Radian OS
Kevin
Check their projects out: Beacon, ValAmi, int0x80.ca, MonteCraplo, PZChessBot
Yabir Baldizon
Check their project out: Baba is you: playdate port
sugo14
Check their projects out: Tutoring Club Suite, Terminal Velocity, Terminal-Style Portfolio
Once you ship this you can't edit the description of the project, but you'll be able to add more devlogs and re-ship it as you add new features!
Add a proper README in preparation for ship. Also fixed a bug where booting with low memory would triple fault.
Added a basic terminal application. Currently it doesn't have very many applications but the text handling works quite well, with history and line wrap handling. I had to implement more ANSI sequences in my TTY subsystem in order to achieve this, as well as fixing some bugs in the stdlib.
Implemented a PS/2 keyboard driver, from interfacing with the 8042 controller to translating scancodes to keycodes and ASCII codepoints. Currently the last step of translation from keycodes to ASCII is janky and is not pushed to Github.
Added basic UEFI and ACPI table location and parsing. Added an HHDM to simplify memory management when reading system tables and fixed a minor printf bug. Lots of debugging for the paging changes and reading specifications made this take way longer than I thought it would.
Spent a whole ton of time debugging why printing caused my laptop to triple fault. Turns out it failed when trying to write on the bottom 1/4 of the screen since the paging logic had UB due to not zeroing allocated memory for page directories. It was especially annoying to debug since it worked fine on my VM and I had no way of getting information from the system because the printing was broken.
Also added buffering during parsing of ANSI escape sequences so now colors actually work on the real screen and slightly sped up the clock synchronization process.
Implemented TSC as a clocksource, calibrated using the PIT or using CPUID enumerated values if possible. Added (roughly) standardized logging functionality with pretty printing and timestamps.
Refine virtual memory layout and fix page tables. Also added primitive VMA allocation and deletion with a basic bump heap allocator.
Fix triple fault, fix/standardize standard lib. Add further documentation on address space structure
Fixed page (un)mapping and finished memory reclaiming. It triple faults on my laptop but it works fine on qemu so something's clearly wrong but debugging is a nightmare.
WIP: Attempted to fix page (un)mapping and reclaim bootloader memory. Unfortunately there seem to be many bugs with (un)mapping (probably TLB related)
Added page mapping functions and mapped memory map pointers
Not a GCC bug but an INCBIN bug. Created and debugged new page tables.
Wrote page allocator and half done replacing Limine's HHDM page tables. Perhaps found a GCC bug??