Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Ok, I can agree with that. So how do you feel about studying some of the more exotic variations on the theme (say, Plan 9) ?


If you're serious about getting into OS development and doing something different, you have to study everything available. Plan 9 (and the closely related Inferno), L4 (my personal favorite microkernel), NT, BeOS, Singularity, etc. If you're going to build something unique, you have to sample everything.


This is terrifyingly bad advice, all the more so because no one here seems to understand why or even thinks there is anything to understand.

Learning has a direct cost in creativity. Once you have mired your brain in cached thoughts (http://lesswrong.com/lw/k5/cached_thoughts/) of Unix brokenness, it is very difficult to dislodge them. They won't feel like cached thoughts, or like anything special for that matter - just "the way you write operating systems."

Not one of the systems you mentioned deviates in any fundamental way from the mistakes of the original Unix. Not one. One of the reasons for this is that each was designed by people who have been steeped in Unix internals.


Yes, learning has an impact (negative and positive) on creativity, but not learning has an impact on your ability to design and implement in general.

In addition, what Unix mistakes do you see in Singularity, for instance? It's drastically different from Unix-like kernels in effectively every way.

What OSes would you recommend that budding OS developers study, if not these? Amoeba is one of the few I can think of off the top of my head that might fit what you're looking for.


> What OSes would you recommend that budding OS developers study

Try this one:

http://www.memetech.com/

It is just a 512-byte bootblock demo, and yet it does something which no braindead Unix clone can: orthogonal persistence.


Building a demo and building a full kernel are two very, very different things. In addition, it really says nothing about the design, but the implementation (again, we come back to implementation). There's no reason you couldn't implement orthogonal persistence in a Unix-like system, even if it's not optimal.

Honestly, I'm sort of baffled we're still arguing about this. I can't stand Unix-like kernels, I just believe that this particular tutorial is excellent at teaching the basic concepts required to put together any OS. If you find a tutorial of this sort of quality for any other design, submit it and I'll be certain to upvote it.

The world needs more OS designers, and tutorials of this sort lower the barrier to entry.

Edit: Also, if you're on Freenode by any chance, shoot me a PM (my nick is my username here). I always enjoy talking with someone who's as passionate about OS technology as I am.


thank you for that link, very interesting stuff!

Any insight on how this compares to other technologies out there ? Forth ?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: