[Project] Daxo OS: x86_64 Kernel written in Rust (UEFI, Ring 3, Async)

This forums is for OS project announcements including project openings, new releases, update notices, test requests, and job openings (both paying and volunteer).
Post Reply
DaxoDeveloper
Posts: 3
Joined: Thu Aug 20, 2026 5:19 am

[Project] Daxo OS: x86_64 Kernel written in Rust (UEFI, Ring 3, Async)

Post by DaxoDeveloper »

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.
screenshot3.png
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!
nyllerrorthedev
Posts: 8
Joined: Tue Aug 18, 2026 7:30 am

Re: [Project] Daxo OS: x86_64 Kernel written in Rust (UEFI, Ring 3, Async)

Post by nyllerrorthedev »

Looks great! Your OS looks amazing :D Have you gotten a shell so far? Im stuck with a shell that goes like

Code: Select all

M key pressed: execute something 
DaxoDeveloper
Posts: 3
Joined: Thu Aug 20, 2026 5:19 am

Re: [Project] Daxo OS: x86_64 Kernel written in Rust (UEFI, Ring 3, Async)

Post by DaxoDeveloper »

nyllerrorthedev wrote: Thu Aug 20, 2026 2:38 pm Looks great! Your OS looks amazing :D Have you gotten a shell so far? Im stuck with a shell that goes like

Code: Select all

M key pressed: execute something 
Thanks! Appreciate it :D

As for a shell, I actually tried to hack one together (there's even an experimental file for it in the repo), but it didn't quite work out the way I wanted yet :) Right now, I'm mostly running async tasks and handling raw PS/2 keyboard events. A proper command parser with line buffering is definitely on the roadmap once I get system calls and IPC sorted out.

How are you handling backspaces and line editing in your shell right now? That part seems like it could get tricky on bare metal!
nyllerrorthedev
Posts: 8
Joined: Tue Aug 18, 2026 7:30 am

Re: [Project] Daxo OS: x86_64 Kernel written in Rust (UEFI, Ring 3, Async)

Post by nyllerrorthedev »

I've gotten a similar PS2 keyboard driver system as well. I think it reads the key you pressed using inb, and reads the raw scan code, if a specific raw scan code is detected; like the scancode for the E key, it will execute a command. It's very bare bones. :)

As for backspace And stuff like that, I haven't gotten some of that to work. Thanks for the tips, though! :D
DaxoDeveloper
Posts: 3
Joined: Thu Aug 20, 2026 5:19 am

Re: [Project] Daxo OS: x86_64 Kernel written in Rust (UEFI, Ring 3, Async)

Post by DaxoDeveloper »

nyllerrorthedev wrote: Fri Aug 21, 2026 4:06 am I've gotten a similar PS2 keyboard driver system as well. I think it reads the key you pressed using inb, and reads the raw scan code, if a specific raw scan code is detected; like the scancode for the E key, it will execute a command. It's very bare bones. :)

As for backspace And stuff like that, I haven't gotten some of that to work. Thanks for the tips, though! :D
That sounds like a solid foundation! 8) 8)

Honestly, getting raw scan codes working is a huge milestone. Dealing with key-up/key-down states (make/break codes) is basically a rite of passage for us OS developers.
Once you decide to move past polling with inb, look into interrupt-driven input, it’s a bit of a headache at first, but it definitely makes the system feel more "real". Keep at it, backspace and line editing will fall into place eventually! Good luck! :D
nyllerrorthedev
Posts: 8
Joined: Tue Aug 18, 2026 7:30 am

Re: [Project] Daxo OS: x86_64 Kernel written in Rust (UEFI, Ring 3, Async)

Post by nyllerrorthedev »

Thank you! Your very kind :D

Hope you have good luck on Daxo OS! 8)
Post Reply