While many consider the concept of free software (or open source) something that surfaced with the GNU/Linux operating system, the source can be traced back to early use in universities and research labs where source was released for others to use, modify, and hopefully improve. The goal of open source is to make source code available to others so that they can identify bugs , create new features, and generally evolve the software. Free software can promote greater reliability and quality through increased use of the software, in addition to greater visibility into how it works.
In this chapter, well discuss the free software development models and introduce some of the licenses that are used to release open source. To keep it fair and balanced, well also discuss some of the common problems with free software.
Before we discuss free software, lets first cover one of the many religious debates that exist. Open source was a term coined by Eric Raymond with the creation of the Open Source Initiative (OSI) in 1997. The term free software was coined by Richard Stallman with the release of the GNU Project in 1984 and the founding of the Free Software Foundation in 1985.
While the two terms appear to be similar, and most open source software is released under the GPL (also created by Stallman), the debate is over the motivation for the release of open software. Richard Stallman defines it best: Open source is a development methodology; free software is a social movement [Stallman04]. Raymond has also been criticized by many for hijacking the free software movement for his own self-promotion (13 years after it was originally created) [Raymond04].
Free software (including open source) is simply a set of useful source code that is licensed under a free software license such as the GNU General Public License (or GPL). Popular Web sites such as SourceForge and Freshmeat provide a means to make free software available to the Internet community. In addition to providing a means for others to find free software, these sites also serve as a meeting place for free software developers. Developers can create new free software projects or join existing projects. This is the essence of free software: developers coming together to build software that is both useful and free to the wider community.
The fact that source code is available means that if something doesnt work the way it should, it can be modified to suit the needs of others. The availability of source also solves the myth of proprietary software, called security through obscurity. Companies believe that since their software isnt provided in source form, its more secure because it cant be opened to identify exploits. In fact, what happens in free software is that since its open, exploits are found and fixed faster, making them less likely to be exploited as the distribution of the software widens. Proprietary software is quickly proving that obscurity does not provide security.
As free software gains in popularity, so does the desire of others who want to help. Free software gains not only in development support but also in documentation, testing, and advertising (typically word-of-mouth).
Free software has gained so much popularity that even large companies contribute source code to the community. In 2003, IBM donated source code under the Common Public License (in addition to $40 million) to the Eclipse Consortium to help in the development of the Visual Editor Project [ zdnet.com 03]. IBM has been very supportive of open source and has stated that it is one of the key factors fueling software discovery and innovation around the world [ ibm.com 04].