The monolithic kernel vs microkernel debate has always come down to performance vs simplicity & reliability.<p>Simplicity I'll grant, but the reliability argument doesn't really strike me as relevant. Having overseen many thousands of server years worth of uptime, it's almost never the kernel's fault when something breaks. Linux is pretty solid. Most of us are far more limited by the reliability of our applications.<p>There are niches where higher-assurance kernels are worth it, and maybe that's where microkernels can shine.
Many software engineers strive for modularity and component decoupling, sacrificing some things (e.g. performance, to a varying degree) and gaining others. I agree with this line of thinking, and I see no reason not to apply it to OS kernels as well. The MMU is a <i>really</i> good friend to have, and I think most systems in this world should appreciate reliability more than performance, especially when it comes to the kernel. I always get a bit sad as I think of the general state of things, remembering that a decade ago I thought today everything would be properly divided and sandboxed with a minimum of necessary privileges. I guess user experience trumps it in many cases.
I thought this was an interesting twist in the history of Linux and Minix:<p><pre><code> Other important differences:
* The MINIX project now uses `git` as its version-control system</code></pre>
As a student I did an OS design module in 1987-88. The main set text was Tannenbaum's book Operating Systems Design and Implementation. I remember it had the full Minix source as an appendix, and I don't remember it being a particularly thick book.<p>Would I be right in assuming that Minix has put on a bit of weight since then?
I want to like Minix. I had a copy of Design and Implementation and was going to download Minix when I heard of this new Linux thing, filled a bunch of floppies with an early Linux distro and never looked back. One of AST's arguments against monolithic was that it would be too hard to port to other systems. Just checked Minix 3 requirements - x86 only, not even x86-64. No ARM. Hard to see how it has progressed from being an academic thing.
<i>"Your job is being a professor and researcher: That's one hell of a good excuse for some of the brain-damages of Minix."</i><p>Linus Torvalds' post to comp.os.minix newsgroup.