Dr Andrew S. Tanenbaum is a Professor of Computer Science at Vrije Universiteit in Holland. He has worked extensively in writing and teaching about operating systems. He wrote compilers for the original UNIX operating system, and then authored the MINIX operating system in 1987, which subsequently became the inspiration for Linus Torvalds to develop his own MINIX clone, called Linux, in the early 1990s. Dr Tanenbaum is a Fellow of the ACM and a Fellow of the IEEE. This January his makes his first visit to Linux Australia's linux.conf.au where he will be speaking about his latest metric. Before that he talks to Computerworld about microkernels, MINIX 3, why he would still fail Linux Torvalds if he was a student of his, and more.
What brings you to Australia? And what will you be discussing at linux.conf.au?
I was invited to a keynote speaker at linux.conf.au. My talk will be about designing reliable operating systems. I'd like to introduce a new metric: LFs -- Lifetime Failures, the number of times the software has crashed in the user's lifetime. My TV has LF = 0. My stereo system has LF = 0. My car has LF = 0. My computer has LF > 100. I want a computer system with LF = 0.
I wouldn't mind taking you back a few years.... "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." You said this in 'the' debate with Linus Torvalds in 1991. Do you stand by that comment today?
In terms of the merits of the designs, yes. In mission critical industrial and military systems where failures are intolerable, microkernels (e.g. QNX) are widely used. Cisco's high-end routers use microkernels. In terms of deployment on desktops, Windows won. In terms of number of users, Chinese is the best language. But a case can be made that having a microlanguage based on say 20-30 letters and some rules for combining them into words is still a better idea.
At that time you felt passionately about monolithic operating systems. Why? Do you still believe in this, or has that passion waned over the years?
Because then as now, I care about reliability above all else. I think most ordinary (non-tech) users want one thing above everything else: the system should work all the time. No failures.
One crash a year is one too many. If you don't believe me, ask your grandma if she thinks having the system work all the time is more important or less important than having a good affinity algorithm for large clusters based on quad-core chips.
Back in 1991 you argued that writing a new operating system (Linux) that was closely tied to any particular piece of hardware, in this case the Intel platform was "basically" wrong. And if Linus was a student of yours that you would give him an F. Looking back now would you still fail him?
'Fraid so. But I'd also fail Bill Gates. Linus had a clean design in front of him. He could have improved it in many ways without retrogressing to a much earlier design. Science progresses when people take what they have in front of them and make it even better.
You said that the design goal for MINIX was to make it run on cheap hardware so students could afford it. Why was this so important for you?
Talk to the OLPC guys. [Editor: We have. See our interview with Chris Blizzard.]