Linux and the GNU Project

by Richard Stallman

Many computer users run a modified version of the GNU system (18k characters) every day, without realizing it. Through a peculiar turn of events, the version of GNU which is widely used today is more often known as ``Linux'', and many users are not aware of the extent of its connection with the GNU Project.

There really is a Linux; it is a kernel, and these people are using it. But you can't use a kernel by itself; a kernel is useful only as part of a whole operating system. Linux is normally used in a combination with the GNU operating system: the system is basically GNU, with Linux functioning as the kernel.

Many users are not fully aware of the distinction between the kernel, which is Linux, and the whole system, which they also call ``Linux''. The ambiguous use of the name doesn't promote understanding.

Programmers generally know that Linux is a kernel. But since they have generally heard the whole system called ``Linux'' as well, they often envisage a history which fits that name. For example, many believe that once Linus Torvalds finished writing the kernel, his friends looked around for other free software, and for no particular reason most everything necessary to make a Unix-like system was already available.

What they found was no accident--it was the GNU system. The available free software added up to a complete system because the GNU Project had been working since 1984 to make one. The GNU Manifesto (31k characters) had set forth the goal of developing a free Unix-like system, called GNU. The Initial Announcement of the GNU Project also outlines some of the original plans for the GNU system. By the time Linux was written, the system was almost finished.

Most free software projects have the goal of developing a particular program for a particular job. For example, Linus Torvalds set out to write a Unix-like kernel (Linux); Donald Knuth set out to write a text formatter (TeX); Bob Scheifler set out to develop a window system (X Windows). It's natural to measure the contribution of this kind of project by specific programs that came from the project.

If we tried to measure the GNU Project's contribution in this way, what would we conclude? One CD-ROM vendor found that in their ``Linux distribution'', GNU software was the largest single contingent, around 28% of the total source code, and this included some of the essential major components without which there could be no system. Linux itself was about 3%. So if you were going to pick a name for the system based on who wrote the programs in the system, the most appropriate single choice would be ``GNU''.

But we don't think that is the right way to consider the question. The GNU Project was not, is not, a project to develop specific software packages. It was not a project to develop a C compiler, although we did. It was not a project to develop a text editor, although we developed one. The GNU Project's aim was to develop a complete free Unix-like system: GNU.

Many people have made major contributions to the free software in the system, and they all deserve credit. But the reason it is a system--and not just a collection of useful programs--is because the GNU Project set out to make it one. We made a list of the programs needed to make a complete free system, and we systematically found, wrote, or found people to write everything on the list. We wrote essential but unexciting major components, such as the assembler and linker, because you can't have a system without them. A complete system needs more than just programming tools; the Bourne Again SHell, the PostScript interpreter Ghostscript, and the GNU C library are just as important.

By the early 90s we had put together the whole system aside from the kernel (and we were also working on a kernel, the GNU Hurd, which runs on top of Mach). Developing this kernel has been a lot harder than we expected, and we are still working on finishing it.

Fortunately, you don't have to wait for it, because Linux is working now. When Linus Torvalds wrote Linux, he filled the last major gap. People could then put Linux together with the GNU system to make a complete free system: a Linux-based GNU system (or GNU/Linux system, for short).

Putting them together sounds simple, but it was not a trivial job. The GNU C library (called glibc for short) needed substantial changes. Integrating a complete system as a distribution that would work ``out of the box'' was a big job, too. It required addressing the issue of how to install and boot the system--a problem we had not tackled, because we hadn't yet reached that point. The people who developed the various system distributions made a substantial contribution.

Aside from GNU, one other project has independently produced a free Unix-like operating system. This system is known as BSD, and it was developed at UC Berkeley. The BSD developers were inspired to make their work free software by the example of the GNU Project, and occasionally encouraged by GNU activists, but their actual work had little overlap with GNU. BSD systems today use some GNU software, just as the GNU system and its variants use some BSD software; but taken as wholes, they are two different systems which evolved separately. A free operating system that exists today is almost certainly either a variant of the GNU system, or a kind of BSD system.

The GNU Project supports GNU/Linux systems as well as the GNU system--even with funds. We funded the rewriting of the Linux-related extensions to the GNU C library, so that now they are well integrated, and the newest GNU/Linux systems use the current library release with no changes. We also funded an early stage of the development of Debian GNU/Linux.

We use Linux-based GNU systems today for most of our work, and we hope you use them too. But please don't confuse the public by using the name ``Linux'' ambiguously. Linux is the kernel, one of the essential major components of the system. The system as a whole is more or less the GNU system, with Linux added. When you're talking about this combination, please call it ``GNU/Linux''.

If you want to make a link on ``GNU/Linux'' for further reference, this page and http://www.gnu.org/gnu/the-gnu-project.html are good choices. If you mention Linux, the kernel, and want to add a link for further reference, http://www.kernel.org/ is a good URL to use.

Copyright 1997, 1998 Richard Stallman

Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.

Updated: 30 Nov 2000 paulv


What's is in a name?

By:- Richard Stallman

Names convey meanings; our choice of names determines the meaning of what we say. An inappropriate name gives people the wrong idea. A rose by any name would smell as sweet--but if you call it a pen, people will be rather disappointed when they try to write with it. And if you call pens "roses", people may not realize what they are good for. If you call our operating system "Linux", that conveys a mistaken idea of the system's origin, history, and purpose. If you call it GNU/Linux, that conveys (though not in detail) an accurate idea.

But does this matter for our community? Is it important whether people know the system's origin, history, and purpose? Yes--because people who forget history are often condemned to repeat it. The Free World which has developed around GNU/Linux is not secure; the problems that led us to develop GNU are not completely eradicated, and they threaten to come back.

When I explain why it's appropriate to call the operating system "GNU/Linux" rather than "Linux", people sometimes respond this way:

Granted that the GNU Project deserves credit for this work, is it really worth a fuss when people don't give credit? Isn't the important thing that the job was done, not who did it? You ought to relax, take pride in the job well done, and not worry about the credit.

This would be wise advice, if only the situation were like that--if the job were done and it were time to relax. If only that were true! But challenges abound, and this is no time to take the future for granted. Our community's strength rests on commitment to freedom and cooperation. Using the name GNU/Linux is a way for people to remind themselves and inform others of these goals.

It is possible to write good free software without thinking of GNU; much good work has been done in the name of Linux also. But "Linux" has been associated ever since it was first coined with a philosophy that does not make a commitment to the freedom to cooperate. As the name becomes used increasingly by business, we will have even more trouble making it connect with community spirit.

A great challenge to the future of free software comes from the tendency of the "Linux" distribution companies to add non-free software to GNU/Linux in the name of convenience and power. All the major commercial distribution developers do this. Only Red Hat offers an all-free CD product, and no stores carry it; the other companies don't even produce such a thing. Most companies do not clearly identify the non-free packages in their distributions; many even develop non-free software and add it to the system.

People justify adding non-free software in the name of the "popularity of Linux"--in effect, valuing popularity above freedom. Sometimes this is openly admitted. For instance, Wired Magazine says Robert McMillan, editor of Linux Magazine, "feels that the move toward open source software should be fueled by technical, rather than political, decisions." And Caldera's CEO openly urged users to drop the goal of freedom and work instead for the "popularity of Linux". (http://www.zdnet.com/filters/printerfriendly/0,6061,2552025-2,00.html.)

Adding non-free software to the GNU/Linux system may increase the popularity, if by popularity we mean the number of people using some of GNU/Linux in combination with non-free software. But at the same time, it implicitly encourages the community to accept non-free software as a good thing, and forget the goal of freedom. It is no use driving faster if you can't stay on the road.

When the non-free "add-on" is a library or programming tool, it can become a trap for free software developers. When they write free software that depends on the non-free package, their software cannot be part of a completely free system. Motif and Qt trapped large amounts of free software in this way in the past, creating problems whose solutions took years. The Motif problem is still not entirely solved, since LessTif needs some polishing (please volunteer!). Sun's non-free Java implementation is now having a similar effect.

If our community keeps moving in this direction, it could redirect the future of GNU/Linux into a mosaic of free and non-free components. Five years from now, we will surely still have plenty of free software; but if we are not careful, it will hardly be usable without the non-free software that users expect to find with it. If this happens, our campaign for freedom will have failed.

If releasing free alternatives were simply a matter of programming, solving future problems might become easier as our community's development resources increase. But we face obstacles which threaten to make this harder: laws that prohibit free software. As software patents mount up (see petition.eurolinux.org, and sign it!), and as laws like the DMCA are used to prohibit the development of free software for important jobs such as viewing a DVD or listening to a RealAudio stream, we will find ourselves with no clear way to fight the patented and secret data formats except to reject the non-free programs that use them.

Meeting these challenges will require many different kinds of effort. But what we need above all, to confront any kind of challenge, is to remember the goal of freedom to cooperate. We can't expect a mere desire for powerful, reliable software to motivate people to make great efforts. We need the kind of determination that people have when they fight for their freedom and their community, determination to keep on for years and not give up.

In our community, this goal and this determination emanate mainly from the GNU Project. We're the ones who talk about freedom and community as something to stand firm for; the organizations that speak of "Linux" normally don't say this. The magazines about "Linux" are typically full of ads for non-free software; the companies that package "Linux" add non-free software to the system; other companies "support Linux" with non-free applications; the user groups for "Linux" typically invite salesman to present those applications. The main place people in our community are likely to come across the idea of freedom and determination is in the GNU Project.

But when people come across it, will they feel it relates to them?

People who know they are using a system that came out of the GNU Project can see a direct relationship between themselves and GNU. They won't automatically agree with our philosophy, but at least they will see a reason to think seriously about it. In contrast, people who consider themselves "Linux users", and believe that the GNU Project "developed tools which proved to be useful in Linux", typically perceive only an indirect relationship between GNU and themselves. They may just ignore the GNU philosophy when they come across it.

The GNU Project is idealistic, and anyone encouraging idealism today faces a great obstacle: the prevailing ideology encourages people to dismiss idealism as "impractical". Our idealism has been extremely practical: it is the reason we have a free GNU/Linux operating system. People who love this system ought to know that it is our idealism made real.

If "the job" really were done, if there were nothing at stake except credit, perhaps it would be wiser to let the matter drop. But we are not in that position. To inspire people to do the work that needs to be done, we need to be recognized for what we have already done. Please help us, by calling the operating system GNU/Linux.

Ps. For an explanation of the history of the GNU/Linux system as it relates to the question of naming, see http://www.gnu.org/gnu/linux-and-gnu.html

Copyright 2000 Richard Stallman Verbatim copying and redistribution of this entire article are permitted in any medium provided this notice and the copyright notice are preserved.

Updated: 22 Oct 2000 bfteam