天天看点

What is free software?

        From: 点击打开链接

The Free Software Definition

The free software definition presents the criteria for whether aparticular software program qualifies as free software. From time totime we revise this definition, to clarify it or to resolve questionsabout subtle issues. See theHistory sectionbelow for a list of changes that affect the definition of freesoftware.

“Free software” means software that respects users'freedom and community. Roughly,the users have the freedom to run,copy, distribute, study, change and improve the software. With thesefreedoms, the users (both individually and collectively) control theprogram and what it does for them.

When users don't control the program, the program controls the users.The developer controls the program, and through it controls the users.This nonfree or “proprietary” program is therefore aninstrument of unjust power.

Thus, “free software” is a matter of liberty, not price.To understand the concept, you should think of “free” asin “free speech,” not as in “free beer”.

A program is free software if the program's users have thefour essential freedoms:

  • The freedom to run the program, for any purpose (freedom 0).
  • 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.
  • The freedom to redistribute copies so you can help your neighbor (freedom 2).
  • 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 users have all of these freedoms. Thus,you should be free to redistribute copies, either with or withoutmodifications, either gratis or charging a fee for distribution, toanyone anywhere. Being free to do thesethings means (among other things) that you do not have to ask or payfor permission to do so.

You should also have the freedom to make modifications and use themprivately in your own work or play, without even mentioning that theyexist. If you do publish your changes, you should not be required tonotify anyone in particular, or in any particular way.

The freedom to run the program means the freedom for any kind of personor organization to use it on any kind of computer system, for any kind ofoverall job and purpose, without being required to communicate about itwith the developer or any other specific entity. In this freedom, it isthe user's purpose that matters, not the developer'spurpose; 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 itfor her purposes, but you are not entitled to impose your purposes on her.

The freedom to redistribute copies must include binary or executableforms of the program, as well as source code, for both modified andunmodified versions. (Distributing programs in runnable form is necessaryfor conveniently installable free operating systems.) It is OK if thereis 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 thefreedom to redistribute such forms should you find or develop a way tomake them.

In order for freedoms 1 and 3 (the freedom to make changes and thefreedom to publish the changed versions) to be meaningful, you must haveaccess to the source code of the program. Therefore, accessibility ofsource code is a necessary condition for free software. Obfuscated“source code” is not real source code and does not countas source code.

Freedom 1 includes the freedom to use your changed version in place ofthe original. If the program is delivered in a product designed torun someone else's modified versions but refuse to run yours — apractice known as “tivoization” or “lockdown”,or (in its practitioners' perverse terminology) as “secureboot” — freedom 1 becomes a theoretical fiction ratherthan a practical freedom. This is not sufficient. In other words,these binaries are not free software even if the source code they arecompiled from is free.

One important way to modify a program is by merging in available freesubroutines and modules. If the program's license says that youcannot merge in a suitably licensed existing module — for instance, if itrequires you to be the copyright holder of any code you add — then thelicense is too restrictive to qualify as free.

Freedom 3 includes the freedom to release your modified versionsas free software. A free license may also permit other ways ofreleasing them; in other words, it does not have to beacopyleft license. However, alicense that requires modified versions to be nonfree does not qualifyas a free license.

In order for these freedoms to be real, they must be permanent andirrevocable as long as you do nothing wrong; if the developer of thesoftware has the power to revoke the license, or retroactively addrestrictions to its terms, without your doing anything wrong to givecause, the software is not free.

However, certain kinds of rules about the manner of distributing freesoftware are acceptable, when they don't conflict with the centralfreedoms. For example, copyleft (very simply stated) is the rule thatwhen redistributing the program, you cannot add restrictions to denyother people the central freedoms. This rule does not conflict withthe central freedoms; rather it protects them.

“Free software” does not mean “noncommercial”. A freeprogram must be available for commercial use, commercial development,and commercial distribution. Commercial development of free softwareis no longer unusual; such free commercial software is very important.You may have paid money to get copies of free software, or you may haveobtained copies at no charge. But regardless of how you got your copies,you always have the freedom to copy and change the software, even tosell copies.

Whether a change constitutes an improvement is a subjective matter.If your right to modify a program is limited, in substance, to changes thatsomeone 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 modifiedversions, or your freedom to make and use modified versions privately.Thus, it is acceptable for the license to require that you change thename of the modified version, remove a logo, or identify yourmodifications as yours. As long as these requirements are not soburdensome that they effectively hamper you from releasing yourchanges, they are acceptable; you're already making other changes tothe program, so you won't have trouble making a few more.

A special issue arises when a license requires changing the name bywhich the program will be invoked from other programs. Thateffectively hampers you from releasing your changed version so that itcan replace the original when invoked by those other programs. Thissort of requirement is acceptable only if there's a suitable aliasingfacility that allows you to specify the original program's name as analias for the modified version.

Rules that “if you make your version available in this way, youmust make it available in that way also” can be acceptable too,on the same condition. An example of such an acceptable rule is onesaying that if you have distributed amodified version and a previous developer asks for a copy of it, youmust send one. (Note that such a rule still leaves you the choice ofwhether to distribute your version at all.) Rules that require releaseof source code to the users for versions that you put into public useare also acceptable.

In the GNU project, we use copyleftto protect these freedoms legally for everyone. But noncopyleftedfree software also exists. We believe there are important reasons whyit is better to use copyleft,but if your program is noncopylefted free software, it is still basicallyethical. (SeeCategories of Free Software for a description of how “free software,” “copylefted software” and other categories of software relate to each other.)

Sometimes government export control regulationsand trade sanctions can constrain your freedom to distribute copies ofprograms internationally. Software developers do not have the power toeliminate or override these restrictions, but what they can and must dois refuse to impose them as conditions of use of the program. In thisway, the restrictions will not affect activities and people outside thejurisdictions of these governments. Thus, free software licensesmust not require obedience to any export regulations as a condition ofany of the essential freedoms.

Most free software licenses are based on copyright, and there are limitson what kinds of requirements can be imposed through copyright. If acopyright-based license respects freedom in the ways described above, itis unlikely to have some other sort of problem that we never anticipated(though this does happen occasionally). However, some free softwarelicenses are based on contracts, and contracts can impose a much largerrange of possible restrictions. That means there are many possible wayssuch a license could be unacceptably restrictive and nonfree.

We can't possibly list all the ways that might happen. If acontract-based license restricts the user in an unusual way thatcopyright-based licenses cannot, and which isn't mentioned here aslegitimate, we will have to think about it, and we will probably concludeit is nonfree.

When talking about free software, it is best to avoid using termslike “give away” or “for free,” because those terms imply thatthe issue is about price, not freedom. Some common terms suchas “piracy” embody opinions we hope you won't endorse. SeeConfusing Words and Phrases thatare Worth Avoiding for a discussion of these terms. We also havea list of propertranslations of“free software” into various languages.

Finally, note that criteria such as those stated in this free softwaredefinition require careful thought for their interpretation. To decidewhether a specific software license qualifies as a free software license,we judge it based on these criteria to determine whether it fits theirspirit as well as the precise words. If a license includes unconscionablerestrictions, we reject it, even if we did not anticipate the issuein these criteria. Sometimes a license requirement raises an issuethat calls for extensive thought, including discussions with a lawyer,before we can decide if the requirement is acceptable. When we reacha conclusion about a new issue, we often update these criteria to makeit easier to see why certain licenses do or don't qualify.

If you are interested in whether a specific license qualifies as a freesoftware license, see ourlistof licenses. If the license you are concerned with is notlisted there, you can ask us about it by sending us email at<[email protected]>.

If you are contemplating writing a new license, please contact theFree Software Foundation first by writing to that address. Theproliferation of different free software licenses means increased workfor users in understanding the licenses; we may be able to help youfind an existing free software license that meets your needs.

If that isn't possible, if you really need a new license, with ourhelp you can ensure that the license really is a free software licenseand avoid various practical problems.

Beyond Software

Software manuals must be free,for the same reasons that software must be free, and because themanuals are in effect part of the software.

The same arguments also make sense for other kinds of works ofpractical use — that is to say, works that embody useful knowledge,such as educational works and referenceworks.Wikipedia is the best-knownexample.

Any kind of work can be free, and the definition of free softwarehas been extended to a definition offree cultural works applicable to any kind of works.

Open Source?

Another group has started using the term “open source” to meansomething close (but not identical) to “free software”. Weprefer the term “free software” because, once you have heard thatit refers to freedom rather than price, it calls to mind freedom. Theword “open” never refers to freedom.

History

From time to time we revise this Free Software Definition. Here isthe list of changes, along with links to show exactly what waschanged.

  • Version1.111: Clarify 1.77 by saying that onlyretroactiverestrictions are unacceptable. The copyrightholders can always grant additionalpermission for use of thework by releasing the work in another way in parallel.
  • Version1.105: Reflect, in the brief statement of freedom 1, the point(already stated in version 1.80) that it includes really using your modifiedversion for your computing.
  • Version1.92: Clarify that obfuscated code does not qualify as source code.
  • Version1.90: Clarify that freedom 3 means the right to distribute copiesof your own modified or improved version, not a right to participatein someone else's development project.
  • Version1.89: Freedom 3 includes the right to release modified versions asfree software.
  • Version1.80: Freedom 1 must be practical, not just theoretical;i.e., no tivoization.
  • Version1.77: Clarify that all retroactive changes to the license areunacceptable, even if it's not described as a completereplacement.
  • Version1.74: Four clarifications of points not explicit enough, or statedin some places but not reflected everywhere:
    • "Improvements" does not mean the license cansubstantively limit what kinds of modified versions you can release.Freedom 3 includes distributing modified versions, not just changes.
    • The right to merge in existing modulesrefers to those that are suitably licensed.
    • Explicitly state the conclusion of the point about export controls.
    • Imposing a license change constitutes revoking the old license.
  • Version1.57: Add "Beyond Software" section.
  • Version1.46: Clarify whose purpose is significant in the freedom to runthe program for any purpose.
  • Version1.41: Clarify wording about contract-based licenses.
  • Version1.40: Explain that a free license must allow to you use otheravailable free software to create your modifications.
  • Version1.39: Note that it is acceptable for a license to require you toprovide source for versions of the software you put into publicuse.
  • Version1.31: Note that it is acceptable for a license to require you toidentify yourself as the author of modifications. Other minorclarifications throughout the text.
  • Version1.23: Address potential problems related to contract-basedlicenses.
  • Version1.16: Explain why distribution of binaries is important.
  • Version1.11: Note that a free license may require you to send a copy ofversions you distribute to the author.

There are gaps in the version numbers shown above because there areother changes in this page that do not affect the definition as such.These changes are in other parts of the page. You can review thecomplete list of changes to the page throughthecvswebinterface.

继续阅读