logoalt Hacker News

bombcaryesterday at 7:03 AM4 repliesview on HN

It’s not easy, but it’s more approachable than many realize.

Much of modern operating systems are the hordes and hordes of drivers; the fundamentals aren’t terribly complicated; just lots of detail.


Replies

II2IIyesterday at 12:27 PM

It would also depend upon what you are trying to accomplish. You have simple filesystems and complex filesystems. You have simple video drivers, and you have complex video drivers. Simplicity gets the job done, but complexity may offer better reliability or performance or features.

Then there is the question of what one means by an operating system. While I'm sure that most people would agree that much of the software shipped with Windows, Mac OS, or the typical Linux distribution isn't part of an operating system proper, few would agree upon where the boundary lies.

tcbawotoday at 3:18 AM

Here is a dumb question. In an OS with user-space drivers, can't many existing drivers be wrapped and repurposed? Does this shorten the path to mainstreaming more new OSes?

sitzkriegyesterday at 3:26 PM

as others have pointed out "just" is doin big overtime here. but also x86_64 saps the fun out by forcing you into archaic irrelevant details IMMEDIATELY. but really, it's a good filter

making toy os for a nice small board on a nice architecture like riscv is night and day more enjoyable. not that modern boards that have more device tree overlays than senses are a good starting point either.

a more modern mmix that builds further up, or nand2tetris, xv6 or any other riscv project going all the way to a user mode ui would be really cool

ModernMechyesterday at 3:12 PM

> just lots of detail.

"Just" is understating it.

It's the kind of project that takes 20 years to accomplish on your own, and everything seems doable from moment to moment because you have to work very slowly, and the stepwise changes aren't hard.

Just get the thing to boot. Just boot into extended mode. Just get graphics running. Just get a userspace. Just implement cooperative multitasking. Every step is "just", but when you take a step back the complexity is enormous, and it becomes hard to explain to anyone how it works in its entirety.

Although it seems easy to the author because that's just how his brain works now -- by then end of it, you and the OS are one and the same, where your brain is essentially a map of the codebase and nothing more, because nothing else can fit.