Skip to content(if available)orjump to list(if available)

Show HN: A DOS-like hobby OS written in Rust and x86 assembly

Show HN: A DOS-like hobby OS written in Rust and x86 assembly

11 comments

·June 19, 2025

To try it out, simply build the project yourself from source, or use attached bootable ISO image of the system (in Releases on Github) and run it in QEMU.

https://blog.vxn.dev/rou2exos-rusted-edition

rollcat

Memory-safe language. x86_64, with Arm on the roadmap. Networking stack. Boots from a CD and via multiboot. Your hobby project wipes the floor with DOS.

pvg

Whoa there. Gotta run Doom and BASIC to compete with DOS. That is the officially recognized DOS-Kármán line.

krustowski

What a challenge! Need to implement some interrupts it seems then, to provide an API for filesystem and so... Thank you for such idea

rollcat

DOOM required DOS 5.0. rou2exOS is only the second take. Watch this area ;)

DrNosferatu

DOS-like but not DOS-compatible, correct?

krustowski

You are right. The first iteration however is 16bit and is very close to MS-DOS in terms of compatibility. Moreover, any OS that can handle simple disk I/O ops could be considered a DOS system too, innit?

leeter

Correct, there is a difference between MS-DOS and IBM-PC compatible and a DOS (ex: all the DOSes that existed for Amiga/Apple II/Commodore etc). There are many DOSes (and even MSDOSes, because yay early PC era incompatibilities!), but there is a very dubious list of things needed to be MS-DOS and IBM-PC compatible. You can probably do it if you're willing to setup a hypervisor and emulate some hardware.

NGL one of my long term projects was/is something exactly like this but UEFI and secure boot. The idea being to use the VM extensions to create IBM-PC and DOS compatible environments. For anything using DPMI[1] I'd probably do the same trick as Win95 did and just replace it with my own implementation so it's not too overburdened with layers.

[1] https://en.wikipedia.org/wiki/DOS_Protected_Mode_Interface

JdeBP

A version of (say) FreeDOS that was layered on top of the EFI API instead of PC98 firmware interrupts would be quite interesting. That would be a major architectural change to most of the programs, of course. But one would have provided the EFI Shell with essentially a complete suite of MS-DOS (albeit not PC-DOS or DR-DOS) commands. That could probably be quite easily ported to (say) ARM whereas the original still has x86isms.

On the other hand, did you see https://github.com/FlyGoat/csmwrap when it came up a few weeks ago?

* https://news.ycombinator.com/item?id=44101828

There are already projects to provide replacements for the vanished Compatibility Support Module.

DrNosferatu

...meaning MS-DOS compatible :)

I.e.: runs Alley Cat and Dune 2 - and Doom.

JdeBP

And prevents Lotus 1-2-3 from running? (-:

vardump

That's the litmus test. No version of DOS is complete until Lotus 1-2-3 no longer runs.