Linked by Thom Holwerda on Mon 15th May 2006 10:15 UTC, submitted by Andy Tanenbaum
OSNews, Generic OSes And no, the microkernel debate is not over yet. In a reply to various comments made over the past few weeks, Andy Tanenbaum has written an article to address these. He first clearly states he respects and likes Torvalds, and that "we may disagree on some technical issues, but that doesn't make us enemies. Please don't confuse disagreements about ideas with personal feuds." The article states: "Over the years there have been endless postings on forums such as Slashdot about how microkernels are slow, how microkernels are hard to program, how they aren't in use commercially, and a lot of other nonsense. Virtually all of these postings have come from people who don't have a clue what a microkernel is or what one can do. I think it would raise the level of discussion if people making such postings would first try a microkernel-based operating system [...]. Has a lot more credibility."
Thread beginning with comment 124866
To view parent comment, click here.
To read all comments associated with this story, please click here.
abraxas
Member since:
2005-07-07

With respect, read the article and my comment again. The point was that before one comments on whether or not a micro-kernel is a good idea, one should try one itself. This is not about "general usage", this is about whether a particular design strategy works for one component of an overall operating system. Whether or not you can run bittorrent and watch the latest episode of the O.C. is entirely irrelevant to the subject at hand.

It is entirely relevant. I don't doubt that microkernels are useful in some scenarios and I have stated that previously. What's bothering me is all the chatter on OSX about microkernels and how superior they are when there isn't even a general usage microkernel in existance. I guess my point is that they are not superior outright. It all depends on the situation. For general use they seem to suck badly as we don't have one good implementation.

However, if you are desperate for examples, QNX does have a desktop system for developers which used have a lot of free software available for it at one point. Minix supports X11 now so you could do development using twm and some basic editors. Further L4/Linux supports the full Linux software stack. That's three examples taken right out of the article.

You're not listening to me. QNX isn't a general usage kernel. QNX for x86 is for development and doesn't do all that much. Trust me, I've tried it. Running a couple of text editors on Minix isn't very useful and L4/Linux isn't beneficial in any way unless you like higher latencies. Those 3 operating systems don't really convince me that microkernels are superior in any way.

The point I was making with my OOP argument is that the absence of a substantially popular implementation - while possibly an indicator of some fault - is not proof of a fault. OOP was long derided due to perceived performance limitations: however once software began to approach a certain level of complexity, people realised what the researchers had been saying all along: that it was a markedly improved way of developing software. And of course, once the initial leap was made, a lot of work went into optimising OOP languages, so now the performance hit, while it still exists, is neglible.[1]

Likewise, most people deride micro-kernels for the same performance related reasons. However if your focus is on reliability and security, then they are clearly the superiour alternative. If the general public moves in that direction, and I think they will, then microkernels, or some design based on microkernels, will succeed.


I didn't say that lack of a useful micorkernel meant that it would never catch on. I am just basically saying if they are so great then shut up, code one that works, and show me the benefits. So far it's all talk about how crappy Linux is compared to microkernels, and how all our kernels should be microkernels, and that Linus is stupid for using a monolithic kernel. It's making me sick.

Reply Parent Bookmark Score: 1

Thom_Holwerda Member since:
2005-06-29

You're not listening to me. QNX isn't a general usage kernel. QNX for x86 is for development and doesn't do all that much.

I beg to differ. Read my article on QNX, and see how it can do so much more than just serve as a dev. platform.

http://www.osnews.com/story.php?news_id=8911

Saying QNX 'does very little' is very, very, very shortsighted, and maybe even offensive to someone (read: me) who used QNX as primary desktop for months.

Reply Parent Bookmark Score: 5

abraxas Member since:
2005-07-07

Saying QNX 'does very little' is very, very, very shortsighted, and maybe even offensive to someone (read: me) who used QNX as primary desktop for months.

You're being a bit over-sensitive if you are offended by an opinion about an operating system.

Reply Parent Bookmark Score: 1

BryanFeeney Member since:
2005-07-06

No-one said Linux was crappy, indeed a couple of years ago Andrew Tannebaum went to great efforts to clear Linus's name after an author of a rather sensationalist book tried to smear him by saying Linux was a simple uninspired copy & paste job of Minux, and that Linus wasn't particularly talented.

The argument Tannenbaum and others are making is that as stability and reliability become more and more important; and as the functions an OS is expected to provide become more and more complex; it becomes easier to fulfill these requirements if you use a microkernel-based design.

You've missed my point twice in a row now: the absence of a good or popular micro-kernel implementation does not necessarily mean that the idea is flawed, it could equally mean that no-one has yet got around to creating a good and / or popular implementation yet. I lean to towards the idea that no-one has created a popular implementation: QNX is a very good system, if they opened it up a software system would grow around it rapidly using the standard Unix software stack (GNU Utils, X11, GTK/Qt, Gnome/KDE). However they have no desire to do so.

In some way your argument mirrors the old creationist's "eye" argument. A creationist would argue that the eye is so complex that its very existence proves that an intelligent designer exists. However what it really proves is they know very little about eyes: for someone who knows how eyes work - and knows about the variation in how eyes work among different species - it's very easy to see how they could have naturally evolved.

Likewise, you say that because you personally have never seen a desktop based around a micro-kernel, that they are not suited for the desktop. But the fact that you have not seen one does not necessarily mean that they're not suited. In fact a substantial number of the OS kernels written in modern times are microkernels, especially where reliability is a hard constraint. There are lots of successful microkernels out there, you just don't know about them.

You seem to be constantly upping the ante on what a kernel is expected to do. What you're looking for the the user-space software stack (display, desktop-environment, full application suite etc.). This is totally irrelevant to a kernel: the only consideration for a kernel is how good it is at hardware access, file access, network access, memory management and scheduling; in short, the things that enable the desktop stack. QNX used to do quite a lot, I used use it myself (it even had RealPlayer for a while). But the desktop was of no interest to QNX, so they dropped it. The kernel was still able to enable a desktop though, so clearly it is a valid example.

I am just basically saying if they are so great then shut up, code one that works, and show me the benefits. So far it's all talk about how crappy Linux is compared to microkernels

As the article shows, lots of people have coded successful microkernels, and Andrew Tannenbaum and his team are in the process of creating another (and for a four-man team, they're doing great work). You should at least give them the chance to talk up what they're doing: how else are they going to encourage volunteers to come along. Linux is simply brought up as it's the best known example of a monolithic kernel, there's nothing personal about it at all (at least not between Tannenbaum and Torvalds).

It's making me sick.

It shouldn't, most people (certainly not the two personalities at the centre) care personally about this.

Edited 2006-05-15 22:43

Reply Parent Bookmark Score: 3