<!--#include virtual="/server/header.html" -->
<!-- Parent-Version: 1.77 -->
<title>What is free software?
- GNU Project - Free Software Foundation</title>
<meta http-equiv="Keywords" content="GNU, FSF, Free Software Foundation, Linux, Emacs, GCC, Unix, Free Software, Operating System, GNU Kernel, HURD, GNU HURD, Hurd" />
<meta http-equiv="Description" content="Since 1983, developing the free Unix style operating system GNU, so that computer users can have the freedom to share and improve the software they use." />
<!--#include virtual="/philosophy/po/free-sw.translist" -->
<!--#include virtual="/server/banner.html" -->
<h2>What is free software?</h2>
<h3>The Free Software Definition</h3>
The free software definition presents the criteria for whether a
particular software program qualifies as free software. From time to
time we revise this definition, to clarify it or to resolve questions
about subtle issues. See the <a href="#History">History section</a>
below for a list of changes that affect the definition of free
“Free software” means software that respects users'
freedom and community. Roughly, it means that <b>the users have the
freedom to run, copy, distribute, study, change and improve the
software</b>. Thus, “free software” is a matter of
liberty, not price. To understand the concept, you should think of
“free” as in “free speech,” not as in
We campaign for these freedoms because everyone deserves them. With
these freedoms, the users (both individually and collectively) control
the program and what it does for them. When users don't control the
program, we call it a “nonfree” or
“proprietary” program. The nonfree program controls the
users, and the developer controls the program; this makes the
program <a href="/philosophy/free-software-even-more-important.html">
an instrument of unjust power</a>.
A program is free software if the program's users have the
four essential freedoms:
<li>The freedom to run the
for any purpose (freedom 0).</li>
<li>The freedom to study how the program works, and change it so it
does your computing as you wish (freedom 1). Access to the source
code is a precondition for this.
<li>The freedom to redistribute copies so you can help your neighbor
<li>The freedom to distribute copies of your modified versions
to others (freedom 3). By doing this you can give the whole
community a chance to benefit from your changes.
Access to the source code is a precondition for this.
A program is free software if it gives users adequately all of these
freedoms. Otherwise, it is nonfree. While we can distinguish various
nonfree distribution schemes in terms of how far they fall short of
being free, we consider them all equally unethical.</p>
<p>The rest of this page clarifies certain points about what makes
specific freedoms adequate or not.</p>
<p>Freedom to distribute (freedoms 2 and 3) means you are free to
redistribute copies, either with or without modifications, either
gratis or charging a fee for distribution, to
<a href="#exportcontrol">anyone anywhere</a>. Being free to do these
things means (among other things) that you do not have to ask or pay
for permission to do so.
You should also have the freedom to make modifications and use them
privately in your own work or play, without even mentioning that they
exist. If you do publish your changes, you should not be required to
notify anyone in particular, or in any particular way.
The freedom to run the program means the freedom for any kind of person
or organization to use it on any kind of computer system, for any kind of
overall job and purpose, without being required to communicate about it
with the developer or any other specific entity. In this freedom, it is
the <em>user's</em> purpose that matters, not the <em>developer's</em>
purpose; you as a user are free to run the program for your purposes,
and if you distribute it to someone else, she is then free to run it
for her purposes, but you are not entitled to impose your purposes on her.
The freedom to redistribute copies must include binary or executable
forms of the program, as well as source code, for both modified and
unmodified versions. (Distributing programs in runnable form is necessary
for conveniently installable free operating systems.) It is OK if there
is no way to produce a binary or executable form for a certain program
(since some languages don't support that feature), but you must have the
freedom to redistribute such forms should you find or develop a way to
In order for freedoms 1 and 3 (the freedom to make changes and the
freedom to publish the changed versions) to be meaningful, you must have
access to the source code of the program. Therefore, accessibility of
source code is a necessary condition for free software. Obfuscated
“source code” is not real source code and does not count
as source code.
Freedom 1 includes the freedom to use your changed version in place of
the original. If the program is delivered in a product designed to
run someone else's modified versions but refuse to run yours — a
practice known as “tivoization” or “lockdown”,
or (in its practitioners' perverse terminology) as “secure
boot” — freedom 1 becomes a theoretical fiction rather than a
practical freedom. This is not sufficient. In other words,
these binaries are not free
software even if the source code they are compiled from is free.
One important way to modify a program is by merging in available free
subroutines and modules. If the program's license says that you
cannot merge in a suitably licensed existing module — for instance, if it
requires you to be the copyright holder of any code you add — then the
license is too restrictive to qualify as free.
Freedom 3 includes the freedom to release your modified versions
as free software. A free license may also permit other ways of
releasing them; in other words, it does not have to be
a <a href="/copyleft/copyleft.html">copyleft</a> license. However, a
license that requires modified versions to be nonfree does not qualify
as a free license.
In order for these freedoms to be real, they must be permanent and
irrevocable as long as you do nothing wrong; if the developer of the
software has the power to revoke the license, or retroactively add
restrictions to its terms, without your doing anything wrong to give
cause, the software is not free.
However, certain kinds of rules about the manner of distributing free
software are acceptable, when they don't conflict with the central
freedoms. For example, copyleft
(very simply stated) is the rule that when redistributing the program,
you cannot add restrictions to deny other people the central freedoms.
This rule does not conflict with the central freedoms; rather it
In the GNU project, we use <a href="/copyleft/copyleft.html"> copyleft </a> to protect the four freedoms
legally for everyone. We believe there are important reasons why
<a href="/philosophy/pragmatic.html">it is better to use
noncopylefted free software</a> is ethical
too. See <a href="/philosophy/categories.html">Categories of Free
Software</a> for a description of how “free software,”
“copylefted software” and other categories of software
relate to each other.
“Free software” does not mean “noncommercial”. A free
program must be available for commercial use, commercial development,
and commercial distribution. Commercial development of free software
is no longer unusual; such free commercial software is very important.
You may have paid money to get copies of free software, or you may have
obtained copies at no charge. But regardless of how you got your copies,
you always have the freedom to copy and change the software, even to
<a href="/philosophy/selling.html">sell copies</a>.
Whether a change constitutes an improvement is a subjective matter.
If your right to modify a program is limited, in substance, to changes that
someone else considers an improvement, that program is not free.
However, rules about how to package a modified version are acceptable,
if they don't substantively limit your freedom to release modified
versions, or your freedom to make and use modified versions privately.
Thus, it is acceptable for the license to require that you change the
name of the modified version, remove a logo, or identify your
modifications as yours. As long as these requirements are not so
burdensome that they effectively hamper you from releasing your
changes, they are acceptable; you're already making other changes to
the program, so you won't have trouble making a few more.
Rules that “if you make your version available in this way, you
must make it available in that way also” can be acceptable too,
on the same condition. An example of such an acceptable rule is one
saying that if you have distributed a
modified version and a previous developer asks for a copy of it, you
must send one. (Note that such a rule still leaves you the choice of
whether to distribute your version at all.) Rules that require release
of source code to the users for versions that you put into public use
are also acceptable.
A special issue arises when a license requires changing the name by
which the program will be invoked from other programs. That
effectively hampers you from releasing your changed version so that it
can replace the original when invoked by those other programs. This
sort of requirement is acceptable only if there's a suitable aliasing
facility that allows you to specify the original program's name as an
alias for the modified version.</p>
Sometimes government <a id="exportcontrol">export control regulations</a>
and trade sanctions can constrain your freedom to distribute copies of
programs internationally. Software developers do not have the power to
eliminate or override these restrictions, but what they can and must do
is refuse to impose them as conditions of use of the program. In this
way, the restrictions will not affect activities and people outside the
jurisdictions of these governments. Thus, free software licenses
must not require obedience to any nontrivial export regulations as a
condition of exercising any of the essential freedoms.
Merely mentioning the existence of export regulations, without making
them a condition of the license itself, is acceptable since it does
not restrict users. If an export regulation is actually trivial for
free software, then requiring it as a condition is not an actual
problem; however, it is a potential problem, since a later change in
export law could make the requirement nontrivial and thus render the
A free license may not require compliance with the license of a
nonfree program. Thus, for instance, if a license requires you to
comply with the licenses of “all the programs you use”, in
the case of a user that runs nonfree programs this would require
compliance with the licenses of those nonfree programs; that makes the
It is acceptable for a free license to specify which jurisdiction's
law applies, or where litigation must be done, or both.
Most free software licenses are based on copyright, and there are limits
on what kinds of requirements can be imposed through copyright. If a
copyright-based license respects freedom in the ways described above, it
is unlikely to have some other sort of problem that we never anticipated
(though this does happen occasionally). However, some free software
licenses are based on contracts, and contracts can impose a much larger
range of possible restrictions. That means there are many possible ways
such a license could be unacceptably restrictive and nonfree.
We can't possibly list all the ways that might happen. If a
contract-based license restricts the user in an unusual way that
copyright-based licenses cannot, and which isn't mentioned here as
legitimate, we will have to think about it, and we will probably conclude
it is nonfree.
When talking about free software, it is best to avoid using terms
like “give away” or “for free,” because those terms imply that
the issue is about price, not freedom. Some common terms such
as “piracy” embody opinions we hope you won't endorse. See
<a href="/philosophy/words-to-avoid.html">Confusing Words and Phrases that
are Worth Avoiding</a> for a discussion of these terms. We also have
a list of proper <a href="/philosophy/fs-translations.html">translations of
“free software”</a> into various languages.
Finally, note that criteria such as those stated in this free software
definition require careful thought for their interpretation. To decide
whether a specific software license qualifies as a free software license,
we judge it based on these criteria to determine whether it fits their
spirit as well as the precise words. If a license includes unconscionable
restrictions, we reject it, even if we did not anticipate the issue
in these criteria. Sometimes a license requirement raises an issue
that calls for extensive thought, including discussions with a lawyer,
before we can decide if the requirement is acceptable. When we reach
a conclusion about a new issue, we often update these criteria to make
it easier to see why certain licenses do or don't qualify.
If you are interested in whether a specific license qualifies as a free
software license, see our <a href="/licenses/license-list.html">list
of licenses</a>. If the license you are concerned with is not
listed there, you can ask us about it by sending us email at
If you are contemplating writing a new license, please contact the
Free Software Foundation first by writing to that address. The
proliferation of different free software licenses means increased work
for users in understanding the licenses; we may be able to help you
find an existing free software license that meets your needs.
If that isn't possible, if you really need a new license, with our
help you can ensure that the license really is a free software license
and avoid various practical problems.
<h3 id="beyond-software">Beyond Software</h3>
<a href="/philosophy/free-doc.html">Software manuals must be free</a>,
for the same reasons that software must be free, and because the
manuals are in effect part of the software.
The same arguments also make sense for other kinds of works of
practical use — that is to say, works that embody useful knowledge,
such as educational works and reference
works. <a href="http://wikipedia.org">Wikipedia</a> is the best-known
Any kind of work <em>can</em> be free, and the definition of free software
has been extended to a definition of <a href="http://freedomdefined.org/">
free cultural works</a> applicable to any kind of works.
<h3 id="open-source">Open Source?</h3>
Another group has started using the term “open source” to mean
something close (but not identical) to “free software”. We
prefer the term “free software” because, once you have heard that
it refers to freedom rather than price, it calls to mind freedom. The
word “open” <a href="/philosophy/open-source-misses-the-point.html">
never refers to freedom</a>.
<p>From time to time we revise this Free Software Definition. Here is
the list of substantive changes, along with links to show exactly what
1.131</a>: A free license may not require compliance with a nonfree license
of another program.</li>
1.129</a>: State explicitly that choice of law and choice of forum
specifications are allowed. (This was always our policy.)</li>
1.122</a>: An export control requirement is a real problem if the
requirement is nontrivial; otherwise it is only a potential problem.</li>
1.118</a>: Clarification: the issue is limits on your right to modify,
not on what modifications you have made. And modifications are not limited
1.111</a>: Clarify 1.77 by saying that only
retroactive <em>restrictions</em> are unacceptable. The copyright
holders can always grant additional <em>permission</em> for use of the
work by releasing the work in another way in parallel.</li>
1.105</a>: Reflect, in the brief statement of freedom 1, the point
(already stated in version 1.80) that it includes really using your modified
version for your computing.</li>
1.92</a>: Clarify that obfuscated code does not qualify as source code.</li>
1.90</a>: Clarify that freedom 3 means the right to distribute copies
of your own modified or improved version, not a right to participate
in someone else's development project.</li>
1.89</a>: Freedom 3 includes the right to release modified versions as
1.80</a>: Freedom 1 must be practical, not just theoretical;
i.e., no tivoization.</li>
1.77</a>: Clarify that all retroactive changes to the license are
unacceptable, even if it's not described as a complete
1.74</a>: Four clarifications of points not explicit enough, or stated
in some places but not reflected everywhere:
<li>"Improvements" does not mean the license can
substantively limit what kinds of modified versions you can release.
Freedom 3 includes distributing modified versions, not just changes.</li>
<li>The right to merge in existing modules
refers to those that are suitably licensed.</li>
<li>Explicitly state the conclusion of the point about export controls.</li>
<li>Imposing a license change constitutes revoking the old license.</li>
1.57</a>: Add "Beyond Software" section.</li>
1.46</a>: Clarify whose purpose is significant in the freedom to run
the program for any purpose.</li>
1.41</a>: Clarify wording about contract-based licenses.</li>
1.40</a>: Explain that a free license must allow to you use other
available free software to create your modifications.</li>
1.39</a>: Note that it is acceptable for a license to require you to
provide source for versions of the software you put into public
1.31</a>: Note that it is acceptable for a license to require you to
identify yourself as the author of modifications. Other minor
clarifications throughout the text.</li>
1.23</a>: Address potential problems related to contract-based
1.16</a>: Explain why distribution of binaries is important.</li>
1.11</a>: Note that a free license may require you to send a copy of
versions you distribute to the author.</li>
<p>There are gaps in the version numbers shown above because there are
other changes in this page that do not affect the definition or its
interpretations. For instance, the list does not include changes in
asides, formatting, spelling, punctuation, or other parts of the page.
You can review the complete list of changes to the page through
the <a href="http://web.cvs.savannah.gnu.org/viewvc/www/philosophy/free-sw.html?root=www&view=log">cvsweb
</div><!-- for id="content", starts in the include above -->
<!--#include virtual="/server/footer.html" -->
<p>Please send general FSF & GNU inquiries to
There are also <a href="/contact/">other ways to contact</a>
the FSF. Broken links and other corrections or suggestions can be sent
to <a href="mailto:firstname.lastname@example.org"><email@example.com></a>.</p>
<p><!-- TRANSLATORS: Ignore the original text in this paragraph,
replace it with the translation of these two:
We work hard and do our best to provide accurate, good quality
translations. However, we are not exempt from imperfection.
Please send your comments and general suggestions in this regard
to <a href="mailto:firstname.lastname@example.org">
<p>For information on coordinating and submitting translations of
our web pages, see <a
Please see the <a
README</a> for information on coordinating and submitting translations
of this article.</p>
<!-- Regarding copyright, in general, standalone pages (as opposed to
files generated as part of manuals) on the GNU web server should
be under CC BY-ND 3.0 US. Please do NOT change or remove this
without talking with the webmasters or licensing team first.
Please make sure the copyright date is consistent with the
document. For web pages, it is ok to list just the latest year the
document was modified, or published.
If you wish to list earlier years, that is ok too.
Either "2001, 2002, 2003" or "2001-2003" are ok for specifying
years, as long as each year in the range is in fact a copyrightable
year, i.e., a year in which the document was published (including
being publicly visible on the web or in a revision control system).
There is more detail about copyright years in the GNU Maintainers
Information document, www.gnu.org/prep/maintain. -->
<p>Copyright © 1996-2002, 2004-2007, 2009, 2010, 2012, 2013
Free Software Foundation, Inc.</p>
<p>This page is licensed under a <a rel="license"
Commons Attribution-NoDerivs 3.0 United States License</a>.</p>
<!--#include virtual="/server/bottom-notes.html" -->
<!-- timestamp start -->
$Date: 2015/02/17 23:28:20 $
<!-- timestamp end -->