Related Links

Popular Links

Sunday, October 21, 2007

What Does Free Mean?

In this era, there are many people new to free software find themselves confused because the word "free" in the term "free software" is not used the way they expect. To them free means "at no cost". An English dictionary lists almost twenty different meanings for "free". Only one of them is "at no cost". The rest refer to liberty and lack of constraint. When we speak of Free Software, we mean freedom, not price.

Software that is free only in the sense that you don't need to pay to use it is hardly free at all. You may be forbidden to pass it on, and you are almost certainly prevented from improving it. Software licensed at no cost is usually a weapon in a marketing campaign to promote a related product or to drive a smaller competitor out of business. There is no guarantee that it will stay free.

Truly free software is always free. Software that is placed in the public domain can be snapped up and put into non-free programs. Any improvements then made are lost to society. To stay free, software must be copyrighted and licensed.

To the uninitiated, either a piece of software is free or it isn't. Real life is much more complicated than that. To understand what kinds of things people are implying when they call software free we must take a little detour into the world of software licenses.

Copyrights are a method of protecting the rights of the creator of certain types of works. In most countries, software you write is automatically copyrighted. A license is the authors way of allowing use of their creation (software in this case), by others, in ways that are acceptable to them. It is up to the author to include a license which declares in what ways the software may be used. For a proper discussion of copyright see http://www.copyright.gov/.

Of course, different circumstances call for different licenses. Software companies are looking to protect their assets so they only release compiled code (which isn't human readable) and put many restrictions on the use of the software. Authors of free software on the other hand are generally looking for some combination of the following:

  • Not allowing use of their code in proprietary software. Since they are releasing their code for all to use, they don't want to see others steal it. In this case, use of the code is seen as a trust: you may use it, as long as you play by the same rules.
  • Protecting identity of authorship of the code. People take great pride in their work and do not want someone else to come along and remove their name from it or claim that they wrote it.
  • Distribution of source code. One of the problems with most commercial code is that you can't fix bugs or customize it since the source code is not available. Also, the company may decide to stop supporting the hardware you use. Many free licenses force the distribution of the source code. This protects the user by allowing them to customize the software for their needs. This also has other ramifications which will be discussed later.
  • Forcing any work that includes part of their work (such works are called derived works in copyright discussions) to use the same license.

Many people write their own license. This is frowned upon as writing a license that does what you want involves subtle issues. Too often the wording used is either ambiguous or people create conditions that conflict with each other. Writing a license that would hold up in court is even harder. Luckily, there are a number of licenses already written that probably do what you want.

Three of the most widely found licenses are:

Some of the features these licenses have in common.

  • You can install the software on as many machines as you want.
  • Any number of people may use the software at one time.
  • You can make as many copies of the software as you want and give them to whomever you want (free or open redistribution).
  • There are no restrictions on modifying the software (except for keeping certain notices intact).
  • There is no restriction on distributing, or even selling, the software.

This last point, which allows the software to be sold for money seems to go against the whole idea of free software. It is actually one of its strengths. Since the license allows free redistribution, once one person gets a copy they can distribute it themselves. They can even try to sell it. In practice, it costs essentially no money to make electronic copies of software. Supply and demand will keep the cost down. If it is convenient for a large piece of software or an aggregate of software to be distributed by some media, such as CD, the vendor is free to charge what they like. If the profit margin is too high, however, new vendors will enter the market and competition will drive the price down. As a result, you can buy a Debian release on several CDs for just a few USD.

While free software is not totally free of constraints (only putting something in the public domain does that) it gives the user the flexibility to do what they need in order to get work done. At the same time, it protects the rights of the author. Now that's freedom.

The Debian project is a strong supporter of free software. Since many different licenses are used on software, a set of guidelines, the Debian Free Software Guidelines (DFSG) were developed to come up with a reasonable definition of what constitutes free software. Only software that complies with the DFSG is allowed in the main distribution of Debian.

Saturday, October 20, 2007

Free Software For Our Freedom

We know that governments can threaten the human rights of software users through censorship and surveillance of the Internet. Many do not realize that the software they run on their home or work computers can be an even worse threat. Thinking of software as 'just a tool', they suppose that it obeys them, when in fact it often obeys others instead.

The software running in most computers is non-free, proprietary software: controlled by software companies, not by its users. Users can't check what these programs do, nor prevent them from doing what they don't want. Most people accept this because they have seen no other way, but it is simply wrong to give developers power over the users' computer.

This unjust power, as usual, tempts its wielders to further misdeeds. If a computer talks to a network, and you don't control the software in it, it can easily spy on you. Microsoft Windows spies on users; for instance, it reports what words a user searches for in her own files, and what other programs are installed. RealPlayer spies too; it reports what the user plays. Cell phones are full of non-free software, which spies. Cell phones send out localizing signals even when 'off', many can send out your precise GPS location whether you wish or not, and some models can be switched on remotely as listening devices. Users can't fix these malicious features because they don't have control.

Some proprietary software is designed to restrict and attack its users. Windows Vista is a big advance in this field; the reason it requires replacement of old hardware is that the new models are designed to support unbreakable restrictions. Microsoft thus requires users to pay for shiny new shackles. It is also designed to permit forced updating by corporate authority. Hence the BadVista.org campaign, which urges Windows users not to 'upgrade' to Vista. Mac OS also contains features designed to restrict its users.

Microsoft has installed back doors for the US government's use in the past (reported on heise.de). We cannot check whether they have successors today. Other proprietary programs may or may not have back doors, but since we cannot check them, we cannot trust them.

The only way to assure that your software is working for you is to insist on Free/Libre software. This means users get the source code, are free to study and change it, and are free to redistribute it with or without changes. The GNU/Linux system, developed specifically for users' freedom, includes office applications, multimedia, games, and everything you really need to run a computer. See gNewSense.org for a totally Free/Libre version of GNU/Linux.

A special problem occurs when activists for social change use proprietary software, because its developers, who control it, may be companies they wish to protest–or that work hand in glove with the states whose policies they oppose. Control of our software by a proprietary software company, whether it be Microsoft, Apple, Adobe or Skype, means control of what we can say, and to whom. This threatens our freedom in all areas of life.

There is also danger in using a company's server to do your word processing or email–and not just if you are in China, as US lawyer Michael Springmann discovered. In 2003, AOL not only handed over to the police his confidential discussions with clients, it also made his email and his address list disappear, and didn't admit this was intentional until one of its staff made a slip. Springmann gave up on getting his data back.

The US is not the only state that doesn't respect human rights, so keep your data on your own computer, and your backups under your own custody–and run your computer with Free/Libre software.

Movement Free Software

In this time, people use Free Software operating systems such as GNU/Linux for various reasons. Many users switch for practical reasons: because the system is powerful, because it is reliable, or for the convenience of being able to change the software to do what you need.

Those are good reasons—but there is more at stake than just convenience. What's at stake is your freedom, and your community.

The idea of the Free Software movement is that computer users deserve the freedom to form a community. You should have the freedom to help yourself, by changing the source code to do whatever you need to do. And the freedom to help your neighbor, by redistributing copies of programs to other people. Also the freedom to help build your community, by publishing improved versions so that other people can use them.

Whether a program is free software depends on its license. Our detailed definition of free software shows how we evaluate a license to see if it makes programs free software. We also have articles about certain specific licenses explaining the advantages and disadvantages of some licenses that do qualify, and why some other licenses are too restrictive to qualify.

Another related movement was started in 1998—the Open Source movement. The two movements do similar work, and often cooperate on software projects, but we have completely different philosophical reasons for what we do. The Open Source movement talks only about practical advantages of free software. That's good as far as it goes, but it only scratches the surface of the issue. They carefully avoid raising the issues of freedom, community, and principle. The Free Software movement raises these deeper issues.

If you think that freedom and community are important for their own sake, please join us in proudly using the term “Free Software”, and help spread the word.

15 Years of Free Software

Now, it is just over 15 years since the beginning of the Free Software Movement and the GNU Project. We have come a long way.

In 1984, it was impossible to use a modern computer without installing a proprietary operating system, which you would have to obtain under a restrictive license. No one was allowed to share software freely with fellow computer users, and hardly anyone could change software to fit his or her own needs. The owners of software had erected walls to divide us from each other.

The GNU Project was founded to change all that. Its first goal: to develop a Unix-compatible portable operating system that would be 100% free software. Not 95% free, not 99.5%, but 100%—so that users would be free to redistribute the whole system, and free to change and contribute to any part of it. The name of the system, GNU, is a recursive acronym meaning “GNU's Not Unix”—a way of paying tribute to Unix, while at the same time saying that GNU is something different. Technically, GNU is like Unix. But unlike Unix, GNU gives its users freedom.

It took many years of work, by hundreds of programmers, to develop this operating system. Some were paid by the Free Software Foundation and by free software companies; most were volunteers. A few have become famous; most are known mainly within their profession, by other hackers who use or work on their code. All together have helped to liberate the potential of the computer network for all humanity.

In 1991, the last major essential component of a Unix-like system was developed: Linux, the free kernel written by Linus Torvalds. Today, the combination of GNU and Linux is used by millions of people around the world, and its popularity is growing. This month, we announced release 1.0 of GNOME, the GNU graphical desktop, which we hope will make the GNU/Linux system as easy to use as any other operating system.

But our freedom is not permanently assured. The world does not stand still, and we cannot count on having freedom five years from now, just because we have it today. Free software faces difficult challenges and dangers. It will take determined efforts to preserve our freedom, just as it took to obtain freedom in the first place. Meanwhile, the operating system is just the beginning—now we need to add free applications to handle the whole range of jobs that users want to do.

In future columns, I will be writing about the specific challenges facing the free software community, and other issues affecting freedom for computer users, as well as developments affecting the GNU/Linux operating system.

You ... and MyDoom

I grew up in a community whose other members committed crimes as serious as murder. New York, with its 8 million inhabitants, had hundreds of murders each year, mostly committed by people who lived in the city. Violent assaults and robberies were even more common.

Other evils involving information rather than physical violence were common also. For instance, some New York police regularly lied on the witness stand, and even made up a word for it: instead of “testifying”, they described court appearances as “testilying”. Some New York programmers fell into the lawful but socially destructive practice of proprietary software: they offered other people attractive software packages without source code, and exacted a promise not to share them with anyone else.

Despite these prevalent evils, never in my life have I seen anyone try to condemn all New Yorkers on the basis of the wrongs that only some have committed. I have not seen anyone assume that all the citizens of New York are guilty of murder, violence, robbery, perjury, or writing proprietary software. People are aware that the mere fact that some New Yorkers were known to have done these things is no justification for treating all of us as guilty. That would be “guilt by association”, and people know this is unjust. I now live in the smaller city of Cambridge, Massachusetts. Murder and robbery occur there, too; I do not know if Cambridge police regularly lie in court, but proprietary software is rife. Nonetheless, I have never seen anyone try to condemn the whole city of Cambridge for this. Here, too, people recognize that guilt by association is an injustice.

However, people don't always remember to apply the principle. My virtual community, the free software community which I have helped to build since 20 years ago by developing the GNU operating system, is now the victim of a campaign of guilt by association. A number of articles—I have seen some—have tried to hold our entire community guilty for the development of the MyDoom virus.

We can be pretty sure that some New Yorkers have committed murder, because they have been tried and convicted for it. We do not know whether anyone in the free software community participated in the development of MyDoom. The developers have not been identified; they know who they are, but you and I can only speculate. We could speculate that users of GNU/Linux developed the virus to attack SCO. We could speculate that Microsoft developed the virus so it would be blamed on us. We could speculate that disgruntled former SCO employees developed the virus to get even. But there is no evidence for any of these speculations.

If some day we find out that those who developed the virus were free software users, then my virtual community will be in the same situation as New York City and Cambridge: proved to have had some members who acted destructively.

This should not surprise anyone. The free software community numbers in the tens of millions, larger than New York or even Shanghai. It is hardly to be expected that so many people would all be ethical. Our community is self-selected for at least partial rejection of one unethical practice, proprietary software, but even that doesn't guarantee perfection. The presence of a few wrongdoers among many millions is no surprise—and no excuse for guilt by association.

I am confident that nearly all readers of this article have nothing to do with developing the MyDoom virus. So if someone is accusing you, don't act defensive. You have no more to do with the virus than your accuser, so stand tall and say so.

If anyone has knowledge or evidence about who developed the virus, I hope he or she will come forth and make an accusation against specific people based on specific proof. But nobody should make accusations without proof, and there is no excuse for guilt by association. Not in New York, not in Cambridge, and not in the Free World.

Why schools should exclusively use free software ???

There're general reasons why all computer users should insist on free software. It gives users the freedom to control their own computers—with proprietary software, the computer does what the software owner wants it to do, not what the software user wants it to do. Free software also gives users the freedom to cooperate with each other, to lead an upright life. These reasons apply to schools as they do to everyone.

But there are special reasons that apply to schools. They are the subject of this article.

First, free software can save the schools money. Even in the richest countries, schools are short of money. Free software gives schools, like other users, the freedom to copy and redistribute the software, so the school system can make copies for all the computers they have. In poor countries, this can help close the digital divide.

This obvious reason, while important, is rather shallow. And proprietary software developers can eliminate this disadvantage by donating copies to the schools. (Watch out!—a school that accepts this offer may have to pay for future upgrades.) So let's look at the deeper reasons.

School should teach students ways of life that will benefit society as a whole. They should promote the use of free software just as they promote recycling. If schools teach students free software, then the students will use free software after they graduate. This will help society as a whole escape from being dominated (and gouged) by megacorporations. Those corporations offer free samples to schools for the same reason tobacco companies distribute free cigarettes: to get children addicted (1). They will not give discounts to these students once they grow up and graduate.

Free software permits students to learn how software works. When students reach their teens, some of them want to learn everything there is to know about their computer system and its software. That is the age when people who will be good programmers should learn it. To learn to write software well, students need to read a lot of code and write a lot of code. They need to read and understand real programs that people really use. They will be intensely curious to read the source code of the programs that they use every day.

Proprietary software rejects their thirst for knowledge: it says, “The knowledge you want is a secret—learning is forbidden!” Free software encourages everyone to learn. The free software community rejects the “priesthood of technology”, which keeps the general public in ignorance of how technology works; we encourage students of any age and situation to read the source code and learn as much as they want to know. Schools that use free software will enable gifted programming students to advance.

The next reason for using free software in schools is on an even deeper level. We expect schools to teach students basic facts, and useful skills, but that is not their whole job. The most fundamental mission of schools is to teach people to be good citizens and good neighbors—to cooperate with others who need their help. In the area of computers, this means teaching them to share software. Elementary schools, above all, should tell their pupils, “If you bring software to school, you must share it with the other children.” Of course, the school must practice what it preaches: all the software installed by the school should be available for students to copy, take home, and redistribute further.

Teaching the students to use free software, and to participate in the free software community, is a hands-on civics lesson. It also teaches students the role model of public service rather than that of tycoons. All levels of school should use free software.

Regarding Gnutella

Gnutella is at present, the name for a protocol for distributed file sharing, mostly used for music files. The name also sometimes refers to the network itself, as well as the original Gnutella software. The situation is quite confusing. For more on Gnutella's origin and history, please refer to the Wikipedia article on the subject.

In any case, the name was originally a word play on “GNU” (the original developers planned to release their code under the GNU GPL, and may have had in mind contributing it to the GNU project) and “Nutella” (a candy bar that the original developers enjoyed). However, neither the original software nor any of the related current projects are official GNU packages. We have asked that the Gnutella developers change the name to avoid confusion; perhaps that will happen in the future.

There are a number of free software programs that implement the Gnutella protocol, such as gtk-gnutella, mutella, and gnucleus. Please note, however, that none of these programs are officially GNU software either. GNU has its own peer-to-peer networking program, GNUnet, whose documentation includes a comparison of the protocols.

The Free Software Foundation is concerned with the freedom to copy and change software; music is outside our scope. But there is a partial similarity in the ethical issues of copying software and copying recordings of music. Some articles in the philosophy directory relate to the issue of copying for things other than software. Some of the other people's articles we have links to are also relevant.

No matter what sort of published information is being shared, we urge people to reject the assumption that some person or company has a natural right to prohibit sharing and dictate exactly how the public can use it. Even the US legal system nominally rejects that anti-social idea.

GNU, Linux and freedom

Since Joe Barr's article criticized my dealings with SIGLINUX, I would like to set the record straight about what actually occurred, and state my reasons.

When SIGLINUX invited me to speak, it was a “Linux User Group”, that is a group for users of the GNU/Linux system which calls the whole system “Linux”. So I replied politely that if they'd like someone from the GNU Project to give a speech for them, they ought to treat the GNU Project right, and call the system “GNU/Linux”. The system is a variant of GNU, and the GNU Project is its principal developer, so social convention says to call it by the name we chose. Unless there are powerful reasons for an exception, I usually decline to give speeches for organizations that won't give GNU proper credit in this way. I respect their freedom of speech, but I also have the freedom not to give a speech.

Subsequently, Jeff Strunk of SIGLINUX tried to change the group's policy, and asked the FSF to list his group in our page of GNU/Linux user groups. Our webmaster told him that we would not list it under the name “SIGLINUX” because that name implies that the group is about Linux. Strunk proposed to change the name to “SIGFREE”, and our webmaster agreed that would be fine. (Barr's article said we rejected this proposal.) However, the group ultimately decided to stay with “SIGLINUX”.

At that point, the matter came to my attention again, and I suggested they consider other possible names. There are many names they could choose that would not call the system “Linux”, and I hope they will come up with one they like. There the matter rests as far as I know.

Is it true, as Barr writes, that some people see these actions as an “application of force” comparable with Microsoft's monopoly power? Probably so. Declining an invitation is not coercion, but people who are determined to believe that the entire system is “Linux” sometimes develop amazingly distorted vision. To make that name appear justified, they must see molehills as mountains and mountains as molehills. If you can ignore the facts and believe that Linus Torvalds developed the whole system starting in 1991, or if you can ignore your ordinary principles of fairness and believe that Torvalds should get the sole credit even though he didn't do that, it's a small step to believe that I owe you a speech when you ask.

Just consider: the GNU Project starts developing an operating system, and years later Linus Torvalds adds one important piece. The GNU Project says, “Please give our project equal mention,” but Linus says, “Don't give them a share of the credit; call the whole thing after my name alone!” Now envision the mindset of a person who can look at these events and accuse the GNU Project of egotism. It takes strong prejudice to misjudge so drastically.

A person who is that prejudiced can say all sorts of unfair things about the GNU Project and think them justified; his fellows will support him, because they want each other's support in maintaining their prejudice. Dissenters can be reviled; thus, if I decline to participate in an activity under the rubric of “Linux”, they may find that inexcusable, and hold me responsible for the ill will they feel afterwards. When so many people want me to call the system “Linux”, how can I, who merely launched its development, not comply? And forcibly denying them a speech is forcibly making them unhappy. That's coercion, as bad as Microsoft!

Now, you might wonder why I don't just duck the issue and avoid all this grief. When SIGLINUX invited me to speak, I could simply have said “No, sorry” and the matter would have ended there. Why didn't I do that? I'm willing to take the risk of being abused personally in order to have a chance of correcting the error that undercuts the GNU Project's efforts.

Calling this variant of the GNU system “Linux” plays into the hands of people who choose their software based only on technical advantage, not caring whether it respects their freedom. There are people like Barr, that want their software “free from ideology” and criticize anyone that says freedom matters. There are people like Torvalds that will pressure our community into use of a non-free program, and challenge anyone who complains to provide a (technically) better program immediately or shut up. There are people who say that technical decisions should not be “politicized” by consideration of their social consequences.

In the 70s, computer users lost the freedoms to redistribute and change software because they didn't value their freedom. Computer users regained these freedoms in the 80s and 90s because a group of idealists, the GNU Project, believed that freedom is what makes a program better, and were willing to work for what we believed in.

We have partial freedom today, but our freedom is not secure. It is threatened by the CBDTPA (formerly SSSCA), by the Broadcast “Protection” Discussion Group (see http://www.eff.org/) which proposes to prohibit free software to access digital TV broadcasts, by software patents (Europe is now considering whether to have software patents), by Microsoft nondisclosure agreements for vital protocols, and by everyone who tempts us with a non-free program that is “better” (technically) than available free programs. We can lose our freedom again just as we lost it the first time, if we don't care enough to protect it.

Will enough of us care? That depends on many things; among them, how much influence the GNU Project has, and how much influence Linus Torvalds has. The GNU Project says, “Value your freedom!”. Joe Barr says, “Choose between non-free and free programs on technical grounds alone!”. If people credit Torvalds as the main developer of the GNU/Linux system, that's not just inaccurate, it also makes his message more influential—and that message says, “Non-free software is ok; I use it and develop it myself.” If they recognize our role, they will listen to us more, and the message we will give them is, “This system exists because of people who care about freedom. Join us, value your freedom, and together we can preserve it.” See www.gnu.org/gnu/thegnuproject.html for the history.

When I ask people to call the system GNU/Linux, some of them respond with silly excuses and straw men. But we probably haven't lost anything, because they were probably unfriendly to begin with. Meanwhile, other people recognize the reasons I give, and use that name. By doing so, they help make other people aware of why the GNU/Linux system really exists, and that increases our ability to spread the idea that freedom is an important value.

This is why I keep butting my head against bias, calumny, and grief. They hurt my feelings, but when successful, this effort helps the GNU Project campaign for freedom.

Since this came up in the context of Linux (the kernel) and Bitkeeper, the non-free version control system that Linus Torvalds now uses, I'd like to address that issue as well.

Why Free Software is better than Open Source ??

While free software by any other name would give you the same freedom, it is make a big difference which name we use: different words convey different ideas.

In 1998, some of the people in the free software community began using the term “open source software” instead of “free software” to describe what they do. The term “open source” quickly became associated with a different approach, a different philosophy, different values, and even a different criterion for which licenses are acceptable. The Free Software movement and the Open Source movement are today separate movements with different views and goals, although we can and do work together on some practical projects.

The fundamental difference between the two movements is in their values, their ways of looking at the world. For the Open Source movement, the issue of whether software should be open source is a practical question, not an ethical one. As one person put it, “Open source is a development methodology; free software is a social movement.” For the Open Source movement, non-free software is a suboptimal solution. For the Free Software movement, non-free software is a social problem and free software is the solution.

Relationship between the Free Software movement and Open Source movement

The Free Software movement and the Open Source movement are like two political camps within the free software community.

Radical groups in the 1960s developed a reputation for factionalism: organizations split because of disagreements on details of strategy, and then treated each other as enemies. Or at least, such is the image people have of them, whether or not it was true.

The relationship between the Free Software movement and the Open Source movement is just the opposite of that picture. We disagree on the basic principles, but agree more or less on the practical recommendations. So we can and do work together on many specific projects. We don't think of the Open Source movement as an enemy. The enemy is proprietary software.

We are not against the Open Source movement, but we don't want to be lumped in with them. We acknowledge that they have contributed to our community, but we created this community, and we want people to know this. We want people to associate our achievements with our values and our philosophy, not with theirs. We want to be heard, not obscured behind a group with different views. To prevent people from thinking we are part of them, we take pains to avoid using the word “open” to describe free software, or its contrary, “closed”, in talking about non-free software.

So please mention the Free Software movement when you talk about the work we have done, and the software we have developed—such as the GNU/Linux operating system.

Comparing the two terms

This rest of this article compares the two terms “free software” and “open source”. It shows why the term “open source” does not solve any problems, and in fact creates some.

Ambiguity

The term “free software” has an ambiguity problem: an unintended meaning, “Software you can get for zero price,” fits the term just as well as the intended meaning, “software which gives the user certain freedoms.” We address this problem by publishing a more precise definition of free software, but this is not a perfect solution; it cannot completely eliminate the problem. An unambiguously correct term would be better, if it didn't have other problems.

Unfortunately, all the alternatives in English have problems of their own. We've looked at many alternatives that people have suggested, but none is so clearly “right” that switching to it would be a good idea. Every proposed replacement for “free software” has a similar kind of semantic problem, or worse—and this includes “open source software.”

The official definition of “open source software,” as published by the Open Source Initiative, is very close to our definition of free software; however, it is a little looser in some respects, and they have accepted a few licenses that we consider unacceptably restrictive of the users. However, the obvious meaning for the expression “open source software” is “You can look at the source code.” This is a much weaker criterion than free software; it includes free software, but also includes semi-free programs such as Xv, and even some proprietary programs, including Qt under its original license (before the QPL).

That obvious meaning for “open source” is not the meaning that its advocates intend. The result is that most people misunderstand what those advocates are advocating. Here is how writer Neal Stephenson defined “open source”:

Linux is “open source” software meaning, simply, that anyone can get copies of its source code files.

I don't think he deliberately sought to reject or dispute the “official” definition. I think he simply applied the conventions of the English language to come up with a meaning for the term. The state of Kansas published a similar definition:

Make use of open-source software (OSS). OSS is software for which the source code is freely and publicly available, though the specific licensing agreements vary as to what one is allowed to do with that code.

Of course, the open source people have tried to deal with this by publishing a precise definition for the term, just as we have done for “free software.”

But the explanation for “free software” is simple—a person who has grasped the idea of “free speech, not free beer” will not get it wrong again. There is no such succinct way to explain the official meaning of “open source” and show clearly why the natural definition is the wrong one.

Fear of Freedom

The main argument for the term “open source software” is that “free software” makes some people uneasy. That's true: talking about freedom, about ethical issues, about responsibilities as well as convenience, is asking people to think about things they might rather ignore. This can trigger discomfort, and some people may reject the idea for that. It does not follow that society would be better off if we stop talking about these things.

Years ago, free software developers noticed this discomfort reaction, and some started exploring an approach for avoiding it. They figured that by keeping quiet about ethics and freedom, and talking only about the immediate practical benefits of certain free software, they might be able to “sell” the software more effectively to certain users, especially business. The term “open source” is offered as a way of doing more of this—a way to be “more acceptable to business.” The views and values of the Open Source movement stem from this decision.

This approach has proved effective, in its own terms. Today many people are switching to free software for purely practical reasons. That is good, as far as it goes, but that isn't all we need to do! Attracting users to free software is not the whole job, just the first step.

Sooner or later these users will be invited to switch back to proprietary software for some practical advantage. Countless companies seek to offer such temptation, and why would users decline? Only if they have learned to value the freedom free software gives them, for its own sake. It is up to us to spread this idea—and in order to do that, we have to talk about freedom. A certain amount of the “keep quiet” approach to business can be useful for the community, but we must have plenty of freedom talk too.

At present, we have plenty of “keep quiet”, but not enough freedom talk. Most people involved with free software say little about freedom—usually because they seek to be “more acceptable to business.” Software distributors especially show this pattern. Some GNU/Linux operating system distributions add proprietary packages to the basic free system, and they invite users to consider this an advantage, rather than a step backwards from freedom.

We are failing to keep up with the influx of free software users, failing to teach people about freedom and our community as fast as they enter it. This is why non-free software (which Qt was when it first became popular), and partially non-free operating system distributions, find such fertile ground. To stop using the word “free” now would be a mistake; we need more, not less, talk about freedom.

If those using the term “open source” draw more users into our community, that is a contribution, but the rest of us will have to work even harder to bring the issue of freedom to those users' attention. We have to say, “It's free software and it gives you freedom!”—more and louder than ever before.

Would a Trademark Help?

The advocates of “open source software” tried to make it a trademark, saying this would enable them to prevent misuse. This initiative was later dropped, the term being too descriptive to qualify as a trademark; thus, the legal status of “open source” is the same as that of “free software”: there is no legal constraint on using it. I have heard reports of a number of companies' calling software packages “open source” even though they did not fit the official definition; I have observed some instances myself.

But would it have made a big difference to use a term that is a trademark? Not necessarily.

Companies also made announcements that give the impression that a program is “open source software” without explicitly saying so. For example, one IBM announcement, about a program that did not fit the official definition, said this:

As is common in the open source community, users of the ... technology will also be able to collaborate with IBM ...

This did not actually say that the program was “open source”, but many readers did not notice that detail. (I should note that IBM was sincerely trying to make this program free software, and later adopted a new license which does make it free software and “open source”; but when that announcement was made, the program did not qualify as either one.)

And here is how Cygnus Solutions, which was formed to be a free software company and subsequently branched out (so to speak) into proprietary software, advertised some proprietary software products:

Cygnus Solutions is a leader in the open source market and has just launched two products into the [GNU/]Linux marketplace.

Unlike IBM, Cygnus was not trying to make these packages free software, and the packages did not come close to qualifying. But Cygnus didn't actually say that these are “open source software”, they just made use of the term to give careless readers that impression.

These observations suggest that a trademark would not have truly prevented the confusion that comes with the term “open source”.

Misunderstandings(?) of “Open Source”

The Open Source Definition is clear enough, and it is quite clear that the typical non-free program does not qualify. So you would think that “Open Source company” would mean one whose products are free software (or close to it), right? Alas, many companies are trying to give it a different meaning.

At the “Open Source Developers Day” meeting in August 1998, several of the commercial developers invited said they intend to make only a part of their work free software (or “open source”). The focus of their business is on developing proprietary add-ons (software or manuals) to sell to the users of this free software. They ask us to regard this as legitimate, as part of our community, because some of the money is donated to free software development.

In effect, these companies seek to gain the favorable cachet of “open source” for their proprietary software products—even though those are not “open source software”—because they have some relationship to free software or because the same company also maintains some free software. (One company founder said quite explicitly that they would put, into the free package they support, as little of their work as the community would stand for.)

Over the years, many companies have contributed to free software development. Some of these companies primarily developed non-free software, but the two activities were separate; thus, we could ignore their non-free products, and work with them on free software projects. Then we could honestly thank them afterward for their free software contributions, without talking about the rest of what they did.

We cannot do the same with these new companies, because they won't let us. These companies actively invite the public to lump all their activities together; they want us to regard their non-free software as favorably as we would regard a real contribution, although it is not one. They present themselves as “open source companies,” hoping that we will get a warm fuzzy feeling about them, and that we will be fuzzy-minded in applying it.

This manipulative practice would be no less harmful if it were done using the term “free software.” But companies do not seem to use the term “free software” that way; perhaps its association with idealism makes it seem unsuitable. The term “open source” opened the door for this.

At a trade show in late 1998, dedicated to the operating system often referred to as “Linux”, the featured speaker was an executive from a prominent software company. He was probably invited on account of his company's decision to “support” that system. Unfortunately, their form of “support” consists of releasing non-free software that works with the system—in other words, using our community as a market but not contributing to it.

He said, “There is no way we will make our product open source, but perhaps we will make it ‘internal’ open source. If we allow our customer support staff to have access to the source code, they could fix bugs for the customers, and we could provide a better product and better service.” (This is not an exact quote, as I did not write his words down, but it gets the gist.)

People in the audience afterward told me, “He just doesn't get the point.” But is that so? Which point did he not get?

He did not miss the point of the Open Source movement. That movement does not say users should have freedom, only that allowing more people to look at the source code and help improve it makes for faster and better development. The executive grasped that point completely; unwilling to carry out that approach in full, users included, he was considering implementing it partially, within the company.

The point that he missed is the point that “open source” was designed not to raise: the point that users deserve freedom.

Spreading the idea of freedom is a big job—it needs your help. That's why we stick to the term “free software” in the GNU Project, so we can help do that job. If you feel that freedom and community are important for their own sake—not just for the convenience they bring—please join us in using the term “free software”.

Free Software is More Reliable

Apologists for proprietary software like to say, "free software is a nice dream, but we all know that only the proprietary system can produce reliable products. A bunch of hackers just can't do this.''

Empirical evidence disagrees, however; scientific tests, described below, have found GNU software to be more reliable than comparable proprietary software.

This should not be a surprise, there are good reasons for the high reliability of GNU software, good reasons to expect free software will often (though not always) have high reliability.


GNU Utilities Safer!

Barton P. Miller and his colleagues tested the reliability of Unix utility programs in 1990 and 1995. Each time, GNU's utilities came out considerably ahead. They tested seven commercial Unix systems as well as GNU. By subjecting them to a random input stream, they could ``crash (with core dump) or hang (infinite loop) over 40% (in the worst case) of the basic utility programs ...''

These researchers found that the commercial Unix systems had a failure rate that ranged from 15% to 43%. In contrast, the failure rate for GNU was only 7%.

Miller also said that, ``the three commercial systems that we compared in both 1990 and 1995 noticeably improved in reliability, but still had significant rates of failure (the basic utilities from GNU/Linux still were noticeably better than those of the commercial systems).''

For details, see their paper: Fuzz Revisited: A Re-examination of the Reliability of Unix Utilities and Services (postscript 146k) by Barton P. Miller , David Koski, Cjin Pheow Lee, Vivekananda Maganty, Ravi Murthy, Ajitkumar Natarajan, and Jeff Steidl.

Why Free Software is More Reliable

It is no fluke that the GNU utilities are so reliable. There are good reasons why free software tends to be of high quality.

One reason is that free software gets the whole community involved in working together to fix problems. Users not only report bugs, they even fix bugs and send in fixes. Users work together, conversing by email, to get to the bottom of a problem and make the software work trouble-free.

Another is that developers really care about reliability. Free software packages do not always compete commercially, but they still compete for a good reputation, and a program which is unsatisfactory will not achieve the popularity that developers hope for. What's more, an author who makes the source code available for all to see puts his reputation on the line, and had better make the software clean and clear, on pain of the community's disapproval.

Cancer Clinic Relies on Free Software!

The Roger Maris Cancer Center in Fargo, North Dakota (the same Fargo which was recently the scene of a movie and a flood) uses Linux-based GNU systems precisely because reliability is essential. A network of GNU/Linux machines runs the information system, coordinates drug therapies, and performs many other functions. This network needs to be available to the Center's staff at a moment's notice.

Categories of Non-Free and Free Software

Great software article stock. Check it out.

 [diagram of a the different categories of software] This diagram by Chao-Kuei explains the different categories of software. It's available as an XFig file, as a JPEG picture and as a 1.5 magnified PNG image.

Free software
Free software is software that comes with permission for anyone to use, copy, and distribute, either verbatim or with modifications, either gratis or for a fee. In particular, this means that source code must be available. “If it's not source, it's not software.” This is a simplified definition; see also the full definition.

If a program is free, then it can potentially be included in a free operating system such as GNU, or free versions of the GNU/Linux system.

There are many different ways to make a program free—many questions of detail, which could be decided in more than one way and still make the program free. Some of the possible variations are described below. For information on specific free software licenses, see the license list page.

Free software is a matter of freedom, not price. But proprietary software companies sometimes use the term “free software” to refer to price. Sometimes they mean that you can obtain a binary copy at no charge; sometimes they mean that a copy is included on a computer that you are buying. This has nothing to do with what we mean by free software in the GNU project.

Because of this potential confusion, when a software company says its product is free software, always check the actual distribution terms to see whether users really have all the freedoms that free software implies. Sometimes it really is free software; sometimes it isn't.

Many languages have two separate words for “free” as in freedom and “free” as in zero price. For example, French has “libre” and “gratuit”. Not so English; there is a word “gratis” that refers unambiguously to price, but no common adjective that refers unambiguously to freedom. So if you are speaking another language, we suggest you translate “free” into your language to make it clearer. See our list of translations of the term “free software” into various other languages.

Free software is often more reliable than non-free software.

Open Source software
The term “open source” software is used by some people to mean more or less the same category as free software. It is not exactly the same class of software: they accept some licenses that we consider too restrictive, and there are free software licenses they have not accepted. However, the differences in extension of the category are small: nearly all free software is open source, and nearly all open source software is free.

We prefer the term “free software” because it refers to freedom—something that the term “open source“ does not do.

Public domain software
Public domain software is software that is not copyrighted. If the source code is in the public domain, that is a special case of non-copylefted free software, which means that some copies or modified versions may not be free at all.

In some cases, an executable program can be in the public domain but the source code is not available. This is not free software, because free software requires accessibility of source code. Meanwhile, most free software is not in the public domain; it is copyrighted, and the copyright holders have legally given permission for everyone to use it in freedom, using a free software license.

Sometimes people use the term “public domain” in a loose fashion to mean “free” or “available gratis.” However, “public domain” is a legal term and means, precisely, “not copyrighted”. For clarity, we recommend using “public domain” for that meaning only, and using other terms to convey the other meanings.

Under the Berne Convention, which most countries have signed, anything written down is automatically copyrighted. This includes programs. Therefore, if you want a program you have written to be in the public domain, you must take some legal steps to disclaim the copyright on it; otherwise, the program is copyrighted.

Copylefted software
Copylefted software is free software whose distribution terms do not let redistributors add any additional restrictions when they redistribute or modify the software. This means that every copy of the software, even if it has been modified, must be free software.

In the GNU Project, we copyleft almost all the software we write, because our goal is to give every user the freedoms implied by the term “free software.” See Copylefted for more explanation of how copyleft works and why we use it.

Copyleft is a general concept; to actually copyleft a program, you need to use a specific set of distribution terms. There are many possible ways to write copyleft distribution terms, so in principle there can be many copyleft free software licenses. However, in actual practice nearly all copylefted software uses the GNU General Public License. Two different copyleft licenses are usually “incompatible”, which means it is illegal to merge the code using one license with the code using the other license; therefore, it is good for the community if people use a single copyleft license.

Non-copylefted free software
Non-copylefted free software comes from the author with permission to redistribute and modify, and also to add additional restrictions to it.

If a program is free but not copylefted, then some copies or modified versions may not be free at all. A software company can compile the program, with or without modifications, and distribute the executable file as a proprietary software product.

The X Window System illustrates this. The X Consortium releases X11 with distribution terms that make it non-copylefted free software. If you wish, you can get a copy which has those distribution terms and is free. However, there are non-free versions as well, and there are popular workstations and PC graphics boards for which non-free versions are the only ones that work. If you are using this hardware, X11 is not free software for you. The developers of X11 even made X11 non-free for a while.

GPL-covered software
The GNU GPL (General Public License) is one specific set of distribution terms for copylefting a program. The GNU Project uses it as the distribution terms for most GNU software.
The GNU system
The GNU system is the Unix-like operating system, which is entirely free software, that we in the GNU Project have developed since 1984.

A Unix-like operating system consists of many programs. The GNU system includes all the GNU software, as well as many other packages such as the X Window System and TeX which are not GNU software.

The first test release of the complete GNU system was in 1996. This includes the GNU Hurd, our kernel, developed since 1990. In 2001 the GNU system (including the GNU Hurd) began working fairly reliably, but the Hurd still lacks some important features, so it is not widely used. Meanwhile, the GNU/Linux system, an offshoot of the GNU system which uses Linux as the kernel instead of the GNU Hurd, has been a great success since the 90s.

Since the purpose of GNU is to be free, every single component in the GNU system has to be free software. They don't all have to be copylefted, however; any kind of free software is legally suitable to include if it helps meet technical goals. And it isn't necessary for all the components to be GNU software, individually. GNU can and does include non-copylefted free software such as the X Window System that were developed by other projects.

GNU programs
“GNU programs” is equivalent to GNU software. A program Foo is a GNU program if it is GNU software. We also sometimes say it is a “GNU package”.
GNU software
GNU software is software that is released under the auspices of the GNU Project. If a program is GNU software, we also say that it is a GNU program or a GNU package. The README or manual of a GNU package should say it is one; also, the Free Software Directory indentifies all GNU packages.

Most GNU software is copylefted , but not all; however, all GNU software must be free software.

Some GNU software is written by staff of the Free Software Foundation, but most GNU software is contributed by volunteers. Some contributed software is copyrighted by the Free Software Foundation; some is copyrighted by the contributors who wrote it.

Non-free software
Non-free software is any software that is not free. This includes semi-free software and proprietary software.
Semi-free software
Semi-free software is software that is not free, but comes with permission for individuals to use, copy, distribute, and modify (including distribution of modified versions) for non-profit purposes. PGP is an example of a semi-free program.

Semi-free software is much better ethically than proprietary software, but it still poses problems, and we cannot use it in a free operating system.

The restrictions of copyleft are designed to protect the essential freedoms for all users. For us, the only justification for any substantive restriction on using a program is to prevent other people from adding other restrictions. Semi-free programs have additional restrictions, motivated by purely selfish goals.

It is impossible to include semi-free software in a free operating system. This is because the distribution terms for the operating system as a whole are the conjunction of the distribution terms for all the programs in it. Adding one semi-free program to the system would make the system as a whole just semi-free. There are two reasons we do not want that to happen:

  • We believe that free software should be for everyone—including businesses, not just schools and hobbyists. We want to invite business to use the whole GNU system, and therefore we must not include a semi-free program in it.
  • Commercial distribution of free operating systems, including the GNU/Linux system, is very important, and users appreciate the convenience of commercial CD-ROM distributions. Including one semi-free program in an operating system would cut off commercial CD-ROM distribution for it.

The Free Software Foundation itself is non-commercial, and therefore we would be legally permitted to use a semi-free program “internally”. But we don't do that, because that would undermine our efforts to obtain a program which we could also include in GNU.

If there is a job that needs doing with software, then until we have a free program to do the job, the GNU system has a gap. We have to tell volunteers, “We don't have a program yet to do this job in GNU, so we hope you will write one.” If we ourselves used a semi-free program to do the job, that would undermine what we say; it would take away the impetus (on us, and on others who might listen to our views) to write a free replacement. So we don't do that.

Proprietary software
Proprietary software is software that is not free or semi-free. Its use, redistribution or modification is prohibited, or requires you to ask for permission, or is restricted so much that you effectively can't do it freely.

The Free Software Foundation follows the rule that we cannot install any proprietary program on our computers except temporarily for the specific purpose of writing a free replacement for that very program. Aside from that, we feel there is no possible excuse for installing a proprietary program.

For example, we felt justified in installing Unix on our computer in the 1980s, because we were using it to write a free replacement for Unix. Nowadays, since free operating systems are available, the excuse is no longer applicable; we have eliminated all our non-free operating systems, and any new computer we install must run a completely free operating system.

We don't insist that users of GNU, or contributors to GNU, have to live by this rule. It is a rule we made for ourselves. But we hope you will decide to follow it too.

Freeware
The term “freeware” has no clear accepted definition, but it is commonly used for packages which permit redistribution but not modification (and their source code is not available). These packages are not free software, so please don't use “freeware” to refer to free software.
Shareware
Shareware is software which comes with permission for people to redistribute copies, but says that anyone who continues to use a copy is required to pay a license fee.

Shareware is not free software, or even semi-free. There are two reasons it is not:

  • For most shareware, source code is not available; thus, you cannot modify the program at all.
  • Shareware does not come with permission to make a copy and install it without paying a license fee, not even for individuals engaging in nonprofit activity. (In practice, people often disregard the distribution terms and do this anyway, but the terms don't permit it.)
Private software
Private or custom software is software developed for one user (typically an organization or company). That user keeps it and uses it, and does not release it to the public either as source code or as binaries.

A private program is free software in a trivial sense if its unique user has full rights to it. However, in a deeper sense, it does not really make sense to pose the question of whether such a program is free software or not.

In general we do not believe it is wrong to develop a program and not release it. There are occasions when a program is so useful that withholding it from release is treating humanity badly. However, most programs are not that marvelous, and withholding them is not particularly harmful. Thus, there is no conflict between the development of private or custom software and the principles of the free software movement.

Nearly all employment for programmers is in development of custom software; therefore most programming jobs are, or could be, done in a way compatible with the free software movement.

Commercial Software
Commercial software is software being developed by a business which aims to make money from the use of the software. “Commercial” and “proprietary” are not the same thing! Most commercial software is proprietary, but there is commercial free software, and there is non-commercial non-free software.

For example, GNU Ada is always distributed under the terms of the GNU GPL, and every copy is free software; but its developers sell support contracts. When their salesmen speak to prospective customers, sometimes the customers say, “We would feel safer with a commercial compiler.” The salesmen reply, “GNU Ada is a commercial compiler; it happens to be free software.”

For the GNU Project, the emphasis is in the other order: the important thing is that GNU Ada is free software; whether it is commercial is not a crucial question. However, the additional development of GNU Ada that results from its being commercial is definitely beneficial.

Please help spread the awareness that commercial free software is possible. You can do this by making an effort not to say “commercial” when you mean “proprietary.”

Free Software Selling

So many people believe that the spirit of the GNU project is that you should not charge money for distributing copies of software, or that you should charge as little as possible — just enough to cover the cost.

Actually we encourage people who redistribute free software to charge as much as they wish or can. If this seems surprising to you, please read on.

The word “free” has two legitimate general meanings; it can refer either to freedom or to price. When we speak of “free software”, we're talking about freedom, not price. (Think of “free speech”, not “free beer”.) Specifically, it means that a user is free to run the program, change the program, and redistribute the program with or without changes.

Free programs are sometimes distributed gratis, and sometimes for a substantial price. Often the same program is available in both ways from different places. The program is free regardless of the price, because users have freedom in using it.

Non-free programs are usually sold for a high price, but sometimes a store will give you a copy at no charge. That doesn't make it free software, though. Price or no price, the program is non-free because users don't have freedom.

Since free software is not a matter of price, a low price isn't more free, or closer to free. So if you are redistributing copies of free software, you might as well charge a substantial fee and make some money. Redistributing free software is a good and legitimate activity; if you do it, you might as well make a profit from it.

Free software is a community project, and everyone who depends on it ought to look for ways to contribute to building the community. For a distributor, the way to do this is to give a part of the profit to the Free Software Foundation or some other free software development project. By funding development, you can advance the world of free software.

Distributing free software is an opportunity to raise funds for development. Don't waste it!

In order to contribute funds, you need to have some extra. If you charge too low a fee, you won't have anything to spare to support development.

Will a higher distribution price hurt some users?

People sometimes worry that a high distribution fee will put free software out of range for users who don't have a lot of money. With proprietary software, a high price does exactly that — but free software is different.

The difference is that free software naturally tends to spread around, and there are many ways to get it.

Software hoarders try their damnedest to stop you from running a proprietary program without paying the standard price. If this price is high, that does make it hard for some users to use the program.

With free software, users don't have to pay the distribution fee in order to use the software. They can copy the program from a friend who has a copy, or with the help of a friend who has network access. Or several users can join together, split the price of one CD-ROM, then each in turn can install the software. A high CD-ROM price is not a major obstacle when the software is free.

Will a higher distribution price discourage use of free software?

Another common concern is for the popularity of free software. People think that a high price for distribution would reduce the number of users, or that a low price is likely to encourage users.

This is true for proprietary software — but free software is different. With so many ways to get copies, the price of distribution service has less effect on popularity.

In the long run, how many people use free software is determined mainly by how much free software can do, and how easy it is to use. Many users will continue to use proprietary software if free software can't do all the jobs they want to do. Thus, if we want to increase the number of users in the long run, we should above all develop more free software.

The most direct way to do this is by writing needed free software or manuals yourself. But if you do distribution rather than writing, the best way you can help is by raising funds for others to write them.

The term “selling software” can be confusing too

Strictly speaking, “selling” means trading goods for money. Selling a copy of a free program is legitimate, and we encourage it.

However, when people think of “selling software”, they usually imagine doing it the way most companies do it: making the software proprietary rather than free.

So unless you're going to draw distinctions carefully, the way this article does, we suggest it is better to avoid using the term “selling software” and choose some other wording instead. For example, you could say “distributing free software for a fee”—that is unambiguous.

High or low fees, and the GNU GPL

Except for one special situation, the GNU General Public License (GNU GPL) has no requirements about how much you can charge for distributing a copy of free software. You can charge nothing, a penny, a dollar, or a billion dollars. It's up to you, and the marketplace, so don't complain to us if nobody wants to pay a billion dollars for a copy.

The one exception is in the case where binaries are distributed without the corresponding complete source code. Those who do this are required by the GNU GPL to provide source code on subsequent request. Without a limit on the fee for the source code, they would be able set a fee too large for anyone to pay—such as a billion dollars—and thus pretend to release source code while in truth concealing it. So in this case we have to limit the fee for source, to ensure the user's freedom. In ordinary situations, however, there is no such justification for limiting distribution fees, so we do not limit them.

Sometimes companies whose activities cross the line of what the GNU GPL permits plead for permission, saying that they “won't charge money for the GNU software” or such like. They don't get anywhere this way. Free software is about freedom, and enforcing the GPL is defending freedom. When we defend users' freedom, we are not distracted by side issues such as how much of a distribution fee is charged. Freedom is the issue, the whole issue, and the only issue.

Free Manuals and Free Software

The biggest deficiency in free operating systems is not in the software, but it is the lack of good free manuals that we can include in these systems. Many of our most important programs do not come with full manuals. Documentation is an essential part of any software package; when an important free software package does not come with a free manual, that is a major gap. We have many such gaps today.

Once upon a time, many years ago, I thought I would learn Perl. I got a copy of a free manual, but I found it hard to read. When I asked Perl users about alternatives, they told me that there were better introductory manuals—but those were not free.

Why was this? The authors of the good manuals had written them for O'Reilly Associates, which published them with restrictive terms—no copying, no modification, source files not available—which exclude them from the free software community.

That wasn't the first time this sort of thing has happened, and (to our community's great loss) it was far from the last. Proprietary manual publishers have enticed a great many authors to restrict their manuals since then. Many times I have heard a GNU user eagerly tell me about a manual that he is writing, with which he expects to help the GNU project—and then had my hopes dashed, as he proceeded to explain that he had signed a contract with a publisher that would restrict it so that we cannot use it.

Given that writing good English is a rare skill among programmers, we can ill afford to lose manuals this way.

Free documentation, like free software, is a matter of freedom, not price. The problem with these manuals was not that O'Reilly Associates charged a price for printed copies—that in itself is fine. (The Free Software Foundation sells printed copies of free GNU manuals, too.) But GNU manuals are available in source code form, while these manuals are available only on paper. GNU manuals come with permission to copy and modify; the Perl manuals do not. These restrictions are the problems.

The criterion for a free manual is pretty much the same as for free software: it is a matter of giving all users certain freedoms. Redistribution (including commercial redistribution) must be permitted, so that the manual can accompany every copy of the program, on-line or on paper. Permission for modification is crucial too.

As a general rule, I don't believe that it is essential for people to have permission to modify all sorts of articles and books. The issues for writings are not necessarily the same as those for software. For example, I don't think you or I are obliged to give permission to modify articles like this one, which describe our actions and our views.

But there is a particular reason why the freedom to modify is crucial for documentation for free software. When people exercise their right to modify the software, and add or change its features, if they are conscientious they will change the manual too—so they can provide accurate and usable documentation with the modified program. A manual which forbids programmers to be conscientious and finish the job, or more precisely requires them to write a new manual from scratch if they change the program, does not fill our community's needs.

While a blanket prohibition on modification is unacceptable, some kinds of limits on the method of modification pose no problem. For example, requirements to preserve the original author's copyright notice, the distribution terms, or the list of authors, are ok. It is also no problem to require modified versions to include notice that they were modified, even to have entire sections that may not be deleted or changed, as long as these sections deal with nontechnical topics. (Some GNU manuals have them.)

These kinds of restrictions are not a problem because, as a practical matter, they don't stop the conscientious programmer from adapting the manual to fit the modified program. In other words, they don't block the free software community from making full use of the manual.

However, it must be possible to modify all the technical content of the manual, and then distribute the result in all the usual media, through all the usual channels; otherwise, the restrictions do block the community, the manual is not free, and so we need another manual.

Unfortunately, it is often hard to find someone to write another manual when a proprietary manual exists. The obstacle is that many users think that a proprietary manual is good enough—so they don't see the need to write a free manual. They do not see that the free operating system has a gap that needs filling.

Why do users think that proprietary manuals are good enough? Some have not considered the issue. I hope this article will do something to change that.

Other users consider proprietary manuals acceptable for the same reason so many people consider proprietary software acceptable: they judge in purely practical terms, not using freedom as a criterion. These people are entitled to their opinions, but since those opinions spring from values which do not include freedom, they are no guide for those of us who do value freedom.

Please spread the word about this issue. We continue to lose manuals to proprietary publishing. If we spread the word that proprietary manuals are not sufficient, perhaps the next person who wants to help GNU by writing documentation will realize, before it is too late, that he must above all make it free.

We can also encourage commercial publishers to sell free, copylefted manuals instead of proprietary ones. One way you can help this is to check the distribution terms of a manual before you buy it, and prefer copylefted manuals to non-copylefted ones.

Should Be Free ... Why ?

The existence of software inevitably raises the question of how decisions about its use should be made. For example, suppose one individual who has a copy of a program meets another who would like a copy. It is possible for them to copy the program; who should decide whether this is done? The individuals involved? Or another party, called the “owner”?

Software developers typically consider these questions on the assumption that the criterion for the answer is to maximize developers' profits. The political power of business has led to the government adoption of both this criterion and the answer proposed by the developers: that the program has an owner, typically a corporation associated with its development.

I would like to consider the same question using a different criterion: the prosperity and freedom of the public in general.

This answer cannot be decided by current law—the law should conform to ethics, not the other way around. Nor does current practice decide this question, although it may suggest possible answers. The only way to judge is to see who is helped and who is hurt by recognizing owners of software, why, and how much. In other words, we should perform a cost-benefit analysis on behalf of society as a whole, taking account of individual freedom as well as production of material goods.

In this essay, I will describe the effects of having owners, and show that the results are detrimental. My conclusion is that programmers have the duty to encourage others to share, redistribute, study, and improve the software we write: in other words, to write “free” software.(1)

Why The Software Should Not Have Owners

Good article by Richard Stallman


Digital information technology contributes to the world by making it easier to copy and modify information. Computers promise to make this easier for all of us.

Not everyone wants it to be easier. The system of copyright gives software programs “owners”, most of whom aim to withhold software's potential benefit from the rest of the public. They would like to be the only ones who can copy and modify the software that we use.

The copyright system grew up with printing---a technology for mass production copying. Copyright fit in well with this technology because it restricted only the mass producers of copies. It did not take freedom away from readers of books. An ordinary reader, who did not own a printing press, could copy books only with pen and ink, and few readers were sued for that.

Digital technology is more flexible than the printing press: when information has digital form, you can easily copy it to share it with others. This very flexibility makes a bad fit with a system like copyright. That's the reason for the increasingly nasty and draconian measures now used to enforce software copyright. Consider these four practices of the Software Publishers Association (SPA):

  • Massive propaganda saying it is wrong to disobey the owners to help your friend.
  • Solicitation for stool pigeons to inform on their coworkers and colleagues.
  • Raids (with police help) on offices and schools, in which people are told they must prove they are innocent of illegal copying.
  • Prosecution (by the US government, at the SPA's request) of people such as MIT's David LaMacchia, not for copying software (he is not accused of copying any), but merely for leaving copying facilities unguarded and failing to censor their use.

All four practices resemble those used in the former Soviet Union, where every copying machine had a guard to prevent forbidden copying, and where individuals had to copy information secretly and pass it from hand to hand as “samizdat”. There is of course a difference: the motive for information control in the Soviet Union was political; in the US the motive is profit. But it is the actions that affect us, not the motive. Any attempt to block the sharing of information, no matter why, leads to the same methods and the same harshness.

Owners make several kinds of arguments for giving them the power to control how we use information:

  • Name calling.

    Owners use smear words such as “piracy” and “theft”, as well as expert terminology such as “intellectual property” and “damage”, to suggest a certain line of thinking to the public---a simplistic analogy between programs and physical objects.

    Our ideas and intuitions about property for material objects are about whether it is right to take an object away from someone else. They don't directly apply to making a copy of something. But the owners ask us to apply them anyway.

  • Exaggeration.

    Owners say that they suffer “harm” or “economic loss” when users copy programs themselves. But the copying has no direct effect on the owner, and it harms no one. The owner can lose only if the person who made the copy would otherwise have paid for one from the owner.

    A little thought shows that most such people would not have bought copies. Yet the owners compute their “losses” as if each and every one would have bought a copy. That is exaggeration---to put it kindly.

  • The law.

    Owners often describe the current state of the law, and the harsh penalties they can threaten us with. Implicit in this approach is the suggestion that today's law reflects an unquestionable view of morality---yet at the same time, we are urged to regard these penalties as facts of nature that can't be blamed on anyone.

    This line of persuasion isn't designed to stand up to critical thinking; it's intended to reinforce a habitual mental pathway.

    It's elementary that laws don't decide right and wrong. Every American should know that, forty years ago, it was against the law in many states for a black person to sit in the front of a bus; but only racists would say sitting there was wrong.

  • Natural rights.

    Authors often claim a special connection with programs they have written, and go on to assert that, as a result, their desires and interests concerning the program simply outweigh those of anyone else---or even those of the whole rest of the world. (Typically companies, not authors, hold the copyrights on software, but we are expected to ignore this discrepancy.)

    To those who propose this as an ethical axiom---the author is more important than you---I can only say that I, a notable software author myself, call it bunk.

    But people in general are only likely to feel any sympathy with the natural rights claims for two reasons.

    One reason is an overstretched analogy with material objects. When I cook spaghetti, I do object if someone else eats it, because then I cannot eat it. His action hurts me exactly as much as it benefits him; only one of us can eat the spaghetti, so the question is, which? The smallest distinction between us is enough to tip the ethical balance.

    But whether you run or change a program I wrote affects you directly and me only indirectly. Whether you give a copy to your friend affects you and your friend much more than it affects me. I shouldn't have the power to tell you not to do these things. No one should.

    The second reason is that people have been told that natural rights for authors is the accepted and unquestioned tradition of our society.

    As a matter of history, the opposite is true. The idea of natural rights of authors was proposed and decisively rejected when the US Constitution was drawn up. That's why the Constitution only permits a system of copyright and does not require one; that's why it says that copyright must be temporary. It also states that the purpose of copyright is to promote progress---not to reward authors. Copyright does reward authors somewhat, and publishers more, but that is intended as a means of modifying their behavior.

    The real established tradition of our society is that copyright cuts into the natural rights of the public---and that this can only be justified for the public's sake.

  • Economics.

    The final argument made for having owners of software is that this leads to production of more software.

    Unlike the others, this argument at least takes a legitimate approach to the subject. It is based on a valid goal---satisfying the users of software. And it is empirically clear that people will produce more of something if they are well paid for doing so.

    But the economic argument has a flaw: it is based on the assumption that the difference is only a matter of how much money we have to pay. It assumes that “production of software” is what we want, whether the software has owners or not.

    People readily accept this assumption because it accords with our experiences with material objects. Consider a sandwich, for instance. You might well be able to get an equivalent sandwich either free or for a price. If so, the amount you pay is the only difference. Whether or not you have to buy it, the sandwich has the same taste, the same nutritional value, and in either case you can only eat it once. Whether you get the sandwich from an owner or not cannot directly affect anything but the amount of money you have afterwards.

    This is true for any kind of material object---whether or not it has an owner does not directly affect what it is, or what you can do with it if you acquire it.

    But if a program has an owner, this very much affects what it is, and what you can do with a copy if you buy one. The difference is not just a matter of money. The system of owners of software encourages software owners to produce something---but not what society really needs. And it causes intangible ethical pollution that affects us all.

What does society need? It needs information that is truly available to its citizens---for example, programs that people can read, fix, adapt, and improve, not just operate. But what software owners typically deliver is a black box that we can't study or change.

Society also needs freedom. When a program has an owner, the users lose freedom to control part of their own lives.

And above all society needs to encourage the spirit of voluntary cooperation in its citizens. When software owners tell us that helping our neighbors in a natural way is “piracy”, they pollute our society's civic spirit.

This is why we say that free software is a matter of freedom, not price.

The economic argument for owners is erroneous, but the economic issue is real. Some people write useful software for the pleasure of writing it or for admiration and love; but if we want more software than those people write, we need to raise funds.

For ten years now, free software developers have tried various methods of finding funds, with some success. There's no need to make anyone rich; the median US family income, around $35k, proves to be enough incentive for many jobs that are less satisfying than programming.

For years, until a fellowship made it unnecessary, I made a living from custom enhancements of the free software I had written. Each enhancement was added to the standard released version and thus eventually became available to the general public. Clients paid me so that I would work on the enhancements they wanted, rather than on the features I would otherwise have considered highest priority.

The Free Software Foundation (FSF), a tax-exempt charity for free software development, raises funds by selling GNU CD-ROMs, T-shirts, manuals, and deluxe distributions, (all of which users are free to copy and change), as well as from donations. It now has a staff of five programmers, plus three employees who handle mail orders.

Some free software developers make money by selling support services. Cygnus Support, with around 50 employees [when this article was written], estimates that about 15 per cent of its staff activity is free software development---a respectable percentage for a software company.

Companies including Intel, Motorola, Texas Instruments and Analog Devices have combined to fund the continued development of the free GNU compiler for the language C. Meanwhile, the GNU compiler for the Ada language is being funded by the US Air Force, which believes this is the most cost-effective way to get a high quality compiler. [Air Force funding ended some time ago; the GNU Ada Compiler is now in service, and its maintenance is funded commercially.]

All these examples are small; the free software movement is still small, and still young. But the example of listener-supported radio in this country [the US] shows it's possible to support a large activity without forcing each user to pay.

As a computer user today, you may find yourself using a proprietary program. If your friend asks to make a copy, it would be wrong to refuse. Cooperation is more important than copyright. But underground, closet cooperation does not make for a good society. A person should aspire to live an upright life openly with pride, and this means saying “No” to proprietary software.

You deserve to be able to cooperate openly and freely with other people who use software. You deserve to be able to learn how the software works, and to teach your students with it. You deserve to be able to hire your favorite programmer to fix it when it breaks.

You deserve free software.

Definition Of "Free Software"

We maintain this free software definition to show clearly what must be true about a particular software program for it to be considered free software. Free software is just a matter of liberty, not price. To understand the concept, you should think of free as in free speech, not as in free beer.

Free software is a matter of the users' freedom to run, copy, distribute, study, change and improve the software. More precisely, it refers to four kinds of freedom, for the users of the software:

  • The freedom to run the program, for any purpose (freedom 0).
  • The freedom to study how the program works, and adapt it to your needs (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 improve the program, and release your improvements to the public, so that the whole community benefits (freedom 3). 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 without modifications, either gratis or charging a fee for distribution, to anyone anywhere. Being free to do these things means (among other things) that you do not have to ask or pay for permission.

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 user's purpose that matters, not the developer's purpose; you as a user are free to run a 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 make them.

In order for the freedoms to make changes, and to publish improved 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.

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 an existing module, such as if it requires you to be the copyright holder of any code you add, then the license is too restrictive to qualify as free.

In order for these freedoms to be real, they must be irrevocable as long as you do nothing wrong; if the developer of the software has the power to revoke the license, without your doing anything 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 protects them.

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 sell copies.

Free software does not mean non-commercial. 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.

Rules about how to package a modified version are acceptable, if they don't substantively block your freedom to release modified versions, or your freedom to make and use modified versions privately. 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. (Note that such a rule still leaves you the choice of whether to publish 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. It is also acceptable for the license to require that, if you have distributed a modified version and a previous developer asks for a copy of it, you must send one, or that you identify yourself on your modifications.

In the GNU project, we use copyleft to protect these freedoms legally for everyone. But non-copylefted free software also exists. We believe there are important reasons why it is better to use copyleft, but if your program is non-copylefted free software, we can still use it.

See Categories 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 regulations 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.

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 non-free.

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 non-free.

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 Confusing Words and Phrases that are Worth Avoiding for a discussion of these terms. We also have a list of translations of free software 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 list of licenses. 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 FSF 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.