Near the close of the 11th century, an Italian jurist named Irnerius founded a school of law in the town of Bologna. We are told by Odofredus, a 13th century professor of Roman law, that Irnerius was the first "to pass on his research through his teaching." This assertion may be questionable -- no doubt there have been countless other scholars who taught what they had learned, long before Irnerius. (Aristotle and Confucius, to pick just two, spring to mind.) But the contention is intriguing. A central tenet of open-source faith is the belief that source code is an intellectual good that should be shared with as wide an audience as possible.
Free software is free speech. Bill Joy, a programmer* extraordinaire who co-founded the computer workstation manufacturer Sun Microsystems, suggests that that belief is an outgrowth of the academic tradition of sharing research results with others. And that tradition, he observes, is at least 1,000 years old, going back to the founding of what is generally considered to be the first modern European university -- Irnerius's University of Bologna.
University researchers, from computing's earliest days, have long spearheaded research and development in both computer hardware and software, so it should come as little surprise that academic customs influence how some of them view their work. But did free software really begin at Bologna, nearly a millennium before the invention of the computer?
Not, certainly, in any literal sense. And yet it is still worthwhile to think about free software in the context of nearly 1,000 years of intellectual curiosity and academic freedom. To many programmers, code is a means of expression; a form of speech; a way of seeing, understanding and interacting with the world. To put into place proprietary restraints restricting that speech is a repugnant act of censorship. Sharing source code is not just a way of creating software -- it is a way of life, a passion and a faith.
But free software is also fundamentally a software development methodology. As such, it owes much of its vigor to the efforts of programmers constantly looking for more effective ways of getting their work done. The drive for efficiency is no recent development in the software world, either. From the very beginning of the commercial computing era, programmers have realized that working together -- even across corporate lines -- makes eminently good sense.
- - - - - - - - - - - - - - - - -- - -- - -- - -- - --
In December 1952, IBM rolled out its first commercially sold electronic computer, the 701 -- also known by the quaint name "the Defense Calculator," since nearly every one of the 19 701s manufactured was rented out (for a pricey $15,000 a month) either to the United States Defense Department or to aerospace companies living off of Defense largesse.
Writing software for the 701 was a slow, painful process, made even more difficult by the lack of programming tools that today's hackers take for granted. The most pressing need was for a "compiler"* -- a program that would translate other software programs into instructions that the 701 could understand. Each company that rented a 701 needed a compiler, but writing one from scratch would be a time consuming and expensive task.
There had to be a better way. A group of West Coast aerospace companies -- pillars of the Cold War economy like Lockheed, Douglas and North American Aviation -- joined together to pool their resources. Thus was born PACT -- the Project for the Advancement of Coding Techniques. Possibly the first example of programmers who worked for directly competing companies sharing source code, PACT set an example that today's open-source start-ups are vigorously imitating.
"All parties concerned recognized that the days of 'going it alone' had to end," recalls Irwin Greenwald, a programmer who worked at the RAND Corporation think tank, which was actively involved in facilitating the collaboration. "It was too expensive both in dollars and time to completion."
Greenwald's memory is that the urge to collaborate came from technical staff at the separate companies who then sold management on the idea. If so, this is a point worth noting: Programmers know that one of the best ways to write code is to collaborate, and if that means sharing notes with your competitors, so be it. The point is to get the job done. As another participant in the project, Wesley S. Melahn, reported at the time, "The first few months of experience seem to indicate that the co-operating computer groups will be hansomely repaid for the small investment in PACT I by the savings in coding and machine time. Perhaps the greatest dividends will come from the demonstration that co-operative undertakings by groups with diversified interests can succeed and can speed up the development of the art of machine computation."
Never mind all that hifalutin stuff about academic freedom and code as "expression"; sharing source code is simply a technically superior strategy for software development. The true roots of free software can be traced back to the bald desire of the military-industrial complex to operate more efficiently.
PACT was a conscious attempt to solve programming problems that ended up providing a template for open-source business cooperation. But as we search for the wellsprings of free software, it's important to realize that software evolution is buffeted by the winds of fortune as much as it is planned by programmers. Accidents will happen.
- - - - - - - - - - - - - - - - -- - -- - -- - -- - -
In 1956, for example, the United States federal government enjoined AT&T to abide by the terms of a consent decree that forbade the government-regulated monopoly from entering non-telephony markets such as computing -- and, even more importantly, required AT&T to license its patents. So, a little less than two decades later, when Dennis Ritchie* and Ken Thompson* invented the Unix operating system, AT&T lawyers, mindful of the consent decree, initially prohibited AT&T from commercializing the software. As a result, the source code to Unix was made available to universities and research laboratories at a nominal fee.
Ken Thompson had received his Ph.D. from the University of California at Berkeley, and in 1975 he took a year's sabbatical there. Later that same year, Bill Joy arrived as a graduate student. The combination of Thompson, Joy and cheap access to the Unix source code led to an explosion of creativity every bit as radical and world-changing as the political explosion that Berkeley helped unleash in the '60s. Joy and a team of talented programmers rewrote and enhanced Unix and redistributed their changes to other Unix enthusiasts, who, in turn, often contributed their own new features and improvements -- modeling, in striking fashion, the strategy of open-source software development that is embodied today by Linux and other free-software projects.
The Berkeley programmers also added the networking capabilities to Unix that made it the ideal lingua franca for the Arpanet,* the Internet's predecessor -- a feat that held immense implications for the software industry and the evolution of the Internet. To this day, the most vigorous arena for free-software/open-source development occurs in the friendly ecological habitat of Unix. Linux is a clone of Unix, and many other free-software mainstays are most comfortable in a Unix/Linux environment. A generation of programmers have grown up with the ability, if they cared to, to upgrade Unix as they see fit. Through doing so, they created a flourishing culture indigenous to the Net.
Did the consent decree of 1956, then, kick off open source? Is it the tap root supporting free software's mighty flowering? Maybe. According to Ritchie, "the consent decree, to the extent that it prevented AT&T from thinking at all about a Unix business, certainly influenced the licensing and distribution policy, which most likely would have been more closed without the restriction." At the very least, writes Peter Salus, author of "A Quarter Century of Unix," "the decree resulted in a much more rapid dissemination of technology than would otherwise have been possible."
But before we get too excited about the potential for government intervention to aid the growth of the free-software industry, it must be recalled that the consequences of the consent decree were entirely unintended. At the time, in fact, the decree was widely viewed as a painless slap on the wrist that implied "no real injury" to AT&T. Certainly, in 1956, very few people foresaw that the eventual linking of computers together via telecommunication networks would become one of the defining technology advances of the 20th century.
The consent decree was one kind of accident, albeit on a huge scale involving the classic thrust/counterthrust of government and business interaction. But accidents on a much smaller scale have also exerted profound influences. Consider, for example, the case of the printer paper jam.
- - - - - - - - - - - - - - - - -- - -- - -- - -- - --
In 1979, the hackers who populated M.I.T's Artificial Intelligence Laboratory received a laser printer. Not just any laser printer, but a Dover laser printer from Xerox -- the very first laser printer, one of the results of the groundbreaking research conducted at the Xerox PARC laboratories in Palo Alto.
The Dover was a big clunky thing that had a tendency, as is common with printers, to get fouled up with paper jams and other mechanical problems. But not to worry. With a previous printer, the M.I.T. hackers had done what they did best: hacked the printer's software so that if it ran out of paper or jammed, a message would leap across the Lab's computer network announcing the fact. And somebody would get up and load in some new paper, or unjam the printer.
Now that they had their spiffy new laser printer, the hackers saw no reason why they shouldn't incorporate their modifications in the software of the Dover, too. But they didn't have the source code to the printer's software. As Richard Stallman,* one of the lab's preeminent hackers, recalls, Xerox would not give the Lab a copy. He couldn't see it, couldn't fix it, couldn't upgrade it.
In 1984, Stallman, a legendary and controversial figure in the programming world, founded the Free Software Foundation, an institution dedicated to promoting the notion that source code should be freely available. The incident with the Xerox printer, Stallman remembers, was one catalyst that launched him along his path.
"At the time, I hadn't reached the conclusion that non-free software is unethical -- I just observed it was a pain in the neck," recalls Stallman. "If they had offered us a copy with a copyright notice on it, and said we couldn't republish it, at the time I might have been content with the arrangement. I might even have signed a nondisclosure agreement for the source code, for all I can tell today. It was after later reflection that I concluded nondisclosure agreements were wrong on principle."
Principle. Richard Stallman is a controversial figure in the programmer community. He is stubborn and unyielding -- tact is not one of the weapons in his formidable arsenal. He's been called a communist and a crank, and some of the more business-oriented open-source entrepreneurs probably wish that the man would simply shut up and go away. In person, Stallman's long flowing hair, his steely green-eyed gaze and his tendency to take strong moral positions and hold them with unmovable tenacity make him seem more like an Old Testament prophet than a technological visionary. But his influence is undeniable and his contributions are enormous.
Richard Stallman represents the ideological core of the free-software movement. His moral fervor for sharing source code is what drives many programmers forward. More than any other person, Stallman is responsible for promulgating the notion that free software is more than just a technique -- it is an ethical imperative.
- - - - - - - - - - - - - - - - -- - -- - -- - -- - -
In what has to be one of the most ironic twists in the path to free software's origins, it can be argued that Microsoft's blistering campaign to win the so-called Web browser wars in the late '90s had the entirely unexpected result of boosting the free-software movement out of the recesses of the Net into the glare of public view. Microsoft's not inconsequential role in the free-software movement is all the more tantalizing when one considers that Bill Gates, as a young man of 19, personally played an instrumental role in turning the production of software into a proprietary profit center.
In January 1998, Netscape, the company that kick-started the Web explosion with the release of its Netscape Navigator Web browser, announced its plans to join the free-software movement by declaring that it would release the source code to Netscape Navigator. Executives at Netscape declared that their thinking had been influenced in part by the online publication of a seminal paper describing the logistics of the open source software development methodology written by hacker Eric Raymond. But there were more factors driving the decision than simply some fortuitous Web surfing. Netscape had been battered by Microsoft, and the trade press portrayed the move as both a last gasp of desperation and a sign that free software was a force to be reckoned with. The Netscape announcement marked a sea change in how the technology press covered free software: Hitherto it had been either ignored, marginalized or treated as a fading remnant of long gone days of hacker idealism; now, suddenly, reporters began paying attention to the growth of Linux-based operating systems.
Prior to Netscape's move, most software companies generally kept their source code private from all outsiders. After Netscape, the free-software gold rush began, and company after company rushed to announce their support for Linux and other open source success stories.
The Netscape announcement was more than a brilliant public relations move. Although we don't yet know the results of the experiment -- the open source version of Netscape Navigator is still not ready for public consumption -- Netscape's action illuminated the broader lines of a fundamental conflict for mastery of the software marketplace: one between proprietary control, represented by the centralized, monopolistic Microsoft, and decentralized freedom, represented by the near-anarchic open source movement. Anti-Microsoft sentiment plays a key role in energizing some authors of free software, particularly those in Europe or Asia who wish to avoid dependence on what they see as a rapacious American corporation.
The battle is far from over -- indeed, it has hardly even begun in earnest. But Microsoft itself, through its ceaseless efforts to dominate new markets, is responsible in part for setting off the hostilities, for fanning the flames of free-software passion.
- - - - - - - - - - - - - - - - -- - -- - -- - -- - -
If Netscape's 1998 announcement attracted the attention of the technology sector, then in 1999 Red Hat grabbed the whole world by the throat with its successful stock market debut. And while it might seem peculiar to consider a point in time as recent as the summer of 1999 a potential starting point for the free-software story, the watershed importance of the Red Hat public offering is undeniable. At the end of the first day of trading, Red Hat, a company with barely $10 million in revenue and no profits that specialized in assembling and distributing packages of free software, was worth $8 billion. And Wall Street suddenly started paying attention to free software.
The frenzy to buy shares in free software's premier brand name marked the moment when free software went from a programmer fad to a "new economy" phenomenon. Dot-com madness and open-source software proved to be fast friends; in the year since, a long line of Linux-related startups has gone public or announced plans to do so. One of those companies, VA Linux, even stunned itself with the highest first-day trading bounce in initial-public-offering history. Free software had become an economic tidal wave. Before Red Hat, debates about the future of free software tended to be arcane online exchanges of programmer jargon. After Red Hat, every twist and turn in the open source world would become front page news.
The Red Hat IPO is the flagship example of how a movement built largely by volunteers is becoming a significant force in the global economy. It also epitomizes the bizarre world of the techno-economy at the turn of the 21st century -- a world where buzzwords can turn into billion-dollar market capitalizations at the flip of a day-trader's switch, and free software is Big Business.
But would either Red Hat's IPO or Netscape's bold decision to release its source code ever have happened had it not been for a young Finnish programmer with hacker chops and a Net connection?
- - - - - - - - - - - - - - - - -- - -- - -- - -- - -
On Oct. 5, 1991, Linus Torvalds, then a 21-year-old undergraduate at the University of Helsinki in Finland, posted a message to "comp.os.minix" -- an online bulletin board accessible via the Internet. A few geeks noticed the post. Some even responded by sending e-mail to Torvalds. But it is safe to say that no one recognized the moment as an epochal event in the history of computing. While not quite a backwater, neither was "comp.os.minix" a gathering place for the rich and powerful. The forum was just an online hangout for devotees of an experimental computer operating system known as Minix.*
His message began:
Do you pine for the nice days of minix-1.1, when men were men and wrote their own device drivers?* Are you without a nice project and just dying to cut your teeth on a OS you can try to modify for your needs? Are you finding it frustrating when everything works on minix? No more all-nighters to get a nifty program working? Then this post might be just for you :-)
Torvalds aimed his message at curious hackers in search of a new challenge; he called the code he was working on "a program for hackers written by a hacker." In his world, the term hacker implied respect -- definitely not to be confused with the slur mistakenly employed by the popular media to describe criminals intent on breaking into computer systems. A hacker, in the historically accurate sense of the word, is a programmer who enjoys writing code, solving problems, taking things apart to see how they work and fixing them if they are broken. Hackers are creative, unconventional and generally unwilling to pay lip service to any particular party line.
Above all, hackers are a restless breed. While they may jump at the chance to inspect or install some new agglomeration of code, they will also speedily become disenchanted if the code doesn't do what they want -- if it lacks some desirable feature or suffers from a debilitating bug.
So it was with Torvalds. He had initially enjoyed installing Minix on his home computer and testing its capabilities. But he soon became dissatisfied. He disagreed with some of the design choices made by Minix's creator, Andrew Tanenbaum,* a professor of computer science who specialized in research on operating systems. Ultimately, he thought he could do better.
As a rule, hackers are generously endowed with strong egos, and Torvalds is no exception. But even as judged by hacker standards, for a 21-year-old undergraduate to embark on the mission of writing his own operating system qualified as hubristic. Operating systems are enormously complex software programs -- the single most essential piece of software on a computer. Without an operating system, a computer is a pile of useless silicon, metal, and plastic: like a house without electricity, plumbing or heat.
However, Torvalds didn't actually need to write an entire operating system. Return, for a moment, to Torvalds' 1991 post to comp.os.minix. Take a close look at the digital infrastructure that made it possible: It positively reeked of free software. Comp.os.minix was a "newsgroup" on the online bulletin-board system "Usenet* News." Usenet News was (and is) an excellent example of the free software development model. Starting in the early '80s, programmers seeking an efficient way to share information on a vast number of different topics crafted the system together during their spare time -- without any thought of financial gain. They made their source code public, so generations of future programmers were free to add their own improvements.
Similarly, when Torvalds and the respondents to his post exchanged private e-mail, their notes were routed across the Internet by another program, Sendmail,* that was also free software -- and that, to this day, is responsible for moving a hefty majority of the world's e-mail across the Internet. Even more significantly, the tools that Torvalds used to get his code up and running -- the compilers and debuggers* that are to a programmer what lathes and radial arm saws are to a carpenter -- were themselves explicit products of the organized wing of the free software movement. Their creation had been masterminded, subsidized and, in large part, authored by members of the Free Software Foundation led by Richard Stallman -- an institution whose explict goal was to create a completely free operating system.
The story of free software, it turns out, is the story of the Net itself. Not only have programmers working in the tradition of free software been the primary architects of the guts of the Net, but as the Net has grown, it in turn increasingly facilitated the kind of large-scale collaboration -- across company lines and national boundaries, time zones and war zones -- that makes ever more complex and ambitious free software projects possible.
So Torvalds wasn't operating in a vacuum when he announced he had put some code on a publicly accessible computer. When Torvalds made his post, nearly all of the key pieces of the free software puzzle -- an infrastructure that would allow programmers to hack to their heart's content without ever having to taint their hard drives with the stain of proprietary software -- were already in place. Torvalds just finished the job by providing the last piece of the puzzle.
Torvalds focused his efforts on the creation of an operating system "kernel." A kernel,* in programmer lingo, is the core of an operating system, the all-essential code that ensures that the different parts of a computer can successfully communicate with each other. In 1991, the Free Software Foundation had yet to complete its own kernel. Torvalds' Linux kernel completed the circle.
For that achievement alone, a world of programmers is fanatically grateful. But sheer coding skill can only explain part of Torvalds' achievement. The secret to Torvalds' success lies not just in his ability to string ones and zeros together in imaginative and effective ways. More than any other single programmer before him, Torvalds exploited the Net's facility for bringing people together. Using e-mail and Usenet, he nurtured a worldwide community of freely collaborating programmers. The universe of software engineering is an environment where egos tend to run rampant and patience for fools is in short supply; Torvalds' ability to welcome newcomers into the fold soon became a Linux calling card -- and provided volatile fuel for future growth. As Torvalds noted later, "The power of Linux is as much about the community of cooperation behind it as the code itself."
- - - - - - - - - - - - - - - - -- - -- - -- - -- - -- -
A paper jam, a post to Usenet, a consent decree in 1956; an intellectual tradition dating back centuries combined with the common sense of programmers eager to solve problems and a moral imperative to share; the threat of Microsoft domination and the lure of dot-com profits -- tracing the roots of the free software movement back through these conflicting and competing motivations and historical accidents is like navigating a particularly twisty Borgesian labyrinth. There is no single boot-up moment.
But that's as it should be. The free software movement is anarchic and decentralized, rife with internal contradictions, competing ideologies, dissension and sometimes disarray. That may, to some observers, seem a weakness. But it is also a profound strength.
Shares