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 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, and these people are using it, but it is not the operating system. 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 a combination with the GNU operating system: the whole system is basically GNU, with Linux functioning as its 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. 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.
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%. 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 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 it did. It was not a project to develop a text editor, although it 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 an integrated system–and not just a collection of useful programs–is because the GNU Project set out to make it one.GNU made a list of the programs needed to make a complete free system, and systematically found, wrote, or found people to write everything on the list. It wrote essential but unexciting components because you can’t have a system without them. Some of the system components, the programming tools, became popular on their own among programmers, but GNU wrote many components that are not tools.GNU even developed a chess game, GNU Chess, because a complete system needs good games too.