The most common meaning for the term free software is programs whose source code is freely available to anyone to use for any purpose, including studying, copying, modifying, extending and giving away.
Source code (also referred to as just code) is the version of software as it is originally written (i.e., typed into a computer) by a human in plain text (i.e., human readable alphanumeric characters) using a programming language (e.g., C, C++ or Java). Source code is converted into executable (i.e., compiled or runnable) programs through the use of specialized programs called compilers.
Freely available means that there is no requirement for a monetary payment nor is there any other obstacle for anyone wanting to obtain the source code (except the lack of a computer and an Internet connection). The code is supplied on CDROMs or other media with the executable program and/or it is made available for downloading from the Internet.
Although the source code must be made freely available in all cases, there is no requirement that the executable programs themselves be freely available. In fact, part of the freedom of free software is that anyone has the right to sell an executable program released under a free software license at any desired price. However, such programs are typically also made available for free (usually as a free download from the Internet).
This meaning of free software is basically the same as the most common meaning of the term open source software. Both are very different from proprietary software (also commonly called commercial software), which is software that is controlled by a company or an individual. The source code for proprietary software is usually not made publicly available, or, if it is, there are generally severe restrictions on its use. There are also usually major restrictions on the use of the executable programs, except sometimes in the case of freeware.
Freeware is proprietary software that is available free of charge in executable form. However, in most cases it is closed source (i.e., the source code is kept secret), and there are often restrictions on the use of the executable version. Among the best known examples of freeware are Adobe's Acrobat Reader, which is used for reading (but not writing or modifying) PDF (portable document format) files and Microsoft's Internet Explorer web browser.
Free Software and Public Domain Software
Free software is also very different from public domain software. Public domain refers to the total absence of copyright protection. Software and other creative works enter the public domain only if the author deliberately surrenders the copyright or if the copyright has expired due to the passage of a legally stipulated period of time. If something is in the public domain, then anyone is permitted copy it or use it in any way they desire.
A copyright is a designation granted by a government that provides the author of a creative work (e.g., a musical composition, painting, literary work, movie or software) with the exclusive, but transferable, right to copy or perform that work. Its purpose is to provide a financial incentive for producing such works in order to benefit society as a whole. Copyright does not protect facts, discoveries, ideas, systems or methods of operation, although it can protect the way they are expressed.
Free software, as the term is usually used, and public domain software resemble each other in that both are usually free both in a monetary sense and with regard to use. However, there is a fundamental difference: free software retains its copyright and is released under a license, whereas there is no license for public domain software because there is no owner. The purpose of the retention of copyright and the use of the license is, in contrast to proprietary software, not to restrict users' freedoms with regard to the software, but rather to maximize them.
Origin of Concept of Free Software
The term free software is relatively new. However, free software itself is not. It is as old as computers themselves. Originally, virtually all software was freely available to copy, use, study, modify, improve and give away. Computer software was almost universally regarded as being akin to mathematics, i.e., something that anybody is permitted to use in any amount, with any desired modifications and for whatever purpose desired. Advances in mathematics cannot be copyrighted or patented, and they become immediately available for everyone to use for the advancement of civilization. Thus, there is no term free mathematics.
The analogy is also frequently made with recipes for cooking food. That is, there are no legal restrictions on anyone using, studying, copying, modifying, improving or publishing any recipe. The exact wording of a recipe as it is written by its author is protected under copyright law, but the information itself (i.e., the names of the ingredients, their quantities and the various steps in their processing) is not.
In fact, it seemed so obvious that the situation with regard to software resembled that of mathematics or recipes that terminology such as free software, freeware and open source software did not exist for many years.
However, the situation suddenly became reversed in the early 1980s. At that time a new generation of computers with proprietary operating systems was introduced, and their vendors required that users sign non-disclosure statements in order to obtain copies of the operating systems. Whereas it had previously been the norm to assist colleagues and freely share ideas and software, such cooperation suddenly became forbidden and was made a crime. Naturally, computer professionals had a difficult time adjusting to what seemed to them to be a bizarre turn of events.
The takeover of software by corporations continued at a rapid pace, and free software was becoming an endangered species. The loss of the freedom to study, improve and give away source code as well as the sudden requirement for large payments to use the software was extremely frustrating for researchers and developers, particularly for those whose years of openly done work became the core of much of the new, secret corporate software. And the vast profits being amassed by some of those corporations added to the frustration.
This led to the development of the free software movement by Richard Stallman. In 1983 Stallman announced his GNU (a recursive acronym for GNU's Not Unix) project for creating a completely free and high quality operating system that would be compatible with UNIX. Soon thereafter, he quit his job at the Massachusetts Institute of Technology (MIT) and established the non-profit Free Software Foundation (FSF) to employ free software programmers and provide a legal framework for the free software community.
In 1989 Stallman invented the concept of copyleft, which is aimed specifically at preventing any recurrence of the type of takeover of free software that had occurred earlier in that decade. Two years later Stallman, together with Eben Moglen, the pro bono general counsel for the FSF, completed development of a license based on this concept, the GNU General Public License (GPL).
By then, much of the GNU operating system had been completed, with the notable exception of a kernel (i.e., the core of the operating system). In 1991, this final gap was filled by Linux, a kernel which was written independently of the GNU project by Linus Torvalds, then a computer science student in Finland, but which made use of GNU development tools and system libraries.
The GPL subsequently became by far the most widely used license for free software. In fact, in 2004 there were more than 17,000 programs in various stages of development that use the GPL, and much of the most popular software is released under this license, including the Linux kernel itself.
Other Free Software Licenses
There are a number of other free software licenses, and some of them reflect differences in the philosophy of what is meant by free. Among the most popular are the BSD, MIT and Artistic licenses, which differ from the GPL in that they are not copyleft licenses. That is, they do not require that the source code be included with redistributions of modified versions of programs that use such licenses. Advocates of these extremely short and simple licenses contend that they provide even greater freedom than the GPL because they grant the freedom for source code to be incorporated into proprietary software (which usually keeps its source code secret).
Advocates of copyleft respond by pointing out that there is no such thing as absolute freedom. Even in the most democratic of societies some minimal rules and obligations are necessary in order to maximize and preserve freedom for the society as a whole. Likewise, some minimal restrictions are necessary for free software, namely the GPL requirement that the source code be made freely available with all redistributions of modified or derived works, in order to keep such software free.
Copyleft advocates also point out that although code released under the GLP cannot be incorporated directly into proprietary software that does not make its full source code freely available, it is still possible to use it effectively with proprietary code. In particular, it can be kept in separate files from the proprietary executable files and linked via dynamic linking, which allows two separate bodies of code to communicate with each other only as needed.
GPL advocates also respond to criticism made by some major producers of proprietary software that "the GPL is viral in nature and destroys intellectual property" by pointing out that (1) there are many instances in which software developers and vendors have been able to successfully use GPL-licensed software together with proprietary software and that (2) an increasing number of companies are making substantial profits from GPL-licensed software.
Perhaps it will become easier to provide a better answer to the debate among free software advocates over the copyleft provision with the passage of time and the accumulation of evidence regarding the two types of licenses. There is also a view that, regardless of the extent to which each of these approaches proves to be best, another important aspect of the overall free software picture is the availability of the variety in license types, as well as the ability of developers to write new free (and non-free) licenses of their own. A somewhat related view is that the more successful any type of license is in promoting freedom for software, the greater its usage will become; that is, there is a sort of self-adjusting mechanism inherent in the free software ecology.
Free Software Versus Open Source Software
Although the terms free software and open source software are usually used more or less interchangeably, there are some subtle differences. They arise from differences in their histories, in the philosophies of the groups promoting them and in their secondary meanings.
For example, the term open source is of much more recent origin. It was coined in 1997 with the intention of replacing the term free software in order to avoid the negative connotations that are sometimes associated with the word free and thereby make it more attractive to corporations. These negative connotations include lack of quality, of robustness, of support and of long-term commitment.
In general, there is a tendency for advocates of the term term free software to emphasize the ideological aspects of software, including the ethical or moral aspects, and they view technical excellence as both a desirable and an unavoidable by-product of their ethical standards. Advocates of the term open source, in contrast, tend to place more emphasis on the business advantages of the software. They regard technical excellence as the primary goal, and sharing of the source code is seen as a means of achieving that goal. They prefer the term open source as a way of avoiding both the negative connotations and the ambiguity of the English word free (i.e., free price versus freedom of use).
However, although the use of the term open source clearly avoids the problem of the ambiguity of the word free, it introduces another ambiguity. It is the distinction between programs that provide the source code and give users the freedom to use it for any desired purpose and programs that provide the source code but place restrictions on its use (e.g., do not allow it to be redistributed). Software with such restrictions is not free software as the term is most commonly used.
The terms liberated software and free open source software (FOSS) have been proposed as a means of overcoming the problems with the terms free software and open source software. However, although used occasionally, they have problems of their own and and it thus appears unlikely that they will become replacements.
Created January 31, 2005. Updated July 4, 2006.