I’m working on a hobby OS called D-DOS (it’s not my first one), and I’d like to hear what you think of the idea behind it rather than the code.
it started with a dream where I had built an OS that let me interact directly with the computer’s hardware, with nothing hiding the machine from me. I decided to try to turn that into something real. The goal is a system where the user can, from a simple shell, read and write memory and I/O ports, browse PCI devices, talk to an HDA audio codec, query a disk with ATA/AHCI commands, read ACPI/SMBIOS tables, and so on. It’s less “an OS to run programs on” and more “a guided tour of the machine you’re sitting at”.
Where it is: very early. A NASM stub with a Multiboot header calls into C, which prints text to the VGA buffer. Everything above is a plan, not something that exists yet.
Why I think it could matter beyond my own curiosity: I wonder if something like this could be useful in computer science courses. Students usually meet hardware through diagrams and abstractions, and OS courses often stop at the kernel interface. A system where you can type a command and actually see a PCI configuration space, flip a bit in a device register, or hear a tone from an HDA codec might make the material more concrete. I’m aware that teaching kernels like xv6, MINIX and Pintos exist and are great at what they do, but they focus on OS concepts (scheduling, virtual memory, file systems) rather than on poking the hardware directly.
What I’d like to know:
- Does the concept sound interesting, or is it solving a problem that doesn’t exist?
- If you’ve taught or taken an OS or architecture course, would a tool like this have helped?
- Is there something that already covers this that I should look at?