Linked by Thom Holwerda on Tue 9th May 2006 21:25 UTC, submitted by luzr
OSNews, Generic OSes 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.
Thread beginning with comment 122828
To view parent comment, click here.
To read all comments associated with this story, please click here.
RE[2]: Abstraction
by BryanFeeney on Tue 9th May 2006 22:41 UTC in reply to "RE: Abstraction"
BryanFeeney
Member since:
2005-07-06

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.

Huh? Microkernels are basically extremely small kernels that facilitate message passing and basic hardware abstraction, and delegate everything else to user-space.

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).

Edited 2006-05-09 22:43

Reply Parent Score: 5

RE[3]: Abstraction
by luzr on Tue 9th May 2006 22:52 in reply to "RE[2]: Abstraction"
luzr Member since:
2005-11-20

Huh? Microkernels are basically extremely small kernels that facilitate message passing and basic hardware abstraction, and delegate everything else to user-space.

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.

Edited 2006-05-09 22:58

Reply Parent Score: 3

RE[4]: Abstraction
by BryanFeeney on Tue 9th May 2006 23:06 in reply to "RE[3]: Abstraction"
BryanFeeney Member since:
2005-07-06

Sorry, I thought you were saying the problem was that they were multi-threaded (the dual-core thing threw me off).

Reply Parent Score: 1