Just for Fun : The Story of an Accidental Revolutionary
Page 12
XI
The hotel room was only slightly above freezing as I lay in bed, shivering, the night before my first speech. In the Netherlands they don’t heat places like they do in Finland, and this drafty room even had huge single-pane windows, as if it were meant to be occupied only in the summer. But the coldness wasn’t the only thing keeping me awake on the night of November 4, 1993. I was nervous beyond belief.
Public speaking had always been a rough spot for me. In school they made us give presentations about something we had heavily researched—rats or whatever—and I always found it impossible to do. I would stand up there, unable to talk, and just start giggling. And trust me, I’m not a giggler. It was even uncomfortable when I had to go up to the blackboard to show the class how I figured out a problem.
But there I was in Ede, Netherlands, an hour’s train ride from Amsterdam, because I had been invited to be speaker at the tenth anniversary of the Netherlands Unix Users Group. I wanted to prove to myself that I could do this. A year earlier I had been asked to speak before a similar organization in Spain, but declined because my fear of public speaking was greater than my desire to travel. And back then, I really loved to travel. (I still like traveling, but it’s not nearly the novelty it was for a kid who had barely been out of Finland. The only places I had ever been were Sweden, where we took a few camping vacations, and Moscow, where we visited my dad when I was about six years old.)
It sort of bothered me that I had blown the chance to visit Spain, so I convinced myself that I would accept the next speaking invitation that came along. But I was having second thoughts as I lay in bed, wondering if I would ever overcome my fear of getting up in front of large groups of people, worrying that I would be unable to open my mouth, or, worse, that I would lapse into giggles before the 400 members of the audience.
That’s right, I was a mess.
I told myself the usual stuff. That the audience wants you to succeed, that they wouldn’t be there in the first place if they didn’t like you, and that I certainly knew the topic: the reasons behind the various technical decisions in the writing of the Linux kernel, the reasons for making it open source. Still, I was unconvinced that the speech would be a success, and my mind chugged along like an unstoppable freight-train engine. I literally was shaking in bed—and the frigid air was the least of it.
The speech? Well, the audience was sympathetic to the obviously frightened soul standing before them, clinging to his PowerPoint slides (thank God for Microsoft) like a life preserver, and then haltingly answering their questions. Actually, the question-and-answer session was the best part. After my speech—such as it was—Marshall Kirk McKusik, who was instrumental in BSD Unix, came up to me and told me he found my speech interesting. I was so grateful for the gesture, I felt like getting down on my knees and kissing his feet. There are few people I look up to in computers, and Kirk is one of them. It’s because he was so nice to me after that first speech.
My first speech was like shock treatment. So were the ones that followed. But they started making me more self-confident.
David keeps asking me how my stature at the university changed as Linux grew bigger. But I wasn’t aware of any professors even mentioning it, or any other students pointing me out to their friends. Nothing like that. People around me at the university knew about Linux, but actually most of the hackers involved in it were from outside of Finland.
In the fall of 1992 I had been made a teaching assistant for Swedish-language classes in the Computer Sciences department. (Here’s how that happened: They needed Swedish speaking TA’s for the basic computer courses. There were only two Swedish-speaking computer science majors who had started at the university a few years earlier: Lars and Linus. There wasn’t much of a choice.) At first I was afraid to even go up to the blackboard and work on problems, but it didn’t take long for me to just concentrate on the material and not worry about embarrassing myself. By the way, three years later I was promoted to research assistant, which meant that instead of getting paid for teaching I was paid to work in the computer lab, which mostly meant doing development work on Linux. It was the start of a trend: having someone else pay me to do Linux. That’s basically what happens at Transmeta.
David: “So when did it start becoming a big deal?’’
Me: “It’s still not a big deal.”
Okay, I’ll amend that. It started becoming more of a deal when it became clear how many people depend on Linux as something other than a toy operating system. When they started using it for more than just tinkering around, I realized that if something goes wrong, I’m responsible. Or at least I started feeling responsible. (I still do.) During 1992 the operating system graduated from being mostly a game to something that had become integral to people’s lives, their livelihoods, commerce.
The shift occurred in the spring of 1992, about a year after I had started terminal emulation, when the first version of the X windowing system ran under Linux. That meant the operating system was capable of supporting a graphical user interface and that users could work in multiple windows simultaneously, thanks to the X windowing project, which had its origins at MIT. It was a big change. I remember that I had joked with Lars about it, around a year before it actually happened, telling him that someday we would run X and be able to do it all. I never thought it would happen that quickly. A hacker named Orest Zborowski was able to port X to Linux.
The way the X window system works is by way of the X server, which does all the graphics. The server talks to the clients, which are the things that say “I want a window and I want it this big.” The communication goes through a layer called sockets, or, more formally, Unix Domain Sockets. It’s how you communicate internally in Unix, but you also use sockets to communicate over the Internet. So Orest wrote the first socket layer for Linux just to port X to it. Orest’s socket interface was kind of tacked on and not integrated with the other code. It was a situation in which I agreed to the patch because we needed it, even though it was fairly raw.
It took me awhile to get used to the notion that we had a graphical user interface. I don’t think I even used it on a daily basis for the first year or so. And these days I can’t live without it. There are always a ton of windows up when I work.
Orest’s contribution not only enabled us to have windows, but it also opened a big door for the future. The domain sockets were used for the local networking that enables the X windowing system to operate. We could build on those same sockets to enable Linux to make the major leap to external networking—to have the ability to link computers. Without networking, Linux was usable only for people who sat at home and used a modem to dial up somewhere, or who did everything locally. With great optimism, we started developing Linux networking on top of those original sockets, even though they hadn’t been meant for networking at all.
I was so confident that we could easily do it that I made a leap in the version-numbering scheme. In March 1992 I had planned to release version 0.13. Instead, with the graphical user interface in place, I felt confident that we were maybe 95 percent of the way to our goal of releasing a full-fledged, reliable operating system, and one with networking. So I named the new release version 0.95.
Boy, was I premature. Not to mention clueless.
Networking is nasty business, and it ended up taking almost exactly two years to get it right, to a form where it could be released. When you add networking you suddenly introduce a host of new issues. There are security issues. You don’t know who’s out there and what they want to do. You have to be really careful that people don’t crash your machine by sending it bad junk packets. You’re not in control of who’s trying to contact your machine anymore. Also, a lot of people have very different setups. With TCP/IP the networking standard, it’s difficult to get all the time-outs right. It felt as if the process would drag on forever. By the end of 1993 we had an almost usable networking capability, although some people had serious problems getting it to work. We couldn’t handle networks th
at didn’t have 8-bit boundaries.
Because I had been overly optimistic in the naming of version 0.95, I was caught in a bind. Over the course of the two years it took to get version 1.0 out the door, we were forced to do some crazy things with numbers. There aren’t many numbers between 95 and 100, but we continually released new versions based on bug fixes or added functions. By the time we got to version 0.99, we had to start adding numbers to indicate patch levels, and then we relied on the alphabet. At one point we had version 0.99, patch level 15A. Then version 0.99, patch level 15B, and so on. We made it all the way to patch level 15Z. Patch level 16 became version 1.0, the point where it was usable. This was released in March 1994 with great fanfare at the University of Helsinki Computer Sciences Department auditorium.
The period leading up to it had been kind of chaotic, but nothing could put a dent in Linux’s popularity. We had our own Internet newsgroup, comp.os.linux, which grew out of the ashes of my flamefest with Andrew Tanenbaum. And it was attracting hordes. Back then the Internet Cabal, the folks who more or less ran the Internet, kept unofficial monthly statistics on how many readers each newsgroup attracted. They weren’t reliable statistics, but they were the best information available on the popularity of your site—in this case, how many people were interested in Linux. Of all the newsgroups, alt.sex was the perennial favorite. (Not my particular favorite. Although I did check it out once or twice to see what the fuss was about, I was pretty much your typical under-sexed nerd, more eager to play with my floating point processor than to keep abreast of the latest reports from the sexuality front—newly discovered lovemaking positions or reports from heavy petters or whatever else it was that so many people were talking about on alt.sex.)
With the Cabal’s monthly statistics, I could easily track the popularity of comp.os.linux. And trust me, I kept track. (While I might be somebody’s idea of a folk hero, I’ve never been the selfless, ego-free, techno-lovechild the hallucinating press insists I am.) By the fall of 1992, the estimates for our newsgroup were on the order of tens of thousands of people. That many people followed the newsgroup to see what was going on, but they weren’t all using Linux. Every month, when the statistics came out, there was a summary report of the forty most popular newsgroups. If your newsgroup didn’t make it to the top forty, you could fetch the full report on other newsgroups’ popularity from a special maintenance newsgroup. Usually I had to go find the full report.
The Linux newsgroup kept creeping up the chart. At one point it made the top forty and I was happy. That was pretty cool. I seem to remember having written a fairly gloating article to comp.os.linux in which I basically listed the various os (operating system) newsgroups, including Minix, and said, “Hey look at this, we’re more popular than Windows.” Remember that, back then, people who liked Windows were not on the Internet. We made it to the top five sometime in 1993. I went to bed that night brimming with self-satisfaction, excited by the fact that Linux had become almost as popular as sex.
There certainly was no such matchup in my own little corner of the world. I truly did not have a life. By this time, as I mentioned earlier, Peter Anvin had organized an online collection that generated $3,000 in donations to help me pay off my computer, which I did at the end of 1993. And for Christmas, I upgraded to a 486 DX266, which I used for many years. But this was my life: I ate. I slept. Maybe I went to university. I coded. I read a lot of email. I was kind of aware of friends getting laid more, but that was okay.
Quite frankly, most of my friends were losers, too.
XII
The speech in Ede almost convinced me that I could survive anything, even something as terrifying as standing up before a group of total strangers and being the focus of their attention. My confidence was slowly building in other areas, too. I was being forced to make quick decisions regarding Linux fixes and upgrades, and with each decision I felt increasingly comfortable in my role as leader of a growing community. The technical decisions had never been a problem; the problem was figuring out how to tell one person that I preferred another’s suggested changes—and being diplomatic about it. Sometimes it was as simple as saying, “So-and-so’s fixes are working fine. Why don’t we just go with those?”
I never saw the point of accepting anything other than what I thought was the best technical solution being presented. It was a way of keeping from taking sides when two or more programmers offered competing patches. Also, although I didn’t think of it this way at the time, it was a way of getting people to trust me. And the trust compounds. When people trust you, they take your advice.
Of course you have to establish a foundation for all the trust. I guess that started not so much when I wrote the Linux kernel as when I posted it to the Internet, opening it up to anyone who wanted to join in and add the functions and details they liked, with me making ultimate decisions regarding the guts of the operating system.
Just as I never planned for Linux to have a life outside my own computer, I also never planned to be the leader. It just happened by default. At some point a core group of five developers started generating most of the activity in the key areas of development. It made sense for them to serve as the filters and hold the responsibility for maintaining those areas.
I did learn fairly early that the best and most effective way to lead is by letting people do things because they want to do them, not because you want them to. The best leaders also know when they are wrong, and are capable of pulling themselves out. And the best leaders enable others to make decisions for them.
Let me rephrase that. Much of Linux’s success can be attributed to my own personality flaws: 1) I’m lazy; and 2) I like to get credit for the work of others. Otherwise the Linux development model, if that’s what people are calling it, would still be limited to daily email messages among a half-dozen geeks, as opposed to an intricate web of hundreds of thousands of participants relying on mailing lists and developers’ conventions and corporate sponsorship in maybe 4,000 projects that are taking place at any one time. At the top, arbitrating disputes over the operating system’s kernel, is a leader whose instinct is, and has always been, not to lead.
And things work out for the best. I divested myself of things that didn’t hold much interest for me. The first of these was the user level, the external parts of the system that end users deal with directly, as opposed to the deep-down, internal code. First somebody volunteers to maintain it. Then the process for maintaining all the subsystems becomes organic. People know who has been active and who they can trust, and it just happens. No voting. No orders. No recounts.
If two people are maintaining similar kinds of software drivers, for example, I’ll sometimes accept the work from both of them and see which one ends up getting used. Users tend to lean on one versus the other. Or, if you let both maintainers work it out, they may end up evolving in different directions and their contributions end up having very distinct uses.
What astonishes so many people is that the open source model actually works.
I guess it helps to understand the mentality of hackers in the free software universe. (By the way, I usually try to avoid the term “hacker.” In personal conversations with technical people, I would probably call myself a hacker. But lately the term has come to mean something else: underage kids who have nothing better to do than sit around electronically breaking into corporate data centers, when they should be out volunteering at their local libraries or, at the very least, getting themselves laid.)
The hackers—programmers—working on Linux and other open source projects forego sleep, Stairmaster workouts, their kids’ Little League games, and yes, occasionally, sex, because they love programming. And they love being part of a global collaborative effort—Linux is the world’s largest collaborative project—–dedicated to building the best and most beautiful technology that is available to anyone who wants it. It’s that simple. And it’s fun.
Okay, I’m starting to sound like a press release with all this shameless self-p
romotion. Open source hackers aren’t the high-tech counterparts of Mother Teresa. They do get their names associated with their contributions in the form of the “credit list” or “history file” that is attached to each project. The most prolific contributors attract the attention of employers who troll the code, hoping to spot, and hire, top programmers. Hackers are also motivated, in large part, by the esteem they can gain in the eyes of their peers by making solid contributions. It’s a significant motivating factor. Everybody wants to impress their peers, improve their reputation, elevate their social status. Open source development gives programmers the chance.
Needless to say, I was spending most of the year 1993 like I had spent most of 1992, 1991, et cetera: hunched over a computer. That was about to change.
Following in the academic footsteps of my grandfather, I was a teaching assistant at the University of Helsinki, assigned to the fall semester of the Swedish-language “Introduction to Computer Sciences” course. That’s how I met Tove. She had more of an impact on my life than even Andrew Tanenbaum’s book, Operating Systems: Design and Implementation. But I won’t bore you with too many details.
Tove was one of fifteen students in my course. She had already received a degree in preschool education. She wanted to study computers, too, but wasn’t progressing as quickly as the rest of the class. She eventually caught up.
The course was so basic—this was the fall of 1993, before the popularity of the Internet—my homework assignment for the class one day was to send me email. It sounds absurd today, but I said: “For homework, send me email.”
Other students’ emails contained simple test messages, or unmemorable notes about the class.
Tove asked me out for a date.
I married the first woman to approach me electronically.
Our first date never ended. Tove was a preschool teacher and six-time Finnish karate champion who had emerged from a functional family, although that’s how I’d describe any family that was not as quirky as mine. She had a lot of friends. She felt like the right woman for me from the very first moment we got together. (I’ll spare you the elaboration.) Within a few months Randi the cat and I had moved into her minuscule apartment.