Torvalds has indeed chimed in on the micro vs. monolithic kernel debate. Going all 1992, he says: "The whole 'microkernels are simpler' argument is just bull, and it is clearly shown to be bull by the fact that whenever you compare the speed of development of a microkernel and a traditional kernel, the traditional kernel wins. The whole argument that microkernels are somehow 'more secure' or 'more stable' is also total crap. The fact that each individual piece is simple and secure does not make
the aggregate either simple or secure. And the argument that you can 'just reload' a failed service and not take the whole system down is equally flawed."My take: While I am not qualified to reply to Linus, there is one thing I want to say: just because it is difficult to program, does not make it the worse design.

Nope. Read it more carefuly. This has nothing to do with abstraction. The problem is that mikrokernel forces you to program almost EVERYTHING as distributed algorithm - that is way harder and way more complex.

Think about the relationship between Linux and X.org (or Linux and SANE), and then imaging more X.orgs for sound, networking, etc. Then extend it a bit more so there's an X.org for the VM another for the scheduler.

Imagine they all communicate using a specific messaging system. That's a microkernel. It has got absolutely nothing to do with multi-threading.

Inded, every kernel, regardless of how it's designed, has to deal with loads of non-trivial concurrency issues (in particular race-conditions).

Well, one thing has to be said: whereas we are speaking about "microkernel", we should rather be speaking about "microkernel based OS" - with all services included.

Sure, microkernel itself can be pretty simple. However, microkernel based OS will most likely be much more complex than equivalent monolitic OS.

Think about the relationship between Linux and X.org (or Linux and SANE), and then imaging more X.orgs for sound, networking, etc. Then extend it a bit more so there's an X.org for the VM another for the scheduler.

Yes, exactly. As I have a lot of experiences with low-level X11 programming and its asynchronous nature, I must say that idea of implementing VM or scheduler as message driven service seems to me pretty horrible.