Many software programs must be purchased from a vendor. The purchase price entitles the buyer to the benefits of the functional software. The program code that makes these performance features possible (the source code), however, usually remains known only to the company that designed the software. Open source software runs counter to this philosophy. As its name implies, in open source software, the source code is freely available to all users. In addition, users can modify the code and pass these improvements on to others. The license to operate the program that the code controls is also shared free of charge.
The result is that open source software is a constantly changing and usually improving public document. Examples of open-source software are Unix (trademarked as UNIX), Perl, Linux, and FreeBSD (Berkeley Source Distribution).
Proprietary software such as word processing and spreadsheet packages available from companies such as Microsoft and Corel remain unaltered until the manufacturer releases a new version of the software for sale. Re-programming and correcting difficulties occur in house. If a released program is faulty, remediative repair is typically accomplished by the downloading of repair patches from a company’s Web site.
In contrast, open-source software is constantly evolving. Users identify strengths and shortcomings of the software’s code and program performance, modify the code, and redistribute the software, primarily on the Internet. The entire development process, including the identification of defects in the software, is a public process. The process of eliminating problems and improving the software happens at a much quicker rate in an open-source environment, as the information is shared throughout the open-source community, and does not pass through the developmental hierarchies of a company.
In the 1960s, when computers were far less easy to operate, users tended to be software developers, and software tended to be supplied with the source code included. Beginning in the 1970s, however, a proprietary atmosphere began to dominate, and source codes became the domain of the commercial software developer.
A cadre of software developers, such as Richard Stallman, continued to advocate for an open software development community. Under Stallman’s direction, the Free Software Foundation was created in 1983. Stallman was also the driving force behind The GNU Project (GNU is a recursive acronym for GNU’s not Unix). The GNU Project, consisting of libraries, kernel, utilities, compilers, and applications, was one of the first initiatives to challenge the emerging trend of proprietary software. As of 2006, GNU is still being developed and, so far, has not been released as a complete system.
Another major impetus for open-source software came in 1991, when Finnish-American software engineer Linus Benedict Torvalds (1969–) publicly released his first version of an open-source version of the Unix operating system (now called Linux). In 1998, the Open-Source Initiative (OSI) was formed, stimulated by the announced public distribution of the formerly proprietary Netscape Internet browser. As of November 2006, Linus has not been officially adopted as part of GNU, although it is generally considered in association with the GNU system.
Open-source software is closely allied to open communications protocols, which allows many different types of computer equipment to run the software and communicate with one another. Although the development of open-source software is communal and virtually unrestricted, often there is some sort of central authority that collects and combines the changes made by users. For example, Linus Torvalds still fulfills this role for Linux software.
A number of companies have formed to market open source software. Companies such as Red Hat and Corel supply functional add-ons to open-source software. Despite its freely available nature, such opportunities have made open-source software economically viable. Open-source software such as Linux can be packaged into a convenient and easy to install package, with programming support available. This tact has proven so attractive that consumers will often pay to acquire the convenience surrounding a free piece of software.
See also Computer software.