7 comments

  • rollcat 10 hours ago
    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 9 hours ago
      Whoa there. Gotta run Doom and BASIC to compete with DOS. That is the officially recognized DOS-Kármán line.
      • krustowski 8 hours ago
        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 6 hours ago
        DOOM required DOS 5.0. rou2exOS is only the second take. Watch this area ;)
      • jdsully 4 hours ago
        Nobody cares about Lotus 1-2-3 support any longer :)
        • jmspring 3 hours ago
          What about Wordstar?
      • mycall 4 hours ago
        also, can't be a dos with the 'dir' command.
        • krustowski 4 hours ago
          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
          • onre 1 hour ago
            I would most likely end up with something like this:

              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
            
            ...and so on.
          • rzzzt 2 hours ago
            CATALOG, DSPFLR, Get-ChildItem
        • guestbest 2 hours ago
          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.

          https://en.m.wikipedia.org/wiki/86-DOS

          • AndrewDavis 58 minutes ago
            `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).
  • jmmv 22 minutes ago
    I don’t understand: what makes this “DOS-like”? Not even the command names match DOS, except for dir and cls, and the architecture and feature set are completely different.
    • klank 0 minutes ago
      The original blog post has more details: https://krusty.space/projects/rourexos/

      Ultimately, it's an eye of the beholder type thing, but it seems very fair to call it DOS-like to me. The DOS inspiration is pretty blatant all throughout it from its aesthetic, commands (more than just dir and cls is shared), booting from a 1.44 floppy, etc. And if you are coming from a primarily windows computing background, then "DOS-like" is entirely appropriate to me.

      It looks like a fun project.

    • paulannesley 8 minutes ago
      Single-user, single-task, VGA text-mode operating system with a basic filesystem (fat12), I guess.

      Note the “guest” username in the prompt is a const, not multi-user: https://github.com/krustowski/rou2exOS/blob/6f85955dd339f09d...

  • 90s_dev 2 minutes ago
    Is this using a custom VGA driver from scratch in Rust??
  • OhNotAPaper 3 hours ago
    Out of curiosity, why x86? Is it the preponderance of resources? The weird instruction format? The complexity of the boot sequence? Are you specifically trying to mimic DOS?

    > A support for the ARM architecture (aarch) is coming soon too.

    Wow! How do you support a DOS-like OS across multiple architectures when DOS itself is tightly tied to interactions among the program, the system code, and the architecture?

  • mct 1 hour ago
    I love that the networking stack uses SLIP and slattach(1)!

    I was playing with a toy TCP/IP stack, and decided using SLIP over a pty on Linux was a great way to interface with the kernel. Unfortunately it looks like macOS previously shipped with slattach(1) a very long time ago, but no longer does.

    I'm curios if other people have used SLIP on macOS to get a dead-simple, cross-platform API to the networking stack?

    The alternative would be to use tun/tap on Linux and utun on macOS, but SLIP would be so much nicer.

  • mixmastamyk 4 hours ago
    I would have preferred something like this to the current UEFI environment and shell, a FLOSS 64-bit DOS-like. A cool retro boot manager and diagnostic env perhaps.

    Could this run from an efi system partition? Seems to support fat12, what about gpt?

    Does it poke video hardware like DOS, or have a terminal like output?

    • krustowski 3 hours ago
      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.
      • mixmastamyk 3 hours ago
        So MBR partitions? Or no partitions, like from a floppy? Or perhaps it doesn’t know because grub handles that part.
  • DrNosferatu 9 hours ago
    DOS-like but not DOS-compatible, correct?
    • krustowski 9 hours ago
      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 8 hours ago
        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 5 hours ago
          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.

          • leeter 4 hours ago
            I did see that and for people that need that specific functionality it seemed like a good solution.

            My goal was more "What if DOS hadn't ended and but kept up support for modern hardware" along with emulation of common things in DOS gaming. So for example you would be able to set up a PIV that mapped certain resources directly or emulated them depending on the need.

            Could I use DOSBox for this... yes, but this is a "why not" sort of thing. I figured it would be a good excuse to learn OS dev. But life has kept me busy for now.

      • snvzz 23 minutes ago
        The 16bit one also looks fun[0] and would run on old PCs the new one does not. Have you considered open sourcing that one?

        0. https://krusty.space/projects/rourexos/

    • DrNosferatu 6 hours ago
      ...meaning MS-DOS compatible :)

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

      • JdeBP 6 hours ago
        And prevents Lotus 1-2-3 from running? (-:
        • vardump 5 hours ago
          That's the litmus test. No version of DOS is complete until Lotus 1-2-3 no longer runs.