You are here: Home / OSADL / News / 
2019-06-18 - 17:25
2007-02-18 22:00 Age: 12 Years

New light on an old story: microkernel vs. monolithic kernel

By: Carsten Emde

Andrew Tanenbaum at the LCA 2007

Linux (red) vs. Minix (blue) performance

In a news thread on comp.os.minix that is known as the famous Tanenbaum-Torvalds-Debate, Dr. Andrew Tanenbaum titled his contribution ”Linux is obsolete” and wrote to Linus Torvalds, among other things: I still maintain the point that designing a monolithic kernel in 1991 is a fundamental error.  Be thankful you are not my student. You would not get a high grade for such a design :-) This was in January 1992 - an old story on professors, ivory towers and young wilds.

A lecture by Andrew Tanenbaum at the linux.conf.au (held in Sydney, Australia from January 15 to 20, 2007) sheds new light on the old story. A first article on this lecture appeared in the Linux Weekly News of February 5, 2007 titled "Andrew Tanenbaum on creating reliable systems". According to this article, one of the main points Tanenbaum made was that Minix may suffer from a 5 to 10% performance penalty but provide a higher reliability due to its superior microkernel architecture.

So far, so good.

Unfortunately, Dr. Tanenbaum did not provide much information how the "5 to 10% performance penalty" was determined, and it was only normal that sooner or later someone would carry out such a test. And yes, "the linux.conf.au swag bag contained a CD with Minix 3.1.2a on it; one might almost think the organizers had this sort of test in mind", so the author of a subsequent article. Back home, he ran the well-known Unixbench benchmark under Linux and Minix on identical hardware. Surprisingly, the author was unable to reproduce the "5 to 10% performance penalty" that Tanenbaum mentioned. Instead, Linux was about eight times (389.4 vs. 48.1) faster. The author concluded  that "... it would not be unreasonable to argue that Linux, by supporting much greater functionality on a far wider range of hardware, has every right to be slower - but it's not."

The ending paragraph merits to be cited in full: " Dr. Tanenbaum made the claim that only a computer geek would accept better performance if that trade brought with it lower reliability. By that reasoning, it doesn't matter that Minix is much slower than Linux on the same hardware; Minix is aiming for a different goal. But people do care about performance; the fact that Dr. Tanenbaum felt the need to put up benchmark results suggests that he cares too. Trading some performance for reliability could well be a good deal. When one compares Minix (in its current state) to Linux, however, the performance difference is large, and the increased reliability is unproven."

What do we learn? This story tells us also about the power of distributed development in an Open Source Software project, if it becomes successful for whatever reason. Linux probably still would have a much lower performance, if not a large number of high-ranked software developers had worked hard on it over more than fifteen years. Linux is not simply there - it is the result of an unparalleled world-wide development effort that was unimaginable before the invention of Open Source Software and the advent of the Internet.