1.1. A Short History of Free Unix Software
This history is simplified and biased toward the most important elements in a Linux system. For longer, more even coverage, you can read an entire book, A Quarter Century of UNIX [Salus, 1994].
In the earliest days of computing, software was seen as little more than a feature of the hardware. It was the hardware that people were trying to sell, so companies gave away the software with their systems. Enhancements, new algorithms, and new ideas flowed freely among students, professors, and corporate researchers.
It did not take long for companies to recognize the value of software as intellectual property. They began enforcing copyrights on their software technologies and restricting distribution of their source code and binaries. The innovations that had been seen as public property became fiercely protected corporate assets, and the culture of computer software development changed.
Richard Stallman, at the Massachusetts Institute of Technology (MIT), did not want any part of a world in which software innovation was controlled by corporate ambitions. His answer to this development was to found the Free Software Foundation (FSF). The goal of the FSF is to encourage the development and use of freely redistributable software.
The use of the word free in this context has created great confusion, however. Richard Stallman meant free as in freedom, not free as in zero cost. He strongly believes that software and its associated documentation should be available with source code, with no restrictions placed on additional redistribution. More recently, others coined the term Open Source in an attempt to describe the same goals, without the confusion over the word free. The terms Open Source and Free Software are generally treated synonymously.
To promote his ideal, Richard Stallman, with help from others, created the General Public License (GPL). This license has been so influential that GPL has entered the developers' jargon lexicon as a verb; to apply the terms of the GPL to software you write is to GPL it.
The GPL has three major points:
Anyone who receives GPLed software has the right to obtain the source code to the software at no additional charge (beyond the cost of delivery).
Any software derived from GPLed software must retain the GPL as its license terms for redistribution.
Anyone in possession of GPLed software has the right to redistribute that software under terms that do not conflict with the GPL.
An important point to notice about these licensing terms is that they do not mention price (except that source is not allowed to be an extra-cost item). GPLed software may be sold to customers at any price. However, those customers then have the right to redistribute the software, including the source code, as they please. With the advent of the Internet, this right has the effect of keeping the price of GPLed software low generally zero while still allowing companies to sell GPLed software and services, such as support, designed to complement the software.
The part of the GPL that generates the most controversy is the second point: that software derived from GPLed software also must be GPLed. Although detractors refer to the GPL as a virus because of this clause, supporters insist that this clause is one of the GPL's greatest strengths. It prevents companies from taking GPLed software, adding features, and turning the result into a proprietary package.
The major project the FSF sponsors is the GNU's Not Unix (GNU) project, whose goal is to create a freely distributable Unix-like operating system. There was little high-quality freely distributable software available for the GNU project when it was started, so project contributors began by creating the applications and tools for the system rather than the operating system itself. As the GPL was also produced by the FSF, many of the key components of the GNU operating system are GPLed, but through the years the GNU project has adopted many other software packages, such as the X Window System, the TEX typesetting system, and the Perl language, that are freely redistributable under other licenses.
Several major packages, and a multitude of minor ones, have been produced as a result of the GNU project. Major ones include the Emacs editor, the GNU C library, the GNU Compiler Collection (gcc, which originally stood for GNU C Compiler before C++ was added), the bash shell, and gawk (GNU's awk). Minor ones include the high-quality shell utilities and text-manipulation programs that users expect to find on a Unix system.