Thursday, June 17, 2004

Linus vs. Tanenbaum

A piece of history: the great debate between Finnish hacker Linus Torvalds and OS guru Andrew Tanenbaum, from way back in 1992. Following is what Tanenbaum had to say about Linux:

Most older operating systems are monolithic, that is, the whole operating system is a single a.out file that runs in 'kernel mode.' This binary contains the process management, memory management, file system and the rest. Examples of such systems are UNIX, MS-DOS, VMS, MVS, OS/360, MULTICS, and many more.

The alternative is a microkernel-based system, in which most of the OS runs as separate processes, mostly outside the kernel. They communicate by message passing. The kernel's job is to handle the message passing, interrupt handling, low-level process management, and possibly the I/O. Examples of this design are the RC4000, Amoeba, Chorus, Mach, and the not-yet-released Windows/NT.

While I could go into a long story here about the relative merits of the two designs, suffice it to say that among the people who actually design operating systems, the debate is essentially over. Microkernels have won. The only real argument for monolithic systems was performance, and there is now enough evidence showing that microkernel systems can be just as fast as monolithic systems (e.g., Rick Rashid has published papers comparing Mach 3.0 to monolithic systems) that it is now all over but the shoutin`.

MINIX is a microkernel-based system. The file system and memory management are separate processes, running outside the kernel. The I/O drivers are also separate processes (in the kernel, but only because the brain-dead nature of the Intel CPUs makes that difficult to do otherwise). LINUX is a monolithic style system. This is a giant step back into the 1970s. That is like taking an existing, working C program and rewriting it in BASIC. To me, writing a monolithic system in 1991 is a truly poor idea.
And what about Linus' reply? Here's an excerpt, to give a flavor of it:
In article <> (Andy Tanenbaum) writes:
I was in the U.S. for a couple of weeks, so I haven't commented much on LINUX (not that I would have said much had I been around), but for what it is worth, I have a couple of comments now.

As most of you know, for me MINIX is a hobby, something that I do in the evening when I get bored writing books and there are no major wars, revolutions, or senate hearings being televised live on CNN. My real job is a professor and researcher in the area of operating systems.
You use this as an excuse for the limitations of minix? Sorry, but you loose: I've got more excuses than you have, and linux still beats the pants of minix in almost all areas. Not to mention the fact that most of the good code for PC minix seems to have been written by Bruce Evans.

Re 1: you doing minix as a hobby - look at who makes money off minix, and who gives linux out for free. Then talk about hobbies. Make minix freely available, and one of my biggest gripes with it will disappear. Linux has very much been a hobby (but a serious one: the best type) for me: I get no money for it, and it's not even part of any of my studies in the university. I've done it all on my own time, and on my own machine.

Re 2: 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 can only hope (and assume) that Amoeba doesn't suck like minix does.
The normally mild-mannered Finn is clearly no shrinking violet when pushed sufficiently hard.

Looking back on events, the great to-do Tanenbaum made about microkernels vs. monolithic kernels now seems utterly strange; it's now crystal clear that this was one case of an academic being so infatuated with the latest elegant ideas about design that he allowed himself to be blinded to just how far one could take less avant-garde approaches. In that respect the whole microkernel vs. monolithic kernel argument now looks very much like the RISC vs. CISC debate.


Anonymous Anonymous said...

Good design!
[url=]My homepage[/url] | [url=]Cool site[/url]

July 26, 2006 at 9:01 AM  
Anonymous Anonymous said...

Good design!
My homepage | Please visit

July 26, 2006 at 9:02 AM  
Anonymous Anonymous said...

Great work! |

July 26, 2006 at 9:03 AM  
Anonymous Buy Levitra said...

Great article! Thanks.

August 18, 2007 at 8:18 PM  
Anonymous Phentermine said...

Thanks for interesting article.

August 19, 2007 at 1:50 AM  
Anonymous Anonimous said...

Nice! Nice site! Good resources here. I will bookmark!

September 9, 2007 at 10:55 PM  
Anonymous Maxwells said...

I see first time your site guys. I like you :)

September 10, 2007 at 8:42 AM  
Anonymous Anonimous said...

Excellent website. Good work. Very useful. I will bookmark!

September 10, 2007 at 5:26 PM  
Anonymous Anonymous said...

I would like to more know about it. asthma Read a useful article about tramadol tramadol

February 7, 2012 at 1:34 PM  

Post a Comment

<< Home