Can GNU be used without Linux

Linux and the GNU project

by Richard Stallman

[Català |简体 中文 |繁體 中文 | Česky | German | English | Español | فارسی | Français | עברית | Italiano |日本語 | 한국어 | Polski | Português | Română | Русский | Srpsko-Hrvatski | Slovensko | Српски | Tagalog]

Many computer users, without realizing it, use a modified version of the GNU system every day. (18k) In a strange twist of events, the common version of GNU is more commonly known as `` Linux '', but many users are unaware of the extent to which this is related to the GNU Project.

There's a Linux out there and it's used, but it's not the operating system. Linux is the kernel: the program in the system that allocates the system resources to the other running programs. The kernel is an important part of an operating system, but useless on its own; it can only work in conjunction with a complete operating system. Linux is usually used in combination with the GNU operating system: the whole system is basically GNU, functioning with Linux as its kernel.

Many users are not fully aware of the distinction between the kernel, which is Linux, and the whole system that they also call 'Linux'. This ambiguous use of the name is not very easy to understand. These users often think that the whole operating system was developed by Linus Torvalds in 1991, with a little help from others.

Programmers usually know that Linux is a kernel. But since you've heard that the whole system has been called 'Linux' in general, you've come up with a story that would justify naming the whole system after the kernel. For example, many believe that once Linus Torvalds finished Linux, his users looked for other free software for their system and discovered that (for no particular reason) almost everything needed for a Unix-like system was already available.

What they found wasn't an accident - it was the (as yet incomplete) GNU system. It was available free software put together into a complete system because the GNU Project had been working to create one since 1984. The GNU Manifesto (31k) stated the goal of developing a free Unix-like system called GNU. The initial announcement of the GNU project also gives an overview of the original plans for the GNU system. By the time Linux was being written, GNU was almost finished.

Most free software projects aim to develop a specific program for a specific task. For example, Linus Torvalds set out to write a Unix-like kernel (Linux); Donald Knuth a text formatter (TeX); and Bob Scheifler developed a window system (the X Window System). It is understandable to measure the contribution of a project against the specific programs that come out of that project.

What conclusion would we come to if we tried to measure the contribution of the GNU Project thereafter? A CD-ROM seller once found that GNU software was the largest portion of a single project in their `` Linux distribution '', accounting for around 28% of the total source code. And that included some of the major key components without which there could be no system. Linux itself made up about 3%. Now, if one wanted to choose a name for the system based on who wrote the programs on the system, the most appropriate single choice would be `` GNU ''.

But we don't think that is the right way to judge the matter. The GNU project was and is not a project to develop specific software packages. It wasn't a project to develop a C compiler, although we did. It wasn't a project to develop a text editor, although we did develop one. The aim of the GNU project was a completely free, Unix-like system to develop: GNU.

Many people have made significant contributions to the free software in the system, and we are grateful to all of them. But the reason it's a coherent system is, and not just a collection of useful programs, is that the GNU Project aimed to do that from the beginning. We made a list of the programs that we still needed to implement a full System and proceeded systematically by finding, writing, or finding people to write everything on the list. We wrote essential but unexciting (1) components as there can be no system without them. Some of our system components, the programming tools, became popular among programmers in their own way. But we also wrote many components that are not tools (2). We even developed a chess game, GNU Chess, because a complete system needs good games.

In the early 90s we had the whole system put together, apart from the kernel (we were also working on a kernel, the GNU Hurd, which was built on top of Mach). Developing this kernel was much more difficult than we thought; the GNU Hurd started running reliably in 2001. We are now beginning to prepare for the real release of the GNU system, with the GNU Hurd.

Fortunately, we didn't have to wait for the Hurd as Linux was available. By writing Linux, Linus Torvalds filled the last big gap. You could then merge Linux with the GNU system to make a complete, free system: a Linux-based version of the GNU system; in short, the GNU / Linux system. The first notes on the Linux release admitted that Linux was a kernel that was used with parts of GNU: "Most programs used with Linux are GNU software and licensed under the GNU copyleft. These programs are not in the Version included - ask me (or GNU) for more information. "

Putting it together sounds easy, but it wasn't an easy job. Some GNU components (3) had to be changed significantly to work with Linux. Offering a complete system as a distribution that would work 'out of the box' was also a big task. The question of how to install and boot the system had to be resolved - a problem that we hadn't tackled because we hadn't gotten to that point. The people who developed the various distributions made a significant contribution.

The GNU Project supports both GNU / Linux systems and the GNU system - even with funds. We supported the rewriting of the Linux-related extensions to the GNU C library so that they are now well integrated. The latest GNU / Linux systems use the latest version of the library without having to make any changes. We also funded an early stage of Debian GNU / Linux development.

We use Linux-based GNU systems for most of our work today, and we hope you use them too. There are now many different variants of the GNU / Linux system (mostly called `` distributions ''). Most of them contain non-free software - their developers follow the Linux philosophy more than that of GNU. But there are also completely free GNU / Linux distributions.

Whether you are using GNU / Linux or not, please do not confuse the public by using the name `` Linux '' ambiguously. Linux is the kernel, one of the main main components of the system. The system as a whole is more or less the GNU system, plus Linux. When you talk about this combination please call it `` GNU / Linux ''.

If you want to put 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://foldoc.doc.ic.ac.uk/foldoc/foldoc.cgi?Linux is a good URL to use.

Addendum: Independently of GNU, another project also made a free Unix-like operating system. This system is known as BSD and was developed at UC Berkeley. It wasn't free in the 80s, but it became free in the early 90s. A free operating system that exists today is almost certainly either a variant of the GNU or the BSD system.

People sometimes ask if BSD is also a version of GNU, like GNU / Linux. The BSD developers were inspired by the example of the GNU project to turn their code into free software. Strong appeals from GNU activists helped persuade them. But the code had little overlap with GNU. BSD systems use some GNU programs today, just as the GNU system and its variants use some BSD programs; yet, taken collectively, they are two different systems that unfolded separately. The BSD developers didn't write a kernel to add to the GNU system, so a name like GNU / BSD wouldn't do the situation justice.

[If you'd like to learn more about this matter, you can also read our GNU / Linux FAQ.]

Remarks:

  1. Those unexciting but necessary components include the GNU assembler, GAS and the linker, GLD, both of which are now part of the package GNU Binutils, GNU tar, and more.
  2. For example, the Bourne Again SHell (BASH), the PostScript interpreter Ghostscript and the GNU C library are not programming tools. GNUCash, GNOME, and GNU Chess aren't either.
  3. For example the GNU C library.

Back to the GNU homepage.

Direct inquiries about FSF and GNU [email protected]. There are also other ways to get in touch with the FSF.

Send comments on these web pages to [email protected], other questions to [email protected].

Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Richard M. Stallman

The unchanged reproduction and distribution of this entire article is permitted in any medium, provided this notice is retained.

Translated and updated by Richard Steuer