The Origins of the Free Software Foundation
As told in his online essay, The Gnu Project, when Richard Stallman
was a resident hacker at the MIT Artificial Intelligence Lab back in 1971, he became involved with a well-established software community. Typically, for that time, the community worked via a Digital mainframe computer. The purpose of the community was sharing software, an activity he implies is as natural as eating (at least for computer programmers). It is, he says, "as old as computers, just as sharing of recipes is as old as cooking." [http://www.gnu.org/gnu/thegnuproject.html Stallman, Richard: The GNU Project] He was proud of his community at least in part because its members associated out of choice rather than obligation. They had what another programmer, Eric Raymond , would later call "voluntary mutual trust." [http://www.tuxedo.org/~esr/faqs/hacker howto.html Raymond, Eric: How to Become a Hacker ] Unfortunately, this community was eventually challenged and dissolved. Most of us have a hard time when told to give up what we feel is "only natural"; as we shall see, Stallman was no exception.
The community's demise was precipitated, as he tells it, in 1981, through a combination of events related to people leaving for new jobs and changes in computer operating systems being used at the Lab. Members found that their community had become illegal. They were shut out by "non-disclosure agreements," or copyright notices that accompanied the operating system software and forbade the sharing and modification of its source code, the program that made it work. As sharing and modifying (and improving) "code" was what this community was all about, this license change presented a serious problem.
In Stallman's words, "This meant that the first step in using a computer was to promise not to help your neighbor."[Id] He was faced with the choice of joining a company as a programmmer of the same type of closed-license (i.e. proprietary) programs that he thought were causing the problem, quitting programming, or breaking the law. Rather than accept these options, however, he set out to build a way around the impasse: he decided that if he wanted to be able to write and share software with fellow programmers, then he would have to secure his independence by creating his own computer system. He began planning an operating system, and all the tools that he needed and wanted to use, which would be completely free of legal restrictions and open to modification, piece by piece. Only in this way could he create a community without fear that it would suffer the fate of its predecesor. In 1984 he took the further practical step of resigning from his job so that his employer could not claim ownership of his work.[Id]
The task he had set himself was, by anyone's definition, gargantuan, but he had a plan. He would build on the foundation of existing public domain software for Unix, and a Unix-like system would be his goal. The first piece of the puzzle which he began putting together was a Swiss Army Knife
of text editors called Emacs .
By early 1985, he had early versions of it ready to share with others.
It is important to note that Stallman's personal story prefigured the interest in free and open software shown by the commercial world in the last few years (late 90's). While he wanted the right to collaborate and to create a legal and free community of collaborators, he was in no way against the programmer's right (including his own) to be paid for work. "Freedom" for him was about intellectual rights, not price. After quitting his job, he obviously needed to support himself, and he wanted to find a way to make money for his work on free software. He uploaded Emacs to an ftp server (so others could download it if they wanted to), but, as he tells it, many people still had no Internet access and therefore could not make use of the ftp server. His solution was to spread the word that he would mail the program to anyone who sent him $150 --this price was to cover his time and mailing costs, not the software itself, which was "free." Thus he began to solve his money problem while being able to stick to his ideals. [Id]
Copyleft and the GPL
Once Stallman released his software, of course, he was faced with another problem: how to keep it free? That is, once he released it, who or what was to prevent someone else from incorporating it into a proprietary project and protecting it by a non-discolosure agreement? The answer was simple: nothing. There were precedents for projects that started free, but ended up as parts of proprietary (not free) programs. For example, the X Window system which had been developed at MIT had been released in the public domain; Unix companies, had then incorporated the system into their own software packages in formats only their machines could read (binary) and covered them with their non-disclosure agreements. Such realities forced
Stallman to see the necessity of ensuring not only that the software, but also any changes made to it, remained free as successive users and companies got a hold of it. What he came up with, was "copyleft," a term invented by his friend, Don Hopkins. [Id]
The central idea of copyleft is that we give everyone permission to run the program, copy the program, modify the program, and distribute modified versions--but not permission to add restrictions of their own. Thus, the crucial freedoms that define "free software" are guaranteed to
everyone who has a copy; they become inalienable rights. [Id ]
The specific implementation of copyleft was dubbed the GPL, or General Public License. This license (and its many variants) codify copyleft. You can get the latest version from gnu.org at http://www.fsf.org/copyleft/gpl.html . Although it contains a preamble (explanation), 12 terms and an example of how it should be employed, the GPL boils down to a formalization of copyleft, or a recapitulation of the steps Stallman had to take to keep software free:
- First the license allows the software's creator to copyright it.
- Secondly, it expressly allows copying, distribution and modification of the program at no charge or for costs, e.g.:
- "You may copy and distribute verbatim copies...."
- "You may modify your copy or copies ...." and distribute it.
- You must include notice of who changed what and when
- You must include the license and the code in machine readable
- Third, it forbids successive recipients of the software from denying those same rights to others ("You may not impose any further restrictions ....") (copyleft)
- Fourth, it explicitly denies any warranty for the software.
Stallman's own commentary on the license is contained in his Free
Software Definition. He summarizes what the license is meant to do as
Free software is a matter of the users' freedom to run, copy,distribute, study, change and improve the software. More precisely, it refers to four kinds of freedom, for the users of the software:
- The freedom to run the program, for any purpose (freedom 0).
- The freedom to study how the program works, and adapt it to your needs (freedom 1).
Access to the source code is a precondition for this.
- The freedom to redistribute copies so you can help your neighbor (freedom 2).
- The freedom to improve the program, and release your improvements to the public, so that the whole community benefits. (freedom 3). Access to the source code is a precondition for this.
A program is free software if users have all of these freedoms. [http://www.gnu.org/philosophy/free-sw.html Stallman, Richard: " The Free Software Definition" ]
The result is a unique document, the GPL, which is a hybrid copyright-contract and philosophical tract. At this writing, it has not been challenged in court, but the FSF retains legal counsel and does have occasional need to negotiate with those who knowingly or not transgress the terms of the GPL. Speculation abounds about the potential for a large company to ignore it and under what circumstances the FSF would risk going to court to defend it. In the meantime, the document has gained a sort of moral force due the respect with which it has been treated to date, by friend and foe alike.
So, although Richard Stallman set out to recreate his community, he seems to have been driven to create a safe environment for it first. The GPL is that environment and the organization that watches over the GPL is the Free Software Foundation which Stallman also created. The FSF is "a tax-exempt charity for free software development" and, in addition to dealing with licensing issues, took over the distribution and sale of free software, including Emacs. Once again, Stallman's story prefigured the way businesses would later form based on selling and supporting users of free software.
Today, the Free Software Foundation continues to encourage the development of alternatives to proprietary software of all kinds and acts as a guide to those who would write it or support it. Furthermore, as we will see later, Stallman and the FSF did develop a great deal of software which was of use to another programmer who wanted to build a free operating system, Linus Torvalds. When Mr. Torvalds' project reached the stage that it
could be used develop other projects, the FSF began using it. [http://www.gnu.org/gnu/linux-and-gnu.html Stallman, Richard: " Linux and the GNU
Project "] He is characteristically generous and honest in
accepting Stallman's hybrid naming scheme. [Torvalds, Linux and
Diamond, David: Just for Fun: The Story of an Accidental Revolutionary:
Texere, New York, 2001, P.95] [Karl Pinc notes that the purpose of
having a license is two-fold, to restrict the user's rights and to
protect its creator from liability.]
Copyright © 2001-20012,
This article is freely distributable under the terms of the Open Publication License