GNU/Linux FAQ
by Richard Stallman
When people see that we use and recommend the name GNU/Linux for a system that many others call just "Linux", they ask many questions. Here are common questions, and our answers.
See "Linux and the GNU Project" (http://www.gnu.org/gnu/linux-and-gnu.html) for more explanation, and "The GNU Project" (http://www.gnu.org/gnu/the-gnu-project.html) for the history.
Calling the system GNU/Linux recognizes the role that our idealism played in building our community, and helps the public recognize the practical importance of these ideals [ http://www.gnu.org/gnu/why-gnu-linux.html ].
The people who combined Linux with the GNU system were not aware that that's what their activity amounted to. They started with Linux, the kernel, and added GNU to it a piece at a time. After a while they had something that was more GNU than Linux, but they didn't realize that, and they called it "Linux" even though that name was no longer appropriate for what they had. It took a few years for us to realize what a problem this was and ask people to correct the practice. By that time, the confusion had a big head start.
Most of the people who call the system "Linux" have never heard why that's not the right thing. They saw others using that name and assume it must be right. The name "Linux" also spreads a false picture of the system's origin, because people tend to suppose that the system's history was such as to make that name right. For instance, they often believe its development was started by Linus Torvalds in 1991. This false picture tends to reinforce the idea that the system should be called "Linux".
Many of the questions in this file represent people's attempts to find a justification for the name they first learned to use.
Linus Torvalds was partly influenced by a speech about GNU in Finland in 1990. It's possible that even without this influence he might have written a Unix-like kernel, but it probably would not have been free software. Linux became free in 1992 when Linus rereleased it under the GNU GPL. (See the release notes for version 0.12.)
Even if Torvalds had released Linux under some other free software license, a free kernel alone would not have made much difference to the world. The significance of Linux came from fitting into a larger framework, a complete free operating system: GNU/Linux.
However, there are people who do not like our saying this. Sometimes those people push us away in response. On occasion they are so rude that one wonders if they are intentionally trying to intimidate us into silence. It doesn't silence us, but it does tend to divide the community, so we hope you can convince them to stop.
However, this is only a secondary cause of division in our community. The largest division in the community is between people who appreciate free software as a social and ethical issue and consider proprietary software a social problem (supporters of the free software movement), and those who cite only practical benefits and present free software only as an efficient development model (the open source movement).
This disagreement is not just a matter of names--it is a matter of differing basic values. It is essential for the community to see and think about this disagreement. The names "free software" and "open source" are the banners of the two positions. See "Why Free Software Is Better Than Open Source" (http://www.gnu.org/philosophy/free-software-for-freedom.html).
The disagreement over values partially aligns with the amount of attention people pay to the GNU Project's role in our community. People who value freedom are more likely to call the system "GNU/Linux", and people who learn that the system is "GNU/Linux" are more likely to pay attention to our philosophical arguments for freedom and community (which is why the choice of name for the system makes a real difference for society). However, the disagreement would probably exist even if everyone knew the system's real origin and its proper name, because the issue is a real one. It can only go away if we who value freedom either persuade everyone (which won't be easy) or are defeated entirely (let's hope not).
The people who say this are probably geeks thinking of the geeks they know. Geeks often do know about GNU, but many have a completely wrong idea of what GNU is. For instance, many think it is a collection of "tools" [ http://www.gnu.org/gnu/gnu-linux-faq.html#tools ], or a project to develop tools.
The wording of this question, which is typical, illustrates another common misconception. To speak of "GNU's role" in developing something assumes that GNU is a group of people. GNU is an operating system. It would make sense to talk about the GNU Project's role in this or some other activity, but not that of GNU.
Most everyone in developed countries really does know that the "Windows" system is made by Microsoft, so shortening "Microsoft Windows" to "Windows" does not mislead anyone as to that system's nature and origin. Shortening "GNU/Linux" to "Linux" does give the wrong idea.
The question is itself misleading because it compares "GNU" to a software development organization. It makes sense to contrast the GNU Project with Microsoft, or contrast GNU with Microsoft Windows, but GNU and Microsoft are not comparable.
The GNU Project was named after the GNU operating system--it's the project to develop the GNU system. (See the 1983 initial announcement at <http://www.gnu.org/gnu/initial-announcement.html>.)
We developed programs such as GCC, GNU Emacs, GAS, GLIBC, BASH, etc., because we needed them for the GNU operating system. GCC, the GNU Compiler Collection is the compiler that we wrote for the GNU operating system. We, the many people working on the GNU Project, developed Ghostscript, GNUCash, GNU Chess and GNOME for the GNU system too.
The kernel is one of the programs in an operating system--the program that allocates the machine's resources to the other programs that are running. The kernel also takes care of starting and stopping other programs.
To confuse matters, some people use the term "operating system" to mean "kernel". Both uses of the term seem to go back many years. The use of "operating system" to mean "kernel" is found in a number of textbooks on system design, going back to the 80s. At the same time, in the 80s, the "Unix operating system" was understood to include all the system programs, and Berkeley's version of Unix included even games. Since we intended GNU to be a Unix-like operating system, we use the term "operating system" in the same way.
Most of the time when people speak of the "Linux operating system" they are using "operating system" in the same sense we use: they mean the whole collection of programs. If that's what you are referring to, please call it "GNU/Linux". If you mean just the kernel, then "Linux" is the right name for it, but please say "kernel" also to avoid ambiguity about which body of software you mean.
If you prefer to use some other term such as "system distribution" for the entire collection of programs, please do. Then you would talk about GNU/Linux system distributions.
Because those two constructions are used synonymously, the expression "the Linux kernel" can easily be misunderstood as meaning "the kernel of Linux" and implying that Linux must be more than a kernel. You can avoid the possibility of this misunderstanding by saying or writing "the kernel, Linux" or "Linux, the kernel."
The shortest legitimate name for this system is "GNU", but we call it "GNU/Linux" for the reasons given below.
If you feel even more strongly about giving credit where it is due, you might feel that some secondary contributors also deserve credit in the system's name. If so, far be it from us to argue against it. If you feel that X11 deserves credit in the system's name, and you want to call the system GNU/X11/Linux, please do. If you feel that Perl simply cries out for mention, and you want to write GNU/Linux/Perl, go ahead.
Since a long name such as GNU/X11/Apache/Linux/TeX/Perl/Python/FreeCiv becomes absurd, at some point you will have to set a threshold and omit the names of the many other secondary contributions. There is no one obvious right place to set the threshold, so wherever you set it, we won't argue against it.
Different threshold levels would lead to different choices of name for the system. But one name that cannot result from concerns of fairness and giving credit, not for any possible threshold level, is "Linux". It can't be fair to give all the credit to one secondary contribution (Linux) while omitting the principal contribution (GNU).
Linux is not a GNU package; that is, it wasn't developed under the GNU Project's aegis or contributed specifically to the GNU Project. Linus Torvalds wrote Linux independently, as his own project. So the "Linux, which is a GNU package" meaning is not right.
We're not talking about a distinct GNU version of Linux, the kernel. The GNU Project does not have a separate version of Linux. GNU/Linux systems don't use a different version of Linux; the main use of Linux is in these systems, and the standard version of Linux is developed for them. So "GNU's version of Linux" is not right either.
We're talking about a version of GNU, the operating system, distinguished by having Linux as the kernel. A slash fits the situation because it means "combination." (Think of "Input/Output".) This system is the combination of GNU and Linux; hence, "GNU/Linux".
There are other ways to express "combination". If you think that a plus-sign is clearer, please use that. In French, a dash is clear: "GNU-Linux". In Spanish, we sometimes say "GNU con Linux".
However, if you prefer to call the system "Linux/GNU", that is a lot better than what people usually do, which is to omit GNU entirely and make it seem that the whole system is Linux.
We can't make them change, but we're not the sort to give up just because the road isn't easy. You may not have as much influence at your disposal as IBM or Red Hat, but you can still help. Together we can change the situation to the point where companies will make more profit calling it "GNU/Linux".
The question is how to try to change this.
Given that most of the community which uses this version of GNU already does not realize it is such, disowning these adulterated versions, saying they are not really GNU, would not teach the users to value freedom more. They would not get the intended message. They would only respond they never thought these systems were GNU in the first place.
The way to lead these users to see a connection with freedom is exactly the opposite: to inform them that all these system versions are versions of GNU, that they all are based on a system that exists specifically for the sake of the users' freedom. With this understanding, they can start to recognize Lindows and so-called "United Linux" as perverted, adulterated versions of GNU.
It is very useful to start GNU/Linux User Groups, which call the system GNU/Linux and adopt the ideals of the GNU Project as a basis for their activities. If the Linux User Group in your area has the problems describe above, we suggest you either campaign within the group to change its orientation (and name) or start a new group. The people who focus on the more superficial goals have a right to their views, but don't let them drag you along!
As for developing a distribution of GNU/Linux, we already did this once, when we funded the early development of Debian GNU/Linux. To do it again now does not seem useful; it would be a lot of work, and unless the new distribution had substantial practical advantages over other distributions, it would serve no purpose.
There is another reason why we don't want to take some existing version of GNU/Linux and relabel it as "GNU": that would be somewhat like making a version of the GNU system and labeling it "Linux". That wasn't right, and we don't want to act like that.
The people who had made the changes showed little interest in cooperating with us. One of them actually told us that he didn't care about working with the GNU Project because he was a "Linux user". That came as a shock, because the people who ported GNU packages to other systems had generally wanted to work with us to get their changes installed. Yet these people, developing a system that was primarily based on GNU, were the first (and still practically the only) group that was unwilling to work with us.
It was this experience that first showed us that people were calling a version of the GNU system "Linux", and that this confusion was obstructing our work. Asking you to call the system "GNU/Linux" is our response to that problem, and to the other problems caused by the "Linux" misnomer.
GNU, the operating system, is made up of many different programs. Some of the programs in GNU were written as part of the GNU Project or specifically contributed to it; these are the GNU packages, and we often use "GNU" in their names.
It's up to the developers of a program to decide if they want to contribute it and make it a GNU package. If you have developed a program and you would like it to be a GNU package, please write to <gnu@gnu.org>, so we can evaluate it and decide whether we want it.
It wouldn't be fair to put the name GNU on every individual program that is released under the GPL. If you write a program and release it under the GPL, that doesn't mean the GNU Project wrote it or that you wrote it for us. For instance, the kernel, Linux, is released under the GNU GPL, but Linus did not write it as part of the GNU Project--he did the work independently. If something is not a GNU package, the GNU Project can't take credit for it, and putting "GNU" in its name would be improper.
In contrast, we do deserve the overall credit for the GNU operating system as a whole, even though not for each and every program in it. The system exists as a system because of our determination and persistence, starting in 1984, many years before Linux was begun.
The operating system in which Linux became popular was basically the same as the GNU operating system. It was not entirely the same, because it had a different kernel, but it was mostly the same system. It was a variant of GNU. It was the GNU/Linux system.
Linux continues to be used primarily in derivatives of that system--in today's versions of the GNU/Linux system. What gives these systems their identity is GNU and Linux at the center of them, not particularly Linux alone.
No code in GNU comes from Unix, but GNU is a Unix-compatible system; therefore, many of the ideas and specifications of GNU do come from Unix. The name "GNU" is a humorous way of paying tribute to Unix, following a hacker tradition of recursive acronyms that started in the 70s.
The first such recursive acronym was TINT, "TINT Is Not TECO". The author of TINT wrote another implementation of TECO (there were already many of them, for various systems), but instead of calling it by a dull name like "somethingorother TECO", he thought of a clever amusing name. (That's what hacking means: playful cleverness.)
Other hackers enjoyed that name so much that we imitated the approach. It became a tradition that, when you were writing from scratch a program that was similar to some existing program (let's imagine its name was "Klever"), you could give it a recursive acronym name, such as "MINK" for "MINK Is Not Klever." In this same spirit we called our replacement for Unix "GNU's Not Unix".
Historically, AT&T which developed Unix did not want anyone to give it credit by using "Unix" in the name of a similar system. AT&T did not want this even if the system did use code from Unix, not even if it was 99% Unix. AT&T disliked such credit so strongly that it would threaten to sue you for trademark infringement if you tried to give AT&T credit in that way. This is why each of the various modified versions of Unix (all of them just as proprietary as Unix), produced by various computer companies, had some other name.
The BSD system was developed by UC Berkeley as non-free software in the 80s, and became free in the early 90s. A free operating system that exists today is almost certainly either a variant of the GNU system, or a kind of BSD system.
People sometimes ask whether BSD too is a variant of GNU, as GNU/Linux is. It is not. The BSD developers were inspired to make their code free software by the example of the GNU Project, and explicit appeals from GNU activists helped convince them to start, but the code had little overlap with GNU.
BSD systems today use some GNU packages, just as the GNU system and its variants use some BSD programs; however, taken as wholes, they are two different systems that evolved separately. The BSD developers did not write a kernel and add it to the GNU system, so a name like GNU/BSD would not fit the situation.
The connection between GNU/Linux and GNU is much closer, and that's why the name "GNU/Linux" is appropriate for it.
There is a version of GNU which uses the kernel from NetBSD. Its developers call it "Debian GNU/NetBSD", but "GNU/kernelofNetBSD" would be more accurate, since NetBSD is an entire system, not just the kernel. This is not a BSD system, since most of the system is the same as the GNU/Linux system.
People who think of the kernel as more important than all the rest of the system say, "They all contain Linux, so let's call them all Linux systems." But any two of these systems are mostly different, and calling them by the same name is misleading. (It leads people to think that the kernel as more important than all the rest of the system, for instance.)
In the small embedded systems, Linux may be most of the system; perhaps "Linux systems" is the right name for them. They are very different from GNU/Linux systems, which are more GNU than Linux. The hypothetical IBM system would be different from either of those. The right name for it would be AIX/Linux: basically AIX, but with Linux as the kernel. These different names would show users how these systems are different.
Linus publicly states his disagreement with the free software movement's ideals. He developed non-free software in his job for many years (and said so to a large audience at a "Linux"World show), and publicly invites fellow developers of Linux, the kernel, to use non-free software to work on it with him. He goes even further, and rebukes people who suggest that engineers and scientists should consider social consequences of our technical work--rejecting the lessons society learned from the development of the atom bomb.
There is nothing wrong with writing a free program for the motivations of learning and having fun; the kernel Linus wrote for those reasons was an important contribution to our community. But those motivations are not the reason why the complete free system, GNU/Linux, exists, and they won't secure our freedom in the future. The public needs to know this. Linus has the right to promote his views; however, people should that our earlier and larger work stems from our views.
It is ineffective because it may not sink in, and surely will not propagate. Some of the people who hear your explanation will pay attention, and they may learn a correct picture of the system's origin. But they are unlikely to repeat the explanation to others whenever they talk about the system. They will probably just call it "Linux". Without particularly intending to, they will help spread the incorrect picture.
It is inefficient because it takes a lot more time. Saying and writing "GNU/Linux" will take you only a few seconds a day, not minutes, so you can afford to reach far more people that way. Distinguishing between Linux and GNU/Linux when you write and speak is by far the easiest way to help the GNU Project effectively.
Why do we take the risk of making a request that sometimes leads people to ridicule us? Because often it has useful results that help the GNU Project. We will run the risk of undeserved abuse to achieve our goals.
If you see such an ironically unfair situation occurring, please don't sit idly by. Please teach the laughing people the real history. When they see why the request is justified, those who have any sense will stop laughing.
It makes no sense to worry about alienating people who are already mostly uncooperative, and it is self-defeating to be deterred from correcting a major problem lest we anger the people who perpetuate it. Therefore, we will continue trying to correct the misnomer.
We hope you disagree with that premise just as we do.
We could never have developed a free operating system without first denying the belief, held by most people, that proprietary software was legitimate and acceptable.
We hope that you are one of those for whom right and wrong do matter.
Please see the Translations README [ http://www.gnu.org/server/standards/README.translations.html ] for information on coordinating and submitting translations of this article.
Copyright (C) 2001 Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111, USA
Verbatim copying and distribution of this entire article is permitted in any medium
without royalty provided this notice is preserved.