Louigi Verona's Workshop

‹‹‹back

Should Linux be called GNU/Linux instead?

The "GNU/Linux" controversy


October 2017

The Free Software Foundation is very particular about how people use words. One of the controversies that they fuel up is a "GNU/Linux" vs. "Linux" naming controversy. They claim that what people are using is not only Linux, which is the kernel, but also the operating system called GNU. Therefore, people should say that they are using GNU/Linux or GNU+Linux. Richard Stallman even makes an additional effort to recommend to pronounce it "GNU slash Linux", so as to make sure that people don't think that Linux is a GNU package.

The reason this is so important to the FSF is because the GNU Project is an ideological project to produce a "free" operating system, and promote the concept of "free" software. Dropping GNU means the message is lost, and mixed in with all other sorts of concepts - open source, freeware, technology in general, etc.

In GNU/Linux FAQ Stallman directly writes:

People who think the whole system is Linux tend to get confused and assign to those developers a role in the history of our community which they did not actually play. Then they give inordinate weight to those developers' views.

In other words, Stallman's primary concern is the propagation and the standing of his ideology. If the system has the name "GNU" in it, then he believes it would automatically give more weight to his views, and the FSF would also be able to claim that many modern Linux-based operating systems represent Stallman's ideological project.

Let's start exploring the topic by first answering this question:


Is GNU really the operating system everybody uses?

GNU has a definition.[0] As of the moment of writing, and 34 years into the existence of the GNU project, it is defined as an operating system, consisting completely of "free" software. FSF maintaines a list of under 400 packages that are officially part of GNU. A package which is "free" software, but which has not been written for GNU is not considered part of GNU.

It means that a typical modern distribution, such as Ubuntu, consists of the Linux kernel, GNU software and non-GNU software. Speaking in FSF's terms, it is Linux + GNU + all-other-programs.

How much of GNU is there in a distribution such as Ubuntu?

One quick way to look at it is to compare the amount of packages. For example, Xubuntu 14.04 lists over 49,000 packages, of which somewhat over 2,000 packages are related to the GNU project. This is about 4% of all the packages.

A much better way could be to compare lines of code. Such an investigation was done by Pedro Côrte-Real in 2011, through the analysis of the main Ubuntu 11.04 repository.[2] According to his research, 13% of a GNOME-based system would be comprised of GNU packages, a non-GNOME distribution would contain 8% of GNU, whereas the Linux kernel would comprise 9% of the operating system.

This approach is still far from perfect. It does not take into account the programs that people actually use, and it omits some of the programs that are not parts of standard repositories, but are actually widely used. It also fails to mention such important projects as the VLC Player and Libre Office, which are typically parts of standard repositories and must account for significant code contributions.

Still, the GNU Project seems to be the single largest contributor to a distribution like Ubuntu 11.04. It is unlikely that this percentage has considerably changed by 2017, the moment of writing.

Of course, there are other important contributors as well. The X Window System was there from the start and was, arguably, one of the key components of GNU/Linux success. In Ubuntu 11.04 it comprises 3% of the code base. Mozilla accounts for 6%, KDE takes up 8%, Java-related packages 6%.

So, why not give credit to all of these components?

Actually, in 1992 one of the distributions did refer to the system as LGX - Linux/GNU/X.[3] This gave credit to the kernel, the GNU packages, and to the X Windows System.

However, only two years later Stallman would already be requesting for the system to be called GNU/Linux, without giving any credit to the X Windows System, although most if not all distributions continued to use it.[5] [6]

So why drop the credit for the X Window System, but leave GNU?

In GNU/Linux FAQ[1] Stallman answers this question by saying that adding countless components to the name is absurd and drawing a line somewhere is necessary. He argues, however, that this line should not exclude GNU, which is the principal contribution:

Since a long name such as GNU/X11/Apache/Linux/TeX/Perl/Python/FreeCiv becomes absurd, at some point you will have to set a threshold and omit the names of the many other secondary contributions. There is no one obvious right place to set the threshold, so wherever you set it, we won't argue against it.

Different threshold levels would lead to different choices of name for the system. But one name that cannot result from concerns of fairness and giving credit, not for any possible threshold level, is “Linux”. It can't be fair to give all the credit to one secondary contribution (Linux) while omitting the principal contribution (GNU).

To support the "GNU/Linux" naming, Stallman makes two core arguments:

1. GNU is the single largest code contributor to the system, in some distributions providing more code than the kernel.

2. GNU was the framework that allowed a "free" operating system to appear in the first place, therefore current operating systems like Ubuntu are fundamentally derivatives of GNU.

Both points are taken from GNU/Linux FAQ.[1]

Why do you call the system we use GNU/Linux and not Linux?
Most operating system distributions based on Linux as kernel are basically modified versions of the GNU operating system. We began developing GNU in 1984, years before Linus Torvalds started to write his kernel. Our goal was to develop a complete free operating system. Of course, we did not develop all the parts ourselves—but we led the way. We developed most of the central components, forming the largest single contribution to the whole system. The basic vision was ours too.

"How much of the GNU system is needed for the system to be GNU/Linux?"
“How much” is not a meaningful question because the GNU system does not have precise boundaries.

GNU is an operating system maintained by a community. It includes far more than just the GNU software packages (of which we have a specific list), and people add more packages constantly. Despite these changes, it remains the GNU system, and adding Linux to that yields GNU/Linux. If you use part of the GNU system and omit part, there is no meaningful way to say “how much” you used.

If we look at the level of packages, Linux is one important package in the GNU/Linux system. The inclusion of one important GNU package is enough to justify our request for equal mention.

The first claim is difficult to argue against. Not only is it true, the packages provided by the GNU Project are vital to the system. Although it is not impossible to replace many of them with alternatives today, it is clear that when not replaced, they constitute a critical part of modern distributions.

The second claim, however, is problematic, and additionally calls into question the relevance of the first claim.

As long as the percentage of GNU's contribution is high, it seems difficult to argue against distributions being variants of GNU, especially that there are now many systems utilizing the Linux kernel without including GNU (Android being one of them). But I believe that the difficulty stems more from psychological reasons, rather than from the actual state of affairs.

Stallman seems to be tempted to redefine the term "operating system". He says that GNU should be credited simply because it has created a concept of building a "free" operating system. But there is a long way from crediting someone for their conceptual work to attributing other people's work directly to the conceptual project. Part of the reason why Stallman is being ridiculed for his renaming efforts is because there is a thin line between asking for credit and invading other peoples' work.

And, furthermore, at times he could be committing an error of categorization. Modern "free" software distributions might be derivative of the GNU Project as a concept. But being derivative conceptually and being derivative technologically are two different things. Proving that all modern Linux distributions are mere variants of GNU, rather than derivatives of the GNU Project as a concept, is quite a difficult thing to achieve, because facts don't support such a notion.

In fact, FSF's strategy to use other people's work to extend GNU is detrimental to their goal of being recognized as a standalone operating system - precisely because today GNU is not a standalone operating system.

When answering a question about why GNU is not available for download and installation in his GNU/Linux FAQ[1], Stallman gives a long-winded answer citing historical reasons for why things turned out the way they did, but avoids directly saying that the reason why GNU cannot be downloaded and installed is because it is incomplete.

Today GNU exists as 400 hundred separate packages. By themselves, even with the kernel added, these packages cannot provide a system that most users would find useful. Unless the GNU Project invests considerable resources into writing more GNU software, it should expect difficulties in marketing modern distributions as mere variants of their operating system - directly due to their chosen strategy of extending GNU through non-GNU packages. The definition of an operating system expands every day, more and more is expected of the system by default, and providing a compiler, basic C++ libraries, a desktop environment and utilities is no longer enough.

In his GNU/Linux FAQ Stallman claims that in 1992 the GNU system was a complete operating system, but without the kernel.[4] Perhaps, it was somewhat true in 1992. This is very debatable today.

Consider the fact that GNU provides no browser, no audio or video players, no window manager. And yet, from a user perspective, these elements are vitally important. When someone supplies them, it is now a stretch to call the whole thing just a mere "variant" of the original GNU system.

This notion would be easier to recognize if these elements had all been provided by a single entity, a hypothetical "Y Foundation". If we look at the 2011 investigation cited earlier,[2] our "Y Foundation" would then account for at least 9% of the code base - a sum of X Window System and Mozilla code contributions. If we take into account other important projects, necessarily included with most popular distributions, such as the VLC Media Player and the Libre Office Suite, this percentage can become even higher, and in non-GNOME systems far outweigh GNU's contribution. It will then be quite impossible for the GNU Project to claim that the resulting system is a mere variant of GNU. Instead, it would look more like a collaboration between different entities.

Is the conclusion any different if the "Y Foundation" is actually a collective effort, undertaken by independent parties? Isn't it more accurate to call the resulting system a collaboration between the GNU Project and the community, rather than a variant of GNU? And isn't it logical that a community project would end up being a collaboration of independent parties?

Not only that, but even without merging non-GNU packages under the umbrella of "community", individual contributions are still quite high. A 6% contribution by Mozilla is quite comparable to GNU's codebase. Yes, it is smaller, but not by much.

So no matter how "central" GNU packages are to the whole operating system, other people's contributions to what today constitutes as an "operating system" are no less central. Not to mention that it is a bit ridiculous to claim that something is a variant of your project when your project is so incomplete that it cannot stand on its own.

In another place in his FAQ Stallman says that "GNU is different because it is more than just a contributed program, more than just a collection of contributed programs. GNU is the framework on which the system was made." The question then arises as to whether it is appropriate to call the resulting systems variants of the framework they had been built upon. To supply an analogy, are all Unity games just variants of Unity? Perhaps, they are derivative of it, but calling them variants would be incorrect.

But the notion that GNU is a framework is questionable. Yes, there are some very fundamental packages in the GNU repository, such as the GCC. But many packages are not in any way "fundamental", and this seems more like an attempt by Stallman to try to re-define what GNU is, so that his argument seems stronger. But what GNU really is - is a part of a theoretical complete GNU operating system that currently does not exist.


So, we set out to answer the question: is GNU really the operating system everybody uses?

The answer must be a "no". Instead, existing evidence shows that what people are using is a result of collaboration between GNU and many other independent parties, some of which have also contributed comparable amount of code and critically important components. Calling the resulting system a "variant of GNU" is not justified.

The conclusion, therefore, must be this:

1. The GNU Project should be credited for its crucial role in the history of "free" and open source software
2. The GNU Project should be credited for its significant contribution to the operating system that is commonly referred to as "Linux"
3. The GNU Project has no grounds to claim that distributions utilizing GNU packages are mere variants of GNU



Should Linux be called GNU/Linux instead?

But even if someone disagrees with my assessment of the situation, I would argue that there are rational reasons against naming Linux systems as "GNU/Linux" anyway.

First of all, it is quite obvious that this battle was profoundly lost by the FSF, at least in this era. An opportunity to build the momentum for "GNU" had been missed in the early 90s, and as long as the current state of the GNU Project does not change dramatically, there is very little reason to believe that this situation can be turned around.

If GNU Hurd ever sees the light of day, or another GNU Project initiated kernel succeeds, this will definitely change the rules of the game, and it might be extremely easy for The GNU Project at that point to propagate their naming of the system. Until then, however, sinking more and more costs into this campaign is neither rational, nor a good use of FSF supporters' money.

Second, Stallman feels that the only way to credit his organization and vision is to influence the naming of the system, which obviously is not the case. This fixture on naming conventions limits his options considerably. Stallman seems to be the kind of person who, once he has an idea will keep on working towards it regardless of the obstacles. He calls himself an idealist, and his idealism, when applied to the operational side of things, often hurts his cause.

Today, probably more than in Stallman's time, it is customary to name projects in an arbitrary fashion. Using software names as a way to credit teams does not seem to be a common route, nor are software names efficient as credit lists in the first place. Many projects are quite fine to not be credited within the names of products they contribute to. For example, when people say that their phone runs Android, the Linux kernel team does not feel that they should be running campaigns to educate the public to refer to the system as Android/Linux.

Having dedicated considerable efforts to campaigning for the "GNU/Linux" naming convention, the GNU Project has so far failed to pursue other venues of promotion. GNU software generally lacks logos that might refer to the GNU operating system, it is rarely if ever represented at conferences and conventions, there are no FSF-maintained distributions that specifically call the system GNU, and the bold vision of completing the GNU operating system seems to now be obscured even by Stallman himself, in his quest to claim that any system using a GNU package is already a "GNU variant".

Importantly, there is such a close connection between GNU and FSF's activism, that it seems that GNU is never described as just an operating system by the FSF itself, but rather as a social and political project, therefore confusing people as to what it really is.

Third, Stallman's idea is quite outdated in technological terms, too. While in the early 90s the name GNU/Linux might have been descriptive, today it is no longer enough. Is it using GNOME, KDE or xfce? Sysvinit, upstart, or systemd? Does it use X or Wayland?

So, although FSF wants to maintain "GNU" in the title for ideological purposes, in practice people often prefer to use functional names. When a user talks about Kubuntu, Ubuntu and Xubuntu, these names say something useful. Saying "GNU/Linux" is just way too generic, especially if you are already using some distribution. Within the Linux community it is customary to refer to distributions, rather than to the generic "Linux" or "GNU/Linux", whereas if you are a Windows user, saying "Linux" is more meaningful, since many GNU packages are available on Windows and the important bit here is that the kernel and, ultimately, the architecture as a whole is very different.

In conclusion, this controversy, in my opinion, is an unnecessary battle for the FSF, even if they completely disagree with what I say in the first section of this article. By focusing on "Linux vs. GNU/Linux" affair, they present themselves as terminology formalists, alienate people and - principally - fail to focus on other venues of promotion that are much more likely to help them succeed.


Roots of the controversy

If one follows the historical narrative, provided by Stallman, a hypothesis of what happened and what Stallman does not seem to be directly saying can be formulated.

The FSF started the GNU Project to advance their vision of building a complete "free" software operating system, which they called GNU. Since their project was distributed under a very permissive license, when Linux came around, it became possible for people to take packages written for the upcoming GNU operating system and use it for Linux, without asking the FSF for permission. The FSF even helped with some porting work to ensure GNU packages run well under the Linux kernel.

At this time they felt little need to worry about being credited or enforcing naming conventions, because this was, in a way, just a distraction. The GNU Project was aiming to write their own kernel and then provide a completely "free" operating system with all the components, including the GNU kernel (GNU Hurd). If this had worked, the GNU operating system would not be defined in a fuzzy manner in which Stallman defines it today. Rather, it would be a proper operating system that one would be able to download and install.

But as work on the GNU Hurd stalled, and it became clear that the Linux kernel is the only kernel that the "free" software world currently has, Stallman realized that his project may be in jeopardy. He must have also recognized that it was quickly slipping into obscurity. The community based around Linux grew quickly, while doing little to acknowledge the original ideology on which the GNU Project was based and simply utilizing GNU packages for their own purposes. In one of the mailinglist responses Stallman wrote: "...please imagine what it is like to see an idealistic project stymied and made ineffective, because people don't usually give it the credit for what it has done. If you're an idealist like me, that can ruin your whole decade."[7]

In other words, Stallman's mission to create a "free" operating system was swiftly overtaken by other people, sidelined by Linux kernel enthusiasts, the open source movement and other initiatives, and no longer under his control. In a way, Stallman became the victim of the world he set out to build - a decentralized macrocosm with no owners, and a complicated, at times random evolutionary method to developing things. GNU Project, a vehicle of Stallman's idealistic vision of the world, was swept away and mixed in with the quickly developing FLOSS society.

It is very possible that first Linux distributions were indeed mere variations of GNU. Apart from Linux and the X Window System, the vast majority of the codebase did come from Stallman's project. As time marched on, however, a definition of operating systems contuned to expand, and significant contributions were added to "free" software systems. Stallman's arguments, probably formulated back in the early 90s, became outdated and, eventually, ridiculed by many important figures in the "free" software community, who recognized how out of place and inappropriate this reasoning had become.

Stallman was one of the first people to recognize the importance of software, available to the public at no cost and encumbered by no restrictive licenses. He is very correct to demand credit for that. But the world he envisioned to build, a world of ideological purity, as he understood it, a world where software would be about the freedoms he envisioned, did not materialize. And this naming controversy is a reflection of Stallman's longing towards that initial dream. A longing that shapes how he talks about the role of his project in the modern FLOSS world. Understanding this is a key to understanding the roots of Stallman's rhetoric today.




0. GNU Software

1. GNU/Linux FAQ by Richard Stallman

2. How much GNU is there in GNU/Linux?

3. The Daemon, the GNU and the Penguin, by Dr. Peter H. Salus - Ch. 20

4. The kernel of a system is like the foundation of a house. How can a house be almost complete when it doesn't have a foundation?

5. Re: Why is Nvidia given GPL'd code to use in closed source drivers?

6. Matt Welsh (8 September 1994). "Linux is a GNU system and the DWARF support"

7. Re: GNU/Linux