Just for Fun : The Story of an Accidental Revolutionary
Page 11
As a result of my occupation, I think I know a bit about where operating systems are going in the next decade or so. Two aspects stand out:
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. MINIX is a microkernel-based system. The file system and memory management are separate processes, running outside the kernel. The I/O drives are also separate processes. LINUX is a monolithic style system. This is a giant step back into the 1970’s.
2. PORTABILITY
MINIX was designed to be reasonably portable, and has been ported from the Intel line to the 680x0 (Atari, Amiga, Macintosh), SPARC, and NS32016. LINUX is tied fairly closely to the 80x86. Not the way to go.
Don’t get me wrong, I am not unhappy with LINUX. It will get all the people who want to turn MINIX in BSD UNIX off my back. But in all honesty, I would suggest that people who want a **MODERN** free OS look around for a microkernel-based, portable OS, like maybe GNU or something like that.
Andy Tanenbaum (ast@cs.vu.nl)
I knew I needed to defend my honor, so I wrote back:
From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds)
Subject: Re: LINUX is obsolete
Date: 29 Jan 92 23:14:26 GMT
Organization: University of Helsinki
Well, with a subject like this, I’m afraid I’ll have to reply. Apologies to minix-users who have heard enough about linux anyway. I’d like to be able to just ignore the bait but… Time for some serious flamefesting!
In article <12595@star.cs.vu.nl> ast@cs.vu.nl (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 professor and researcher in the area of
>operating systems.
You use this as an excuse for the limitations of minix? Sorry, but you lose: I’ve got more excuses than you have, and linux still beats the pants off minix in almost all areas. Not to mention the fact that most of the good code for 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.
True, linux is monolithic, and I agree that microkernels are nicer. With a less argumentative subject, I’d probably have agreed with most of what you said. From a theoretical (and aesthetical) standpoint, linux loses. If the GNU kernel had been ready last spring, I’d not have bothered to even start my project: the fact is that it wasn’t and still isn’t.
Linux wins heavily on points of being available now.
>MINIX is a microkernel-based system. [deleted, but not so that you miss the point] LINUX is a monolithic style system.
If this was the only criterion for the “goodness” of a kernel, you’d be right. What you don’t mention is that minix doesn’t do the microkernel thing very well, and has problems with real multitasking (in the kernel). If I had made an OS that had problems with a multithreading file system, I wouldn’t be so fast to condemn others: in fact, I’d do my damnedest to make others forget about the fiasco.
[yes, i know there are multithreading hacks for minix, but they are hacks, and bruce evans tells me there are lots of race conditions.]
>2. PORTABILITY
“Portability is for people who cannot write new programs”
-me, right now (with tongue in cheek)
The fact is that linux is more portable than minix. What? I hear you say. It’s true-but not in the sense that ast means: I made linux as conformant to standards as I knew how (without having any POSIX standard in front of me). Porting things to linux is generally/much/easier than porting them to minix.
I agree that portability is a good thing: but only where it actually has some meaning. There is no idea in trying to make an operating system overly portable: adhering to a portable API is good enough. The very/idea/of an operating system is to use the hardware features, and hide them behind a layer of high-level calls. That is exactly what linux does: it just uses a bigger subset of the 386 features than other kernels seem to do. Of course this makes the kernel proper unportable, but it also makes for a/much/simpler design. An acceptable tradeoff, and one that made linux possible in the first place.
I also agree that linux takes the non-portability to an extreme: I got my 386 last January, and linux was partly a project to teach me about it. Many things should have been done more portably if it would have been a real project. I’m not making overly many excuses about it though: it was a design decision, and last april when I started the thing, I didn’t think anybody would actually want to use it. I’m happy to report I was wrong, and as my source is freely available, anybody is free to try to port it, even though it won’t be easy.
Linus
PS> I apologise for sometimes sounding too harsh: minix is nice enough if you have nothing else. Amoeba might be nice if you have 5-10 spare 386’s lying around, but I certainly don’t. I don’t usually get into flames, but I’m touchy when it comes to linux:)
There were a few more installments in this, one of my few flame wars. But you get the point: There were opposing voices, even in the early days. (Or maybe the point is: Be careful when you put yourself out there in an electronic forum. Your typos and errors of grammar will haunt you forever.)
Linus and I leave our families and friends back at the campsite and take an afternoon hike along a clear stream. We’re camping at Grover Hot Springs, way up in the Eastern Sierra over the July 4th weekend, at a site that seems to have been lifted from the pages of National Geographic—“This is a Kodak moment,” Linus proclaims, pausing to look out over a wildflower-dusted meadow and the dramatic cliffs that provide the backdrop. We settle at a site along the stream, and I ask him to describe his lift during those days when Linux’s appeal was spreading far beyond its original family of newsgroup enthusiasts, few of whom Linus had even personally met.
“It must have felt great,” I say. “For years you were toiling away on your own in your bedroom, with little contact with the world outside your CPU. Suddenly you have people from every corner of the planet acknowledging what great work you’re doing. You’re the center of this growing community that is looking to you to—”
“I don’t have a memory of it being a big deal for me,” he replies. “I really don’t think it was. It was kind of the thing I was thinking about all the time, but mainly because there was alway
s a problem to be solved. In that sense, I was thinking about it a lot, but it was not, emotionally, a big thing. Intellectually, it was something big.
“I liked the fact that there were a lot of people giving me motivation to do this project. I thought I had seen the end of it, a point where it was almost done. But that point never came because people kept giving me more reasons to continue and more brainteasers to worry about. And that kept it interesting. Otherwise, I probably would have just moved on to another project, because that’s how I worked, and that was fun. But I suspect I worried more about my nose or something like that,” he says.
A few weeks later we are at the Stanford Shopping Center, where Linus is perplexed over the selection of running shoes from which he can choose. “How many miles do you typically run each week?” asks the salesman. Linus smiles; he hasn’t run as much as a mile during the past ten years. Exercise hasn’t been a major priority. But in his weaker moments, Linus admits that he would like to shed some of his excess poundage.
“Tove must have convinced you to help me get rid of my pouch,” he jokes, patting his gut.
“Tell her that her check never arrived this week,” I reply.
Soon we are circling the Stanford campus in search of a legal parking space. After maybe half an hour, we do a few stretches, then we start to run over narrow dirt paths past the campus’s dried up lake, into the woods, and in the direction of our goal: the huge hillside satellite dish. We never make it. I set an unfairly swift pace and am surprised that Linus can stick right behind me for about a mile. Then he loses his wind, A few minutes later we spread out on the grass along the lake.
“What was your family’s reaction to everything that was happening to Linux?” I ask. “They must have been pretty excited about it.”
“I don’t think anybody really noticed,” he replies. “I won’t say that nobody really cared. But I had been doing programming most of my lift, and this was not anything different as far as they were concerned.” “Well, you must have said something to your folks. Like if your dad was driving you someplace, didn’t you say, ‘Hey, you’re not going to believe this but you know the stuff I’ve been doing with my computer? Well, I’ve got hundreds of people who are using it…”
“No,” he answers. “I just didn’t feel the need to share this with my family and friends, I never had the feeling that I wanted to push it on people. I remember Lars Wirzenius, around the time I was writing Linux, decided to buy XENIX, SCO’s version of Unix, and I think I remember he tried to make excuses, like, ‘Don’t take this the wrong way,’ I personally don’t think I ever cared. He eventually switched, but it wasn’t a big deal for me. To me the fact that people used it was nice, and it was wonderful that I got comments back, but at the same time it was not that important. I didn’t want to spread the gospel. I was proud of having people use my code, but I don’t remember ever having the feeling that I wanted to share that with anybody. And I didn’t think it was the most important thing on Earth. I didn’t think that I was doing something really important because a hundred people were using my software. It was more like it was fun. And that’s how I feel about it today.”
“So you didn’t even want to tell your parents and family and friends about it. And you really weren’t excited by everything that was happening?” I ask, not masking my disbelief.
He waits a few seconds before responding. “I don’t remember if I even had feelings back then.”
Linus buys a new car, a BMW Z3, a two-seater convertible that he says defines the word “fun.” It is metallic blue, the perfect boy’s model-car color. He chose that shade because the vehicle doesn’t come in bright yellow, his color of choice. BMW yellow, he explains, “looks like pee.” For years he parked his Pontiac as close as possible to the entrance to Transmeta’s headquarters in a Santa Clara office park. But the BMW is parked outside his office window, allegedly so it can be in the shade. Now when Linus works on his computer he can admire his new car at the same time.
A little more than a year earlier, we had taken our first trip over the mountain to Santa Cruz in a convertible, a white Mustang I had rented for the occasion. And during that excursion, Linus had made a point of stopping to check out the sports cars parked outside the sauna place and brewery we visited. Now we are heading over the mountain in his own sports car. He smiles as he takes the curves on Route 17.
“You deserve this,” I say.
I pull a handful of CDs from the glove compartment.
“Pink Floyd?” I ask. “The Who? Janis Joplin?”
“It’s the music I grew up listening to. I never bought music when I was a kid, but we had this around the apartment. I guess my mother was playing it, although I remember she was big on Elvis Costello.”
It is Friday afternoon, a sparkling Friday afternoon of California perfection with delights for each of the senses: cobalt skies for the eyes, intense sunshine for the skin, the fragrance of mountain eucalyptus, the sweet taste of pure air, the lull of Pink Floyd on upgraded speakers. Sure, to passing motorists we must have appeared to be some sort of post-adolescent cliché, spraying on sunblock and doing the classic rock vocals, but not many cars passed Linus’s new BMW Z3.
We park among shoddier vehicles along the side of Highway 1 a bit north of Santa Cruz, and make our way down to a mostly empty beach. We spread out on towels in the warm sun and wait a few minutes before I pull my tape recorder from my backpack. Again, I ask him to describe Linus in those early days.
He draws a box in the sand to represent his bedroom, then indicates the location of his bed and computer. “I would roll out of bed and immediately check my email,” he says, moving his finger accordingly, “Some days I don’t think I ever left the apartment. I wasn’t checking my email just to see who was sending me email. It was more a matter of seeing if a particular problem had been fixed. It was more like, What new exciting issue do we have today? Or, if we had a problem, who had a solution?”
Linus tells me that his social lift at the time was “pathetic.” Then he figures that sounds too pathetic, so he amends it: “Let’s say it was one notch above pathetic.”
“I didn’t become a total complete recluse,” he says, “but even though Linux was happening, I was still as antisocial as I had ever been. You noticed that I never contact people by phone. It’s always been true. I never call. Most people who are my friends are the kind of people who contact people, and I’m not. You can imagine what that’s like for dating, if you never call the woman. So during that time I had a few friends who just came knocking on my window, wanting to come in for a cup of tea. I don’t think anybody could really tell the difference at that time—Oh, he’s doing something really big and important and someday he’ll change the world. I don’t think anybody really thought anything of the sort.” Linus’s single regular social event in those days was the weekly Spektrum meeting, where he mingled with other science majors. These social encounters created far more anxiety than anything connected with technology.
“What was I worrying about? Just social life in general. Maybe worry is the wrong word, there was more emotional impact. Just thinking about girls, Linux wasn’t that important to me at the time. To some degree, it still isn’t. To some degree I can still ignore it.
“In those early years at the university, the social thing was very important. It wasn’t as if I worried about my hunchback and people laughing about it. It was more like wanting to have friends and things. One of the reasons I liked Spektrum so much was that it was a framework for being social without having to be social. That was the evening I was social and every other evening I sat in front of the computer. It was much more of an emotional thing than Linux ever was. Linux was never something I got really upset about. I never lost any sleep over Linux.
“The things that I got really upset about, and what still makes me upset, is not the technology per se but the social interactions around it. One of the reasons I got so upset about Andrew Tanenbaum’s posting was not so much the technical is
sues he was raising. If it had been anybody else, I would have just blown it off. The problem was that he was posting it to the mailing list and making me… I was concerned about my social standing with those people and he was attacking it.
“One of the things that made Linux good and motivational was the feedback I was getting. It meant that Linux mattered and was a sign of my being in a social group. And I was the leader of the social group. There’s no question that was important, more important than even telling my Mom and Dad what I was doing. I was more concerned about the people who were using Linux. I had created a social circle and had the respect of those people. That’s not how I thought of it at the time, and it’s still not how I think of it. But it must be the most important thing. That’s why I reacted so strongly to Andrew Tanenbaum.
The sun begins its descent into the Pacific and it’s time to leave the beach. Linus insists that I drive his car home—to see how well it responds—and that we take the long and winding way, Route 9, back to Silicon Valley.
Linus says the flamefest with the Minix creator eventually moved into private email because it had become too nasty to be public. It was quiet for a few months. Then, Tanenbaum emailed Linus to direct him to the five-line ad in the back of Byte magazine for somebody’s commercial version of Linux.
“The last email I got from Andrew was him asking me if this is really what I wanted to do, have somebody selling my work. I just sent him an email back saying Yes, and I haven’t heard from him since,” he says.
Maybe a year later, when Linus was in the Netherlands for his first public speech, he made his way to the university where Tanenbaum taught, hoping to get him to autograph Linus’s copy of Operating Systems: Design and Implementation, the book that changed his life. He waited outside his door but Tanenbaum never emerged. The professor was out of town at the time, so they never met.