The GNU project started in 1983, with the stated intent to “free unix”. Free in the sense that it would not be restricted for use, and would be available at no charge. In the words of the initiator of the project, Richard Stallman, the goals of the project were ambitious:

“To begin with, GNU will be a kernel plus all the utilities

needed to write and run C programs: editor, shell, C compiler,

linker, assembler, and a few other things. After this we will

add a text formatter, a YACC, an Empire game, a spreadsheet,

and hundreds of other things. We hope to supply, eventually,

everything useful that normally comes with a Unix system,

and anything else useful, including on-line and hardcopy

documentation.” -Richard Stallman

1983, net.unix-wizards mailing list

link

While the GNU project is much larger than the originally listed components, the first four are listed below by their official names:

Of those, only the last 3 are in common use by Linux distros. The HURD kernel has been in development for decades and has never matured to a state where it could replace the Linux kernel.

Even if we account for all of the other things the GNU project contributes to a fully functional Linux distribution (there are a lot), the sum of all the parts is not made up of only the Linux kernel and the GNU components. There are significant pieces shipped with a Linux distribution that have nothing to do with the GNU project. Some of them are not even licensed under the FSFs preferred licenses.

Some significant ones:

The X.org Windowing system – Not GPL, not from GNU

The Qt framework – Originally proprietary, not from GNU

Firefox – Nothing to do with GNU

There are others, but just those 3 things are a significant part of of a shipped Linux distribution. While it is true that the foundation that enables all these things to run is made up of a significant number of GNU components, it is also made up of the Linux kernel, which is essential if you want the system to work at all, and other significant components that are involved in booting and managing the system. For instance the init system, which is the first process the kernel executes and is in charge of starting (and now managing in some cases) the rest of the system, has nothing to do with GNU, none of the current implementations of an init daemon came from the GNU project. Oh there is one, it’s called DMD (and it sounds cool), but so far as i can tell most major Linux distributions are not using it. Ubuntu developed their own called Upstart, everyone else uses either the sysvinit package written by Miquel van Smoorenburg, or the BSD init package.

Now of course nothing is entirely isolated, these things all depend on each other and lower level systems and libraries to function, for instance many programs make use of the GTK+ toolkit, or the GNU C library, but that does not make them GNU projects. If we were to make a chart with 2 columns, one side GNU, other side “3rd party”, which column do you suppose Firefox, Gnome, Pidgin, Xfce, or any other high level interface component or program would go in?

If we are to declare that a system using GNU components among other things, should be called the GNU operating system, are we saying that the operating system is primarily defined by these low level components? And that only the GNU components should get a spot in the official name of an operating system that makes use of them? The GNU components aren’t much use without a kernel or an existing complete operating system to use them on, the Linux kernel doesn’t do much without some userland software like the GNU components, and none of the high level components listed like Firefox or Gnome would work at all without an operating system underneath them. But since that is the case, might an average user of Ubuntu refer to their operating system as the Mozilla/X.Org/Gnome/GNU/Linux operating system? That would be silly.

So what is the measure by which we justify including the name of a specific contributor in the official title of an operating system? Is it lines of code? Percentage of total space used? Are we going to have to go through the lines of code one by one and count them, or count the absolute size in kilobytes of all of these components to see which group makes up the majority?

Fortunately we don’t have to do that, the GNU project has a webpage up on their site about this very topic, unsurprisingly they take the opposite position that I do. On that page, they actually give an example of a measurement someone made at one point, comparing the total contribution of the GNU project to an arbitrary distribution compared to other projects and developers. It was 15% in 2008. The GNU project explains away their reasoning that the GNU components are “the largest single contingent”, which clearly justifies naming the whole thing GNU. I’m not even sure if that is true at this point, some of the high level libraries are absolutely huge, the kde libraries and the Qt libraries they make use of are probably over 100MB alone. They also state that the Linux kernel makes up 1.5%, so why not drop it entirely? Just call it the GNU operating system.

Or maybe the significance of the code in question should define the operating system? The kernel is very important so we obviously must keep it in the name, but to an average Ubuntu user, the Firefox web browser and the desktop environment they use are probably the most significant, second only to the fact that their hardware (hopefully) works correctly thanks to the kernel. So that would be Mozilla/Gnome/Linux or Mozilla/KDE/Linux. Stupid right?

In the end, all of this is absurd narcissism, 15% of the codebase is a minority. The whole point of free software is that the best parts to do a specific job are used, re-used, modified, passed around and compiled into complete usable operating system distributions, or not. It’s just software, it’s out there if someone wants to use it. Many other packages are included in a distribution like Ubuntu, most of them are essential in delivering the user experience. To trivialize all of the other excellent software that goes into a complete operating system like Ubuntu, and demand that an implementation of a free Unix-like operating system should be defined by what the GNU project claims is the largest single contributor, is arrogant. The largest contributor is the COMMUNITY, so why don’t we just call it Community/Linux, or CommunityOS?

We have a brand name already, Linux. It is easily recognized, most sysadmins know what Linux is, most companies are aware of its advantages, and a growing number of users are using a distribution of this operating system and calling it Linux. It is easy to say, compared to GNU/Linux or even just GNU. The GNU projects preferred pronunciation is Guh-new, which is even harder to say than spelling the letters out (which is what i do, by the way). At this point Linux is the defacto brand for all this software, so get behind it.