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 that 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 152. 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, cornp.os.Iinux, 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 undersexed 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-Iovechild 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 payoff 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.
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 anyone 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.
Читать дальше