The Birth of Free Software
In the early 1980s, Richard M. Stallman (RMS) was working at MIT’s artificial intelligence lab. The lab had just bought a new printer from Xerox, and had a few problems with it. With the old printer, they would have been able to fix the driver code themselves, but the new printer didn’t come with source code.
This situation led RMS to found the Free Software Foundation (FSF), an organization dedicated to producing software that granted users four basic freedoms:
- The freedom to run the program, for any purpose.
- The freedom to study how the program works, and adapt it to your needs.
- The freedom to redistribute copies so you can help your neighbor.
- The freedom to improve the program, and release your improvements to the public, so that the whole community benefits.
Let’s examine the Four Freedoms in a bit more detail:
- The freedom to run the program, for any purpose (freedom 0).The first freedom is numbered zero because the idea is that it should be implicit in any software license, Free or otherwise. In fact, however, since the time when the four freedoms were written, freedom 0 has ceased to be the case; some proprietary software comes with a "for noncommercial use only" license, which violates the zeroth freedom.
- The freedom to study how the program works, and adapt it to your needs (freedom 1). The second freedom is perhaps the most commonly discussed. It turns out that most software comes with this freedom. The vast majority of software is written for a specific purpose, either in-house or by contractors, so the customer is always given the ability to adapt it. To a limited extent, this freedom is even granted by some closed-source, proprietary programs that expose scripting and plug-in interfaces, allowing users to extend the functionality. For this freedom to be completely granted, however, a copy of the source code is required. Even with a scripting interface, some adaptations are likely to be impossible.
- The freedom to redistribute copies so you can help your neighbor (freedom 2). The third freedom is the one that most off-the-shelf software violates. This freedom is particularly useful for interoperability. If someone sends you a Microsoft Word document, unless you have a copy of Word you might have problems opening the document. If the sender could send you a copy of Word along with the document, that option would work better. Open Standards help allay this problem, but if you have a particular niche need such standards may not be expressive enough to capture it.
- The freedom to improve the program, and release your improvements to the public, so that the whole community benefits (freedom 3). The final freedom is an extension of freedom 2. If you fix a bug or add a feature to a program, this work can benefit you alone, or all users of the software. If every company that uses a piece of software pays a developer to work on it for a few hours a week, to add the features that the company needs (remember freedom 1?), the total number of improvements in that program can be huge. If everyone releases their changes, the program as a whole can improve a lot faster, since there is less duplication of effort.
The FSF’s GNU project was not the first software to respect these freedoms; 1BSD, released in 1977, had a license that did so. Unlike the GNU project’s General Public License (GPL), however, BSD code could be integrated into non-Free software. The GPL introduced the concept of "copyleft": Code licensed under the GPL, and all derived works of that code, would always respect the Four Freedoms.