Many computer users run a modified version of
the GNU system
every day, without realizing it. Through a peculiar turn of events,
the version of GNU which is widely used today is often called
“Linux”, and many of its users
are
not aware
that it is basically the GNU system, developed by the
GNU Project.
There really is a Linux, and these people are using it, but it is just
a part of the system they use. Linux is the kernel: the program in
the system that allocates the machine's resources to the other
programs that you run. The kernel is an essential part of an
operating system, but useless by itself; it can only function in the
context of a complete operating system. Linux is normally used in
combination with the GNU operating system: the whole system is
basically GNU with Linux added, or GNU/Linux. All the so-called
“Linux” distributions are really distributions of
GNU/Linux.
Many users do not understand the difference between the kernel, which
is Linux, and the whole system, which they also call
“Linux”. The ambiguous use of the name doesn't help
people understand. These users often think that Linus Torvalds
developed the whole operating system in 1991, with a bit of help.
Many users do not understand the difference between the kernel, which
is Linux, and the whole system, which they also call
“Linux”. The ambiguous use of the name doesn't help
people understand. These users often think that Linus Torvalds
developed the whole operating system in 1991, with a bit of help.
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 that would justify naming the whole system
after the kernel. For example, many believe that once Linus Torvalds
finished writing Linux, the kernel, its users looked around for other
free software to go with it, and found that (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 not-quite-complete GNU
system. The available
free
software added up to a complete system because the GNU Project
had been working since 1984 to make one. In
the
The GNU Manifesto we 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 started, GNU
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 (the
X Window System). 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%. (The proportions in 2008 are similar: in the “main”
repository of gNewSense, Linux is 1.5% and GNU packages are 15%.)
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 that is not the deepest 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 that. It was not a project
to develop a text editor, although we developed one. The GNU Project
set out to develop
a complete free Unix-like system: GNU.