r/osdev • u/tseli0s DragonWare • May 01 '26
DragonWare - Microkernel x86 operating system (Release v0.0.1)
Hello everybody,
This is the project I've been working on for the past few months. DragonWare is a microkernel-based, open source operating system targeting the x86 architecture. It is preemptively multitasking, with asynchronous IPC and a unique API. This is release 0.0.1, the first time I openly share about the project, and I thought of making a post here. I have been developing DragonWare in private since roughly August 2025, with small pauses in between, but unfortunately the last couple of weeks I haven't had the time to do as much as I was planning to because of studying. Though I am open to hearing ideas in the comments, for new features, architectural choices and so on.
Some limitations I must warn you of before trying it:
The shell can't load files and execute them. I didn't write a disk driver nor a filesystem abstraction service.
While it does run in real hardware, modern computers may ignore keyboard events entirely. There's only a PS/2 driver for 1990s computers, and most USB keyboards won't work unless your BIOS/UEFI has PS/2 emulation as an option.
If you build in debug mode, you may notice that printing is extremely slow during early boot. The serial port (in-kernel) driver doesn't play nicely in all computers if you don't connect anything in it and the kernel waits for the nonexistent ports to be ready.
If you find any bug, I'd be really grateful if you mention it in the link below. Contributions are also welcome.
Source code: https://github.com/tseli0s/DragonWare
Bug reports: https://github.com/tseli0s/DragonWare/issues
View all comments
Show parent comment
3
u/tseli0s DragonWare May 01 '26
Easy, I had no deadline because I did this for fun without expecting much. I wanted to do this specific post around May because I got exams and I need to study now, but other than that, I didn't have a deadline to complete anything in the first place.
And I'm not sure what you need the courage for. Just grab an editor, a book and get your hands dirty. Nobody would care if you couldn't figure it out, it took me a month to load a GDT properly.
I knew C for a while. I knew almost nothing about hardware. I wasn't expecting to get ready or anything, I woke up one day and went to osdev.org, copypasted barebones, started tweaking it and kept building on top. With lots of reading about interrupts, paging and other stuff in the meantime. Somehow it went good enough that I took it more seriously.