Source code is the version of software (usually an application program or an operating system) as it is originally written (i.e., typed into a computer) by a human in plain text (i.e., human readable alphanumeric characters). Source code can be written in any of the several thousand programming languages in existence, but it is usually written in one of the dozen or so of the most popular (particularly C, C++ and Java). Without source code it is very difficult to study, modify and improve software.
Most open source software is also free software. Free software is software for which everyone has the right not only to inspect and study the source code but also to use it for any desired purpose without monetary or other restrictions. These other purposes include making as many copies as desired, installing on as many computers as desired, modifying (including extending) in any desired way, and redistributing in its original or modified form.
Because the terms open source software and free software typically describe the same programs, the two terms are commonly used interchangeably. And it is often said that the difference between the advocates of each of these terms is merely philosophical rather than practical and that the difference between the two terms themselves is mainly a matter of marketing rather than substance.
However, recent events have emphasized that there is actually a very practical difference between the two concepts. It is that, whereas free software is always also open source, open source software does not necessarily have to be free software. That is, software can be open source without granting its users the additional freedoms that free software guarantees.
One of the most noteworthy such events was the November 2, 2006 agreement between Microsoft Corporation and Novell, Inc. and the statements by Microsoft that soon followed it. These statements included the comments by Microsoft CEO Steve Ballmer that his company might sue users of Linux, other than those of Novell's SUSE Linux, for what he claims are violations of Microsoft's patents1.
Were Microsoft to truly have the ability to successfully sue users of Linux for alleged violations of its intellectual property, this would mean that Linux would no longer be free software, because users would not be free to use it in any way that they want without monetary or other restrictions2. However, it would still be open source software, since the source code would be freely available, at least to read and study.
A different type of situation that illustrates the difference between open source software and free software is tivoization. This term is derived from the product name TiVo, which is essentially a computer that is optimized for recording television shows. TiVo uses a specific version of Linux and makes the source code for that version available as is required by the GNU General Public License (GPL), under which Linux is released and which is by far the most commonly used free software license. Thus TiVo is clearly in compliance with the condition for being open source software.
However, the system has been designed so that it will not function if the Linux source code has been modified, including updating the kernel (i.e., the core of the operating system) or installing a different version. While also not in violation of the current version of the GPL (GPLv2), it is in violation of the spirit of free software, according to those in the free software movement, as it deprives users of the important freedom to modify their software, including improving and updating it, and to freely use such modified software. Moreover, from a practical point of view, the ability to modify and improve free software has been a critical factor in its rapid improvement in performance and usability.
There is concern by advocates of free software that much such software could be downgraded to mere open source software in the future if patent restrictions and tivoization become widespread. This could occur because of the strong monopolistic interests that favor patent restrictions and tivoization and in the absence of changes in free software licenses to prohibit such practices3.
The advocates of open source, however, have not generally considered tivoization to be a problem. It is their view that hardware vendors should have the freedom to do whatever they want with open source software as long as they provide the source code for it and that software licenses should not be used to enforce rules for hardware4.
The term open source was coined in 1997 or early 1998 as a substitute for the term free software because the latter was thought to imply something that was of inferior quality, and therefore not suitable for corporate use, due to its being available at no monetary cost. It was also seen as a way of avoiding confusion with freeware and shareware.
Freeware is software that is available at no monetary cost but for which the source code is not made freely available. Shareware is software that is distributed without a charge but whose license requests or requires a fee for use, often after a free trial period. These terms were commonly used in the media by writers who apparently were not aware that there was a major difference between them and free software. Although popular with hobbyists, neither freeware nor shareware implied any level of quality or reliability, and thus were generally not suitable for enterprise use.
However, the situation has changed in recent years, as freeware and shareware have become less prominent and the stature of free software has risen. The latter is a result of the great success of software packages such as the Apache web server (which now claims to host more than 70 percent of the web sites on the Internet), the Firefox web browser and Linux, and it is also a result of the growing disenchantment with some of the most widely used proprietary (i.e., commercial) software. Thus, the perceived importance of using the term open source rather than free software has diminished.
Among the proponents of non-commercial software, those emphasizing its advantages for enterprise use tend to favor the term open source, while those placing an equal or greater emphasis on the moral or ideological aspects prefer the term free software. Fortunately, despite this difference, members of both groups can generally agree regarding practical policies and cooperate on specific projects. The notable exception has been the GPLv3, although this may change particularly as a result of Microsoft's recent threats against Linux.
Sometimes the terms free/open source software and FOSS are used in an attempt to refer to free software and emphasize that it is free not only in a monetary sense. However, the use of such terms might not be a good idea for several reasons, including that they can be redundant and because they fail to clarify the very important difference between the two concepts. However, it may be just as misleading to use the term open source software when what is really meant is free software.
2Fortunately, such ability to restrict the freedom of users of Linux appears to be unlikely for a number of reasons. Among them is that the possibility that Microsoft is just making empty threats out of desperation as the rising popularity of free software continues to slow the growth of sales of its products. No evidence of any patent violations by Linux has been demonstrated by Microsoft or anyone else to date. Also, Microsoft would likely be reluctant to tangle with IBM, which is one of Linux's biggest supporters and which owns a much larger and higher quality patent collection than Microsoft. It is much more likely that Microsoft has been violating the patents of IBM and others. In addition, there is little if any legal precedent for suing users of products which contain alleged patent violations.
One of the main features of the new version of the GPL (GPLv3), which is currently in final draft form, is the addition of clauses that will make more difficult for large software vendors to attempt to take away freedoms from users of free software and thereby downgrade it into mere open source software.
3Leading the battle against tivoization is Richard Stallman, the founder of the free software movement and the developer of the GPL.
4The most notable of those who disagree with this view is Linus Torvalds, the founder and spiritual leader of Linux, who says that software vendors do not have any right to make any demands about the hardware on which their products run. Some advocates of this view believe that market forces may be sufficient to prevent widespread tivoization.
Created May 27, 2006. Updated January 3, 2007.