DoD Q&A on Use of Open Source Software
5 August 2002 (Version 1.6)
Disclaimer
. This Q&A attempts to clarify the terms and conditions generally used to describe software where the source code is available for the public’s use. There are two categories of such software: open source and public domain. DOD believes the following definitions and explanations are based upon current, commonly held understandings by the software community of the meaning of these terms and conditions. However, these meanings are not universally accepted and many of them are still evolving. Also, this Q&A is not intended to be technically precise, rather it is intended to facilitate the intelligent discussion of the various issues involving open source software.Q1: What is "open source software"?
A1: Before defining this phrase, we need to first discuss source code and binary code. Source code is ordinary text that looks like a precisely structured and mathematical version of English. Programmers use source code to create, repair, and extend software, since it is easier to read and understand than lower level computer languages. Binary code is source code that has been translated into a machine-readable form consisting of only 2 digits, either a 0 or a 1. The software that people acquire (e.g., desktop Personal Computer software, etc.) is almost always binary code. If there is a problem with the software, it is difficult for even knowledgeable users to change or repair binary code. Instead, users must usually ask the owner of the software, who has access to the source code, to fix or extend it for them. In a nutshell, open source software deals with whether and how source code should be made available to users of binary software. This can be a delicate issue, since source code usually represents a substantial intellectual and financial investment by the software owner.
There are two accepted definitions of open source software. The definition most used by the general public is software where the source code is publicly available and others may modify and redistribute it. This definition encompasses all software where the source code is accessible. In contrast, many members of the software community use this phrase more restrictively. Under this second definition, "open source software" refers to an approach that aggressively seeks to make source code available to future, as well as current users of software. This is accomplished by software licenses that require users who redistribute open source software, to provide all the source code, even if the user modified the original software. Also, open source licenses go well beyond simply ensuring distribution of both the original and modified source code. Specifically, open source licenses give all software users the rights to:
The phrase "open source" was first coined by a group of Internet and Unix community leaders to describe what had previously been called "free software." These leaders felt that the earlier term "free" impeded acceptance of open source software by creating inaccurate impressions that such software could not be sold, or that it was of inferior quality. In this document, either of the above two definitions for "open source software" may be used. The context will determine whether the first or second definition is appropriate.
Open source software is further complicated by the fact that there are many different licenses that meet the strict definition of the phrase. Each of these licenses has its own set of terms and conditions, and understanding how they differ can be a daunting task. The single most important open source license is the GNU General Public License (GPL), which is used in more open source software than any other open source license. Other important open source licenses include the GNU Lesser General Public License (LGPL), the X License, the Berkeley System Distribution (BSD) License, the Apache License, the Artistic License, the Netscape Public License, and the Mozilla Public License.
Q2: What is proprietary or closed software?
A2: Proprietary or closed software, in contrast with open source, is licensed to the user by the owner, and grants very few rights beyond mere use. Occasionally, other rights are granted, but further distribution is almost always forbidden. Proprietary software source code is usually not publicly available. Rather than being developed by an informal community, proprietary software is generally privately developed and intended to produce income for the company or individuals that own it. Like open source software, proprietary software also comes in a variety of license formats. When proprietary software is protected by a patent, the source code is published, but the software owner may exclude others from using it without a license. Proprietary software is sometimes referred to as closed software to contrast it with open source software.
Q3: What is free software?
A3: Free software is a specific type of open source software. It is the "ancestral" form of open source software, since free software licenses were the very first open source licenses. It should be noted that the word "free" in "free software" does not refer to the cost of the software (it can be sold at market prices), but rather to a set of four freedoms granted to all users of free software. According to the Free Software Foundation (FSF), which defines and controls the use of the phrase "free software" (see
http://www.gnu.org/philosophy/free-sw.html), free software requires that free software users be granted freedoms to:In the case of the forth freedom, users of free software always have the right to refrain from releasing changes or improvements to the public. However, if they release the modified software to the public, they must also make the corresponding source code public. These freedoms are captured in the licensing rules of the GNU General Public License (GPL), which is described in Q4. While open source and free software are very closely linked in terms of underlying principles, the FSF differentiates free software from open source software (
http://www.gnu.org/philosophy/free-software-for-freedom.html). The FSF does not agree with being "lumped in" under the more recent and somewhat broader open source approach to ensuring access to source code.Q4: What is the GNU General Public License (GPL), and how does it relate to open source?
A4: The GNU GPL is a broadly adopted licensing approach encouraging the use of open source software and the expansion of its capability via the user community. In addition to open source rights, software under the GPL imposes an obligation upon software developers. If a software developer fixes or extends source code provided under a GPL license (GPL-ed code) and distributes the modified software program, the developer must also include the source code for all fixes or extensions. The open source community refers to this obligation as a "copyleft" requirement. According to GNU, proprietary software developers use copyright to restrict a user’s right to use software, whereas GNU uses copyright to guarantee users the freedom to redistribute and change GNU software. That is why it reverses the term, changing copyright into copyleft.
Q5: What is public domain software and how does it differ from open source?
A5: Public domain software is software whose source code is available to the public, and which lacks any license or copyright restrictions on how it can be used. Public domain software is also free of cost, and anyone may copy and distribute it. Public domain software is generally considered by the public to be open source software because the availability of its source code allows it to be modified, repaired, or extended by any user.
The most important difference between public domain software and the more restrictive open source software is that since public domain software lacks license clauses that guarantee the rights of later users to access the source code, public domain software can be "captured" by proprietary software. In this sense, capture means incorporated into and hidden from the public. While capture does not affect the public domain status of the original source code, it does have two important practical consequences. The first consequence is that public domain software is more likely to be used in proprietary software than the more restrictive open source software. The second consequence is that the original public domain software is likely to fall into disuse over time, since people tend to migrate to the improved proprietary software. Both these consequences are much less likely for open source software than for public domain software, since open source licenses generally try to prevent capture of the original source code.
There is an important historical link between public domain software and the founders of the Free Software Foundation. These individuals were frustrated that public domain software often became inactive over time or was eclipsed by proprietary software derived from it. This strategy achieved its goal of keeping publicly held software active and growing over time, since it led directly to the large body of open source software that is now available over the Internet. However, a side effect of this strategy was that it made it much more difficult for companies to profit by capturing and building on open source code in the same way they had for public domain software. Currently, whether blocking of commercial capture of open source software is good or bad is a hotly debated issue within the software industry.
Q6: What are "shareware" and "freeware," and how do they differ from open source?
A6: Shareware is software that can be redistributed without charge (shared) by users. However, the owner of the software usually expects to be compensated by regular users, and imposes various restrictions if a fee is not paid. These restrictions may be contractual (e.g., requesting payment if the shareware is used for more than 30 days), or they may be built into the shareware itself (e.g., it may stop functioning after 30 days). Freeware is very similar to shareware, but places no restrictions on how or how long it can be used. In both cases, the software is normally distributed only as binary code, rather than as source code. This is in sharp contrast to public domain and open source software, both of which allow source code to be available to users. Since shareware and freeware are normally distributed only in binary form, they usually display proprietary licenses whenever they are executed. Shareware and freeware products occasionally make their source code available to users, but when they do they always maintain ownership of the source code.
Q7: What are the differences between the license terms and conditions of the various types of open source licenses?
A7: As of mid 2002, there were nearly three dozen software licenses that qualified as "open source" (see
http://www.opensource.org/licenses/bsd-license.php). In practice, however, only a small number of these licenses are widely used. Furthermore, the less frequently used licenses are often similar to the more commonly used licenses. Table 1 summarizes a number of differences between four of the most important open source licenses. Additionally, the table includes the related concept of public domain software, and an example of a proprietary software license that is notable for precluding the use of open source software.Table 1. A Comparison of Open Source and Related Licenses
|
License: Property |
GPL |
LGPL |
BSD |
Apache |
Public Domain |
Microsoft MIT EULA 4 | ||
|
(a) Can be stored on disk with other license types |
X |
X |
X |
X |
X |
(Forbids OSS) | ||
|
(b) Can be executed in parallel with other license types |
X |
X |
X |
X |
X |
(Forbids OSS) | ||
|
(c) Can be executed on top of other license types |
X |
X |
X |
X |
X |
(Forbids OSS) | ||
|
(d) Can be executed underneath other license types |
X1 |
X |
X |
X |
X |
|||