Most software that you buy or download only comes in the compiled ready-to-run version. Compiled means that the actual program code that the developer created, known as the source code, has run through a special program called a compiler that translates the source code into a form that the computer can understand (see How C Programming Works for details on compilers). It is extremely difficult to modify the compiled version of most applications and nearly impossible to see exactly how the developer created different parts of the program. Most commercial software manufacturers see this as an advantage that keeps other companies from copying their code and using it in a competing product. It also gives them control over the quality and features found in a particular product.
Open source software is at the opposite end of the spectrum. The source code is included with the compiled version and modification or customization is actually encouraged. The software developers who support the open source concept believe that by allowing anyone who's interested to modify the source code, the application will be more useful and error-free over the long term.
To be considered as open source software by the software development industry, certain criteria must be met:
- The program must be freely distributed (It can be part of a package that is sold though, such as Red Hat has done with Linux in the example below).
- Source code must be included.
- Anyone must be allowed to modify the source code.
- Modified versions can be redistributed.
- The license must not require the exclusion of other software or interfere with the operation of other software.
Let's take a look at a real world example of open source software. In 1991, Linus Torvalds, a student at the University of Helsinki in Finland, developed a new operating system based on Minix, a derivative of Unix, which he dubbed Linux. Torvalds released version 0.02 of Linux under the GNU General Public License, which provides a good legal definition of open source software. A lot of people around the world downloaded Linux and began working with it. Many of these users were programmers in their own right and made modifications to the source code that Torvalds had included. Over the next three years, Torvalds received these modified versions from the other programmers and incorporated many of the changes into the baseline version and released Linux version 1.0 in 1994.
A common concern for end-users who wish to use open source software is the lack of a warranty and technical support. Because the software's license encourages modification and customization, it is nearly impossible to support. This is why Red Hat Software, founded in 1994, created the "Official Red Hat Linux" and is able to sell this normally "free" software. The main value that Red Hat adds to the package is a warranty and technical support. For most businesses, the assurance of technical support has been a key factor in the decision to buy Linux instead of simply downloading it for free. In addition to Red Hat, there are several other companies that have packaged Linux, usually with additional software, for resale.
Besides Linux, Mozilla (Netscape browser core), Apache (Web server), PERL (Web scripting language) and PNG (graphics file format) are all examples of very popular software that is based on open source.
Here are some interesting links: