Stallman’s Good GNUs
Everyone who reads Technology Review must have heard of “free software.” It was on MIT’s campus twenty years ago that the Free Software Foundation was born; it was an MIT researcher, Richard Stallman, who presided at its birth. Free software is code that carries a promise. Actually, it carries five promises (four explicitly, and one by implication), according to the foundation’s definition of free software. Geekily numbered starting with zero, the promises are
(0) The freedom to run the program for any purpose;
(1) The freedom to study how the program works and adapt it to your needs;
(2) The freedom to redistribute copies so you can help your neighbor;
(3) The freedom to improve the program and release your improvement to the public, so that the whole community benefits.
The first and third freedoms imply a final, and equally important, freedom: access to the source code of the program. Software that offers anyone these freedoms is free; software that compromises any of them is not.
Stallman launched his movement as a reaction to changes in the environment within which software was written. In the world he had known, programmers were a sort of ethical scientist. Coders worked on common problems; they shared the knowledge that their work produced. More than 60 years ago, sociologist Robert Merton said of science, “Incipient and actual attacks upon the integrity of science have led scientists to recognize their dependence on particular types of social structure”; so, too, did Stallman believe that the freedom of programming faced “incipient and actual attacks.” Its defense, he believed, would depend upon “particular types of social structure.” He thus set out to build one: a social structure that would help coders preserve the integrity that he thought their discipline should have. The foundation of this structure would be a “free” operating system, inspired by Unix, but not actually Unix (and thus cleverly named GNU – GNU’s Not Unix).
At the time, Stallman’s ambition seemed to many unachievable. No single person, and no collective of volunteers, had ever succeeded in finishing a software project on the scale of a complete operating system. There was no reason to believe Stallman and his followers would succeed. But they began with first steps – the tools and scaffolding with which everything else could be built. These included some of the most important bits of GNU, like its compiler, the GNU Compiler Collection (GCC), and some of the most beautiful, like the Emacs editor. And each bit was wrapped in Stallman’s single most brilliant idea: a license that would assure that the code he was building would forever remain free.
The GNU General Public License, or GPL, is a copyright license. In the language of the free-software movement, it is also a copyleft license. Like any copyright license, it imposes conditions upon some uses of the products it governs. Like any copyleft software license, it includes among those conditions the requirement that changes to the protected code must be shared if they are redistributed. The copyleft requirement is a benefit for some (those who share the goal of spreading free software); it is a curse for others (those who would like to add to the project and benefit exclusively from what they add). Stallman bet there would be enough who saw it as a benefit to build a free operating system.
Six years into the project, however, GNU still lacked a heart – that is, the “kernel” of an operating system that provides control of a computer’s hardware. That part would not come from Stallman. In 1991, Linus Torvalds, a Finnish undergraduate, announced the beginnings of a kernel governed by the GPL. Hackers started integrating that kernel – which they dubbed “Linux” – into GNU. By the middle 1990s, there was a full, functioning, free operating system spreading across the Internet. By the end of the 1990s, GNU/Linux had become a powerful and free competitor to Microsoft’s Windows operating system (see “How Linux Could Overthrow Microsoft,”).