Love me some xv6! I was in the Operating Systems class at Georgia Tech last semester which used xv6 and MIT’s curriculum. Hacking on xv6 was what really got me into systems programming! My final project was implementing libc for xv6, and that project alone taught me more about computing than many other classes have. It’s a lot of fun to poke around with and I when I get more free time I’m definitely going to go back and tinker with it some more!
Curious how this compares to Minix — I’ve got Tanenbaum’s book on operating systems that describes the implementation of Minix.
Minix is a microkernel, multiserver approach to implementing POSIX interfaces. It isn’t UNIX. It is more advanced. It has a focus on high reliability and fault tolerance.
But it isn’t the state of the art either. It probably falls into the 1st generation microkernel category, although relatively advanced.
Genode/seL4 and Fuchsia are third generation. (L4’s principle of minimality is 2nd gen, and capability-based is 3rd gen)
Thanks. Does that still apply to the (older) Minix covered in the book?
1st edition covers Minix1.
2nd edition covers Minix2, which adds POSIX compatibility.
3rd edition covers Minix3, which moves system servers to userspace and has a new high reliability focus.
On a side note, Minix3 is sadly currently in very poor shape, in terms of manpower. The bug that was blocking the next release got fixed over a year ago, but the release still hasn’t materialized. This is a shame, as I believe the project has considerable value to it.
Just to be slightly pedantic, capability based OS’s were around in the 60’s and 70’s.
This kind of reply would be a lot better with a citation…
It was one of the areas I studied back in school when I was studying operating systems. A really good book is now available online by Levy. He is at the University of Washington. It has all the information you need.
Sure. But keep in mind they were not microkernel-based nor post-L4 (principle of minimality).
I hear you, but operating systems other than microkernel based systems have moved towards capability architectures. To say that all 3rd generation micro kernels have to have capability architectures just doesn’t seem like a good fit.
This generations classification wasn’t coined by me.
I believe I learned about it on Gernot Heiser’s blog.
Thanks, I will check that out.
Probably. He was pretty much the authority on it doing most of the public debates.
I would also recommend looking at Plan9.
It is not as lean, but it is still very lean. I have been rereading some of the papers lately and I have more respect now for their minimalism than I did in the 90s.