[Project] Daxo OS: x86_64 Kernel written in Rust (UEFI, Ring 3, Async)
Posted: Thu Aug 20, 2026 9:13 am
Hi everyone,
I'm sharing a project I’ve been building called Daxo OS. It’s a custom x86_64 kernel written entirely in Rust from scratch.
It started as a learning project following Philipp Oppermann’s "Writing an OS in Rust" series, but I’ve since extended it significantly with custom architecture, memory management tweaks, and peripheral drivers.
It currently boots via UEFI on both QEMU and real hardware.
What’s working right now:
* Boot & Architecture: UEFI boot process on QEMU and physical systems.
* Memory: 4-level paging with user-accessible memory isolation and a custom fixed-size block heap allocator.
* Privilege Levels: GDT/TSS setup with a working Ring 0 to Ring 3 transition via iretq.
* Multitasking: A cooperative async task executor with a basic PS/2 keyboard driver and hlt idle state handling.
* Storage & FS: A simple ATA PIO driver (sector reading) paired with a basic FAT-like filesystem layer.
What’s missing / In progress:
* Proper IPC (inter-process communication)–it's not a true microkernel *yet*.
* System calls (currently just stubbed out, not wired to user space).
* ATA DMA bus mastering on physical motherboards.
The hardest part so far:
Getting the Task State Segment (TSS) and Interrupt Stack Table (IST) configured properly to stop triggering triple faults during the switch to Ring 3 took me two weeks of debugging QEMU register dumps.
Right now, my biggest headache is getting ATA DMA to work reliably on real hardware (it behaves fine in QEMU, but falls apart on physical motherboards without full UEFI Disk I/O). If anyone has experience debugging PCI IDE controllers on bare metal, I'd love some advice.
You can check out the source code, along with some project web pages and a development proof archive, here:
* GitHub Repository: https://github.com/daxo-developer/daxo_os
* Web Portal & Demos: https://daxo-developer.github.io/
https://daxo-developer.github.io/daxo-os-website/
https://daxo-developer.github.io/daxo-os-gallery-web/
I'd appreciate any technical feedback, code reviews, or insights from fellow OSDev developers!
I'm sharing a project I’ve been building called Daxo OS. It’s a custom x86_64 kernel written entirely in Rust from scratch.
It started as a learning project following Philipp Oppermann’s "Writing an OS in Rust" series, but I’ve since extended it significantly with custom architecture, memory management tweaks, and peripheral drivers.
It currently boots via UEFI on both QEMU and real hardware.
What’s working right now:
* Boot & Architecture: UEFI boot process on QEMU and physical systems.
* Memory: 4-level paging with user-accessible memory isolation and a custom fixed-size block heap allocator.
* Privilege Levels: GDT/TSS setup with a working Ring 0 to Ring 3 transition via iretq.
* Multitasking: A cooperative async task executor with a basic PS/2 keyboard driver and hlt idle state handling.
* Storage & FS: A simple ATA PIO driver (sector reading) paired with a basic FAT-like filesystem layer.
What’s missing / In progress:
* Proper IPC (inter-process communication)–it's not a true microkernel *yet*.
* System calls (currently just stubbed out, not wired to user space).
* ATA DMA bus mastering on physical motherboards.
The hardest part so far:
Getting the Task State Segment (TSS) and Interrupt Stack Table (IST) configured properly to stop triggering triple faults during the switch to Ring 3 took me two weeks of debugging QEMU register dumps.
Right now, my biggest headache is getting ATA DMA to work reliably on real hardware (it behaves fine in QEMU, but falls apart on physical motherboards without full UEFI Disk I/O). If anyone has experience debugging PCI IDE controllers on bare metal, I'd love some advice.
You can check out the source code, along with some project web pages and a development proof archive, here:
* GitHub Repository: https://github.com/daxo-developer/daxo_os
* Web Portal & Demos: https://daxo-developer.github.io/
https://daxo-developer.github.io/daxo-os-website/
https://daxo-developer.github.io/daxo-os-gallery-web/
I'd appreciate any technical feedback, code reviews, or insights from fellow OSDev developers!