HN user

krustowski

115 karma
Posts2
Comments14
View on HN

You are right, it goes way ahead the first iteration. I call it DOS-like because of its resemblance to the Text mode-only operating systems (and to MS-DOS especially). On the other hand, it shares very little as the architecture, command set, or hardware utilization approach are concerned when compared to MS-DOS.

Well, the point is to experiment with Rust no_std+no_main environment while trying to educate myself on how the things work under the hood. The project itself is part "just" a rewritten system (from C to Rust), and part an enhancement of such system furthermore. It lacks the external program execution though yet.

NGL, the codebase of the first iteration is pretty much a mess. It had been written in my mid-teenage years, so the C code is not very consistent across the project. There is a filesystem prototype written in Go as well... Also, it is quite complex to even compile RoureXOS: it needs Borland TCC and TASM (ca 1989 btw) to properly build a 16bit executable(s). It is feasible to compile it using DOSBox though. Maybe some day I could open source that one repository too.

The x86 arch is used because this system iteration derives from the first one, which relies on BIOS interrupts and inline assembly in Turbo C. I am not trying to mimic (MS-)DOS exclusively, but both systems are highly inspired by it.

IMO multiple archs could be supported as Rust compiler allows the target arch specification, so one would build a specific target before the build itself.

Booting from an EFI system partition has not been tested yet. FAT12 is the only filesystem (ok, there is a memdisk implementation, but it won't work now) supported, so GPT is not supported at the moment too (yet). Kinda aiming for FAT32 implementation to be the very next implemented (flash disks are usually FAT32 iirc). Not sure about the last question: the OS utilizes/directly writes to the VGA buffer in memory, the provided resolution is 80x25 by GRUB.