3.1 Sleeping In

Free For All. Go to the Table of Contents. Vist the Gifcom.

While Microsoft focused its eyes and ears upon Washington, one of its biggest competitors was sleeping late. When Richard Schmalensee was prepping to take the stand in Washington, D.C., to defend Microsoft's outrageous fortune against the slings and arrows of a government inquisition, Alan Cox was still sleeping in. He didn't get up until 2:00 PM. at his home in Swansea on the south coast of Wales. This isn't too odd for him. His wife, Telsa, grouses frequently that it's impossible to get him moving each morning without a dose of Jolt Cola, the kind that's overloaded with caffeine.

The night before, Cox and his wife went to see The Mask of Zorro, the latest movie that describes how Don Diego de la Vega assumed the secret identity of Zorro to free the Mexican people from the tyranny of Don Rafael Montero. In this version, Don Diego, played by Anthony Hopkins, chooses an orphan, Alejandro Murrieta, played by Antonio Banderas, and teaches him to be the next Zorro so the fight can continue. Its theme resonates with writers of open source software: a small band of talented, passionate warriors warding off the evil oppressor.

Cox keeps an open diary and posts the entries on the web. "It's a nice looking film, with some great stunts and character play," he wrote, but

You could, however, have fitted the plot, including all the twists, on the back of a matchbox. That made it feel a bit ponderous so it only got a 6 out of 10 even though I'm feeling extremely smug because I spotted one of the errors in the film while watching it not by consulting imdb later.

By the imdb, he meant the Internet Movie Database, which is one of the most complete listings of film credits, summaries, and glitches available on the Net. Users on the Internet write in with their own reviews and plot synopses, which the database dutifully catalogs and makes available to everyone. It's a reference book with thousands of authors.

In this case, the big glitch in the film is the fact that one of the train gauges uses the metric system. Mexico converted to this system in 1860, but the film is set in 1841. Whoops. Busted.

Telsa wrote in her diary, which she also posts to the Net under the title "The More Accurate Diary. Really."
Dragged him to cinema to see Zorro. I should have remembered he'd done some fencing and found something different. He also claimed he'd spotted a really obscure error. I checked afterward on IMDB, and was amazed. How did he see this?

Cox is a big bear of a man who wears a long, brown wizard's beard. He has an agile, analytic mind that constantly picks apart a system and probes it for weaknesses. If he's playing a game, he plays until he finds a trick or a loophole that will give him the winning edge. If he's working around the house, he often ends up meddling with things until he fixes and improves them. Of course, he also often breaks them. His wife loves to complain about the bangs and crashes that come from his home office, where he often works until 6:30 in the morning.

To his wife, this crashing, banging, and late-night hacking is the source of the halfhearted grousing inherent in every marriage. She obviously loves both his idiosyncrasies and the opportunity to discuss just how strange they can be. In January, Telsa was trying to find a way to automate her coffeepot by hooking it up to her computer.

She wrote in her diary,

Alan is reluctant to get involved with any attempt to make a coffee-maker switch on via the computer now because he seems to think I will eventually switch it on with no water in and start a fire. I'm not the one who welded tinned spaghetti to the non-stick saucepan. Or set the wok on fire. More than once. Once with fifteen guests in the house. But there we are.

To the rest of the world, this urge to putter and fiddle with machines is more than a source of marital comedy. Cox is one of the great threats to the continued dominance of Microsoft, despite the fact that he found a way to weld spaghetti to a nonstick pan. He is one of the core developers who help maintain the Linux kernel. In other words, he's one of the group of programmers who helps guide the development of the Linux operating system, the one Richard Schmalensee feels is such a threat to Microsoft. Cox is one of the few people whom Linus Torvalds, the creator of Linux, trusts to make important decisions about future directions. Cox is an expert on the networking guts of the system and is responsible for making sure that most of the new ideas that people suggest for Linux are considered carefully and integrated correctly. Torvalds defers to Cox on many matters about how Linux-based computers talk with other computers over a network. Cox works long and hard to find efficient ways for Linux to juggle multiple connections without slowing down or deadlocking.

The group that works with Cox and Torvalds operates with no official structure. Millions of people use Linux to keep their computers running, and all of them have copies of the source code. In the 1980s, most companies began keeping the source code to their software as private as possible because they worried that a competitor might come along and steal the ideas the source spelled out. The source code, which is written in languages like C, Java, FORTRAN, BASIC, or Pascal, is meant to be read by programmers. Most companies didn't want other programmers understanding too much about the guts of their software. Information is power, and the companies instinctively played their cards close to their chests.

When Linus Torvalds first started writing Linux in 1991, however, he decided to give away the operating system for free. He included all the source code because he wanted others to read it, comment upon it, and perhaps improve it. His decision was as much a radical break from standard programming procedure as a practical decision. He was a poor student at the time, and this operating system was merely a hobby. If he had tried to sell it, he wouldn't have gotten anything for it. He certainly had no money to build a company that could polish the software and market it. So he just sent out copies over the Internet.

Sharing software had already been endorsed by Richard Stallman, a legendary programmer from MIT who believed that keeping source code private was a sin and a crime against humanity. A programmer who shares the source code lets others learn, and those others can contribute their ideas back into the mix. Closed source code leaves users frustrated because they can't learn about the software or fix any bugs. Stallman broke away from MIT in 1984 when he founded the Free Software Foundation. This became the organization that sponsored Stallman's grand project to free source code, a project he called GNU. In the 1980s, Stallman created very advanced tools like the GNU Emacs text editor, which people could use to write programs and articles. Others donated their work and the GNU project soon included a wide range of tools, utilities, and games. All of them were distributed for free.

Torvalds looked at Stallman and decided to follow his lead with open source code. Torvalds's free software began to attract people who liked to play around with technology. Some just glanced at it. Others messed around for a few hours. Free is a powerful incentive. It doesn't let money, credit cards, purchase orders, and the boss's approval get in the way of curiosity. A few, like Alan Cox, had such a good time taking apart an operating system that they stayed on and began contributing back to the project.

In time, more and more people like Alan Cox discovered Torvalds's little project on the Net. Some slept late. Others kept normal hours and worked in offices. Some just found bugs. Others fixed the bugs. Still others added new features that they wanted. Slowly, the operating system grew from a toy that satisfied the curiosity of computer scientists into a usable tool that powers supercomputers, web servers, and millions of other machines around the world.

Today, about a thousand people regularly work with people like Alan Cox on the development of the Linux kernel, the official name for the part of the operating system that Torvalds started writing back in 1991. That may not be an accurate estimate because many people check in for a few weeks when a project requires their participation. Some follow everything, but most people are just interested in little corners. Many other programmers have contributed various pieces of software such as word processors or spreadsheets. All of these are bundled together into packages that are often called plain Linux or GNU/Linux and shipped by companies like Red Hat or more ad hoc groups like Debian.[^1] While Torvalds only wrote the core kernel, people use his name, Linux, to stand for a whole body of software written by thousands of others. It's not exactly fair, but most let it slide. If there hadn't been the Linux kernel, the users wouldn't have the ability to run software on a completely free system. The free software would need to interact with something from Microsoft, Apple, or IBM. Of course, if it weren't for all of the other free software from Berkeley, the GNU project, and thousands of other garages around the world, there would be little for the Linux kernel to do.

[1]: /Linux Weekly News/ keeps a complete list of distributors. These range from the small, one- or two-man operations to the biggest, most corporate ones like Red Hat: Alzza Linux, Apokalypse, Armed Linux, Bad Penguin Linux, Bastille Linux, Best Linux (Finnish/Swedish), Bifrost, Black Cat Linux (Ukrainian/Russian), Caldera OpenLinux, CCLinux, Chinese Linux Extension, Complete Linux, Conectiva Linux (Brazilian), Debian GNU/Linux, Definite Linux, DemoLinux, DLD, DLite, DLX, DragonLinux, easyLinux, Enoch, Eridani Star System, Eonova Linux, e-smith server and gateway, Eurielec Linux (Spanish), eXecutive Linux, floppyfw, Floppix, Green Frog Linux, hal91, Hard Hat Linux, Immunix, Independence, Jurix, Kha0s Linux, KRUD, KSI-Linux, Laetos, LEM, Linux Cyrillic Edition, LinuxGT, Linux-Kheops (French), Linux MLD (Japanese), LinuxOne OS, LinuxPPC, LinuxPPP (Mexican), Linux Pro Plus, Linux Router Project, LOAF, LSD, Mandrake, Mastodon, MicroLinux, MkLinux, muLinux, nanoLinux II, NoMad Linux, OpenClassroom, Peanut Linux, Plamo Linux, PLD, Project Ballantain, PROSA, QuadLinux, Red Hat, Rock Linux, RunOnCD, ShareTheNet, Skygate, Slackware, Small Linux, Stampede, Stataboware, Storm Linux, SuSE, Tomsrtbt, Trinux, TurboLinux, uClinux, Vine Linux, WinLinux 2000, Xdenu, XTeamLinux, and Yellow Dog Linux. Officially, Linus Torvalds is the final arbiter for the kernel and the one who makes the final decisions about new features. In practice, the group runs like a loosely knit "ad-hocracy." Some people might care about a particular feature like the ability to interface with Macintoshes, and they write special code that makes this task easier. Others who run really big databases may want larger file systems that can store more information without limits.

All of these people work at their own pace. Some work in their homes, like Alan Cox. Some work in university labs. Others work for businesses that use Linux and encourage their programmers to plug away so it serves their needs.

The team is united by mailing lists. The Linux Kernel mailing list hooks up Cox in Britain, Torvalds in Silicon Valley, and the others around the globe. They post notes to the list and discuss ideas. Sometimes verbal fights break out, and sometimes everyone agrees. Sometimes people light a candle by actually writing new code to make the kernel better, and other times they just curse the darkness.
Cox is now one of several people responsible for coordinating the addition of new code. He tests it for compatibility and guides Linux authors to make sure they're working together optimally. In essence, he tests every piece of incoming software to make sure all of the gauges work with the right system of measurement so there will be no glitches. He tries to remove the incompatibilities that marred Zorro.
Often, others will duplicate Cox's work. Some new features are very popular and have many cooks minding the stew. The technology for speeding up computers with multiple CPUs lets each computer harness the extra power, so many list members test it frequently. They want the fastest machines they can get, and smoothing the flow of data between the CPUs is the best way to let the machines cooperate.
Other features are not so popular, and they're tackled by the people who need the features. Some people want to hook their Linux boxes up to Macintoshes. Doing that smoothly can require some work in the kernel. Others may want to add special code to enable a special device like a high-speed camera or a strange type of disk drive. These groups often work on their own but coordinate their solutions with the main crowd. Ideally, they'll be able to come up with some patches that solve their problem without breaking some other part of the system.

It's a very social and political process that unrolls in slow motion through e-mail messages. One person makes a suggestion. Others may agree. Someone may squabble with the idea because it seems inelegant, sloppy, or, worst of all, dangerous. After some time, a rough consensus evolves. Easy problems can be solved in days or even minutes, but complicated decisions can wait as the debate rages for years.
Each day, Cox and his virtual colleagues pore through the lists trying to figure out how to make Linux better, faster, and more usable. Sometimes they skip out to watch a movie. Sometimes they go for hikes. But one thing they don't do is spend months huddled in conference rooms trying to come up with legal arguments. Until recently, the Linux folks didn't have money for lawyers, and that means they didn't get sidetracked by figuring out how to get big and powerful people like Richard Schmalensee to tell a court that there's no monopoly in the computer operating system business.