On The Insider: Britney's Bikini-Clad Top 10
BNET Business Network:
BNET
TechRepublic
ZDNet

December 16th, 2008

Why Linux owes (part of) its success to Microsoft

Posted by Paul Murphy @ 12:15 am

Categories: General, Linux, Wintel vs Lintel

Tags: Operating System, Microsoft Corp., Kernel, I/O Driver, Linux, Operating Systems, UNIX, Open Source, Processors, Software

One of the things that characterizes humanity is our ability to adapt quickly to external change - it’s the key reason, for example, that humans aren’t confined to one climatic zone on the planet.

On the other hand, we’re individually often really bad at adapting to external change - and I suspect that everyone who’s worked in IT for more than few months has been personally guilty of refusing to learn to use a new tool for a job simply because you felt comfortable doing it with the older, and far less efficient or effective, tool.

When IBM needed a basic OS that could run effectively on Intel’s 8088 processor the answer Patterson came up with for QDOS was to minimize CP/M’s overhead by stripping the kernel/shell layering - effectively eliminating Kildall’s commitment to portability and multi-processing to produce something tailored specifically to the limitations of one particular piece of hardware.

Similarly, when Linus Torvalds decided to build a “free Unix for the 386″ he stripped away Tanenbaum’s layered micro-kernel and hardwired Intel’s approach to interrupt management directly into what has since become the largest monolithic kernel still in use.

Here’s part of what Tanenbaum had to say about this in 1992:

…I think I know a bit about where operating are going in the next decade or so. Two aspects stand out:

  1. MICROKERNEL VS MONOLITHIC SYSTEM

    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.

  2. PORTABILITY

    Once upon a time there was the 4004 CPU. When it grew up it became an 8008. Then it underwent plastic surgery and became the 8080. It begat the 8086, which begat the 8088, which begat the 80286, which begat the 80386, which begat the 80486, and so on unto the N-th generation. In the meantime, RISC chips happened, and some of them are running at over 100 MIPS. Speeds of 200 MIPS and more are likely in the coming years. These things are not going to suddenly vanish. What is going to happen is that they will gradually take over from the 80×86 line. They will run old MS-DOS programs by interpreting the 80386 in software. (I even wrote my own IBM PC simulator in C, which you can get by FTP from ftp.cs.vu.nl = 192.31.231.42 in dir minix/simulator.) I think it is a gross error to design an OS for any specific architecture, since that is not going to be around all that long.

    MINIX was designed to be reasonably portable, and has been ported from the Intel line to the 680×0 (Atari, Amiga, Macintosh), SPARC, and NS32016. LINUX is tied fairly closely to the 80×86. Not the way to go.

It’s hard to believe that Tanenbaum was wrong when he said that tying Linux so closely to x86 was a mistake - and yet, x86 survives as the volume market leader and Linux has grown both with it and because of it.

Today, however, and despite having been ported to lots of other architectures, the kernel is still as closely tied to x86 as ever: try running Linux on the T52XX, for example, and you’d swear the SPARC system was hopelessly obsolete and somewhat slower than frozen molasses - because changing the Linux kernel to make effective use of a coolthreads processor would essentially require a full rewrite.

So how did this come about? Simple, Microsoft’s near monopoly created the conditions needed for Torvald’s strategy to succeed - because Microsoft’s success depended on convincing customers that frequent adaptation to small changes reduces total risk relative to significant but infrequent change and resulted in, among many other things, a trailing cloud of low cost, Linux compatible, hardware and the resentments needed to motivate use of it.

Torvalds gets a lot of credit both for being among the first to exploit open source ideas and for his effective management of the Linux kernel development process - but I think he should also be credited for being among the first to see that a second best kernel design optimized for a third rate processor would offer the right combination for market success.

Paul MurphyPaul Murphy (a pseudonym) is an IT consultant specializing in Unix and related technologies. See his full profile and disclosure of his industry affiliations.


Email Paul Murphy

Subscribe to Managing L'unix via Email alerts or RSS.

  • Talkback
  • Most Recent of 55 Talkback(s)
Linux and Tanenbaum
Search Linus and Tanenbaum ( very famous flamewar.. do you know Linux ? ) .... Tanenbaum was an advocate of the Micro Kernel system ( which Mach 3 , Minux and Midori use) . However Linus advocated th... (Read the rest)
Posted by: bklooste Posted on: 04/22/09 You are currently: a Guest | | Terms of Use
Ironically  honeymonster | 12/16/08
Briefly  Anton Philidor | 12/16/08
Fascinating  TedKraan | 12/16/08
Where is the proof?  hamobu | 12/16/08
Linux and Tanenbaum  bklooste | 04/22/09
strange  s_souche | 12/16/08
RE: Why Linux owes (part of) its success to Microsoft  w.caelli@... | 12/16/08
oops! my mistake - fixed it - thanks!  murph_zZDNet Moderator | 12/16/08
RE: Why Linux owes (part of) its success to Microsoft  V@... | 12/16/08
Thanks Paul  Alan Smithie | 12/16/08
Crazy.  will hill | 12/16/08
The modern CPU is RISC pretending to be CISC.  CobraA1 | 12/16/08
have to check  s_souche | 12/16/08
You are likely correct.  CobraA1 | 12/17/08
Best Murphy article I have ever seen ...  George Mitchell | 12/16/08
Rubbish !  Alan Smithie | 12/16/08
It was MS software that made the IBM box spectacular ...  George Mitchell | 12/16/08
If you would like to read  Alan Smithie | 12/17/08
Argument is not reality  hamobu | 12/16/08
I'd like to see the index.  CobraA1 | 12/16/08
Index of economic freedom (augmented)  hamobu | 12/16/08
Consider your sources  murph_zZDNet Moderator | 12/16/08
Didn't you write against ad-hominem attacks not too long ago?  hamobu | 12/16/08
That would be a strawman  John L. Ries | 12/16/08
Read the subject of his post  hamobu | 12/17/08
Communism only failed against short term greed  fr0thy2 | 12/16/08
You can't run a nation on an emotion.  CobraA1 | 12/17/08
The index looks to be poor quality.  CobraA1 | 12/17/08
Perhaps you are right, but the point is...  hamobu | 12/17/08
Point is what?  No_Ax_to_Grind | 12/16/08
No you wouldn't get it  fr0thy2 | 12/16/08
Yet Another Quibble...  dave.leigh@... | 12/16/08
You're right on spelling, wrong on history  murph_zZDNet Moderator | 12/16/08
Sorry Murph, I'm more right than you. Here's why:  dave.leigh@... | 12/16/08
Wharton not my source  murph_zZDNet Moderator | 12/16/08
Of course I already read it...  dave.leigh@... | 12/16/08
re: the lawsuit  dave.leigh@... | 12/16/08
Yes. And No.  Anton Philidor | 12/16/08
I love the Mr. Peabody reference.  dave.leigh@... | 12/16/08
RE: Why Linux owes (part of) its success to Microsoft  myshortname | 12/16/08
You're thinking too hard.  dave.leigh@... | 12/16/08
Agreed  murph_zZDNet Moderator | 12/16/08
Oh THAT.  dave.leigh@... | 12/16/08
RE: Why Linux owes (part of) its success to Microsoft  tburzio | 12/16/08
In part  John L. Ries | 12/16/08
Article is a about kernel, not gnu  murph_zZDNet Moderator | 12/17/08
Hilarious Article  softdrat@... | 12/16/08
Optimized for x86  murph_zZDNet Moderator | 12/17/08
Ever heard of ARM Thumb instructions?  V@... | 12/17/08
What success are you talking about???nt  transposeIT | 12/16/08
Deleted  hamobu | 12/17/08
Lucky  doodah42 | 12/17/08
You're right  V@... | 12/18/08
Excuse me, but . . .  Rambo Tribble | 12/17/08
RE: Why Linux owes (part of) its success to Microsoft  Tobby7 | 03/21/09

What do you think?

SponsoredWhite Papers, Webcasts, and Downloads

advertisement

Recent Entries

Premier Vendor Content Whitepapers, webcasts & resources from our Power Center Sponsors

Archives

ZDNet Blogs

White Papers, Webcasts, and Downloads

Enterprise Applications

  • Check out some of the easiest and most powerful ways to boost productivity while saving money on your application infrastructure. See ZDNet's comprehensive Enterprise Application resource center, now!
  • New Online Dashboard
  • Read about top issues IT decision-makers face every day, plus get cost effective solutions to real life IT problems. Oracle Topline