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.
Whoa there. Gotta run Doom and BASIC to compete with DOS. That is the officially recognized DOS-Kármán line.
What a challenge! Need to implement some interrupts it seems then, to provide an API for filesystem and so... Thank you for such idea
Doomgeneric has a very thin platform-specific layer: https://github.com/ozkl/doomgeneric?tab=readme-ov-file#porti...
I want some TSRs and print spoolers...
DOOM required DOS 5.0. rou2exOS is only the second take. Watch this area ;)
Borland languages and xBase ecosystem as well
Nobody cares about Lotus 1-2-3 support any longer :)
What about Wordstar?
The text editor JOE has a WordStar mode.
WordPerfect was better anyway :) (SCNR)
also, can't be a dos with the 'dir' command.
Afaik there is a 'DIR' command in MS-DOS. Anyway, what would be a better command to list a directory? I could think of 'ls' maybe
I would most likely end up with something like this:
...and so on.CAT CATalogue - output the contents of current directory RM to Raster Memory - load contents of named file in framebuffer MV Make Virtual - map the file into memory and output the address LS Load System - attempt to reboot using the named file as the kernel CD Create Directory - self-explanatory SH System Halt - immediately stop all processing
I suggest:
This would be a much simpler command interface.RM Relocate me - you could also use the "-rf" flag to relative fuzzy matching, for instance `rm -rf tmp` to find any temp-like folder near your current location. Pretty standard stuff. CD Clear data - `cd -L /temp` would "liquidate" the directory.
To create a file, we should take inspiration from TOPS-10 and call the command `make` [0]. When issuing `make love`, it should ask for confirmation to the user: `not war?`.
Very good design. Implements only the essential tasks an operator would need with concise and well-known mnemonics. I’m sure this will be immediately intuitive to anyone, with no potential for mistakes whatsoever.
CAT was on the Amstrad CPC.
Love it.
As someone old enough to have started on MS-DOS 3.3, dir has been there all time.
CATALOG, DSPFLR, Get-ChildItem
It would seem to logically follow that a Disk Operating System would have a directory list utility for disks like ‘dir’. It was there in the first version called 86 DOS.
`dir` was also in CP/M. Though it didn't have a concept of a file hierarchy, so it listed all files on the disk (but did support supplying a pattern to filter against).
> Rust and x86 assembly
then
> Memory-safe language.
What's the point? Looks like today Rust is like 3D printing was. As if it makes something better. Printing was hyped and advertised by printers sellers and manufacturers. Finally they run out of money.
As for project, it's cool if compatible with old soft. Otherwise suitable mostly for education and masochism. Long way to become practical anyway even if it gets traction.
The idea of Rust is not that it is 100% safe, but rather that it is able to encapsulate unsafety and divide the program in two parts:
- unsafe code plus modules that support it (the "trusted base")
- all the rest
Rust's promise is that there is no way to trigger any undefined behavior from bugs happening in "all the rest" of the code. If that code makes for more than 95% of the total, then that's a huge win compared to a completely unsafe language.
Also, Rust's support for inline assembly is in my opinion better than C's, it's much easier to specify and figure out the constraints on the boundary between Rust/assembly.
You can write memory safe code in any language, but having a machine i.e. the Rust compiler check it for you is less error-prone than if a human does it.
Also if you look at the repo, only 3% of the codebase is in Assembly. IMO if >95% project is in Rust, you can definitely claim it's a Rust project.
Finally, a positive comment about Rust that I can 100% agree with :)
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.