GNU/Linux naming controversy

Tux, mascot of the Linux Kernel
Official logo employed by the GNU Project

Within the free software and the open-source software communities there is controversy over whether to refer to computer operating systems that use a combination of GNU software and the Linux kernel as "GNU/Linux" or "Linux" systems.

Proponents of the term Linux argue that it is far more commonly used by the public and media and that it serves as a generic term for systems that combine that kernel with software from multiple other sources, while proponents of the term GNU/Linux note that GNU alone would be just as good a name for GNU variants which combine the GNU operating system software with software from other sources.

The term GNU/Linux is promoted by the Free Software Foundation (FSF) and its founder Richard Stallman. Their reasoning is that the GNU project was the main contributor for not only many of the operating system components used in the subsequent development of modern "Linux" systems, but also the associated free software philosophy. Several distributions of operating systems containing the Linux kernel use the name that the FSF prefers, such as Debian, Trisquel and Parabola GNU/Linux-libre. Others claim that GNU/Linux is a useful name to make a distinction between those and Linux distributions such as Android and Alpine Linux.

History

In 1983, Richard Stallman, founder of the Free Software Foundation, set forth plans of a complete Unix-like operating system, called GNU, composed entirely of free software. In September of that year, Stallman published a manifesto in Dr. Dobb's Journal detailing his new project publicly, outlining his vision of free software. Software development work began in January 1984. By 1991, the GNU mid-level portions of the operating system were almost complete, and the upper level could be supplied by the X Window System, but the lower level (kernel, device drivers, system-level utilities and daemons) was still mostly lacking.

The kernel officially developed by GNU was called GNU Hurd. The Hurd followed an ambitious microkernel design, which proved unexpectedly difficult to implement early on. However, in 1991, Linus Torvalds independently released the first version of the Linux kernel. Early Linux developers ported GNU code, including the GNU C Compiler, to run on Linux, while the free software community adopted the use of the Linux kernel as the missing kernel for the GNU operating system. This work filled the remaining gaps in providing a completely free operating system.

Over the next few years, several suggestions arose for naming operating systems using the Linux kernel and GNU components. In 1992, the Yggdrasil Linux distribution adopted the name "Linux/GNU/X". In Usenet and mailing-list discussions, one can find usages of "GNU/Linux" as early as 1992, and of "GNU+Linux" as early as 1993. The Debian project, which was at one time sponsored by the Free Software Foundation, switched to calling its product "Debian GNU/Linux" in early 1994. This change followed a request by Richard Stallman (who initially proposed "LiGNUx," but suggested "GNU/Linux" instead after hearing complaints about the awkwardness of the former term). GNU's June 1994 Bulletin described "Linux" as a "free Unix system for 386 machines" (with "many of the utilities and libraries" from GNU), but the January 1995 Bulletin switched to the term "GNU/Linux" instead.

Stallman's and the FSF's efforts to include "GNU" in the name started around 1994, but were reportedly mostly via private communications (such as the above-mentioned request to Debian) until 1996. In May 1996, Stallman released Emacs 19.31 with the Autoconf system target "linux" changed to "lignux" (shortly thereafter changed to "linux-gnu" in emacs 19.32), and included an essay "Linux and the GNU system" suggesting that people use the terms "Linux-based GNU system" (or "GNU/Linux system" or "Lignux" for short). He later used "GNU/Linux" exclusively, and the essay was superseded by Stallman's 1997 essay, "Linux and the GNU System".

Composition of operating systems

Modern free software and open-source software operating systems are composed of software by many different authors, including the Linux kernel developers, the GNU project, and other vendors such as those behind the X Window System. Desktop- and server-based distributions use GNU components such as the GNU C Library (glibc), GNU Core Utilities (coreutils), and the Bash shell.

In a 2002 analysis of the source code for Red Hat Linux 7.1, a typical Linux distribution, the total size of the packages from the GNU project was found to be much larger than the Linux kernel. Later, a 2011 analysis of the Ubuntu distribution's "Natty" release main repository found that 8% to 13% of it consisted of GNU components (the range depending on whether GNOME is considered part of GNU), while only 6% is taken by the Linux kernel (9% when including its direct dependencies). Determining exactly what constitutes the "operating system" per se is a matter of continuing debate.

On the other hand, some embedded systems, such as handheld devices and smartphones (like Google's Android), residential gateways (routers), and Voice over IP devices, are engineered with space efficiency in mind and use a Linux kernel with few or no components of GNU, due to perceived issues surrounding bloat, and impeded performance. A system running μClinux is likely to substitute uClibc for glibc, and BusyBox for coreutils. Google's Linux-based Android operating system does not use any GNU components or libraries, using Google's own BSD-based Bionic C library in place of glibc. The FSF agrees that "GNU/Linux" is not an appropriate name for these systems.

There are also systems that use a GNU userspace and/or C library on top of a non-Linux kernel, for example Debian GNU/Hurd (GNU userland on the GNU kernel) or Debian GNU/kFreeBSD (which uses the GNU coreutils and C library with the kernel from FreeBSD).

Opinions

GNU/Linux

FSF artwork of the gnu (GNU mascot) and the penguin Tux (mascot of the Linux kernel) representing their viewpoint on "GNU/Linux". The GNU General Public License (GPL), which is used by the Linux kernel as well as by most GNU software, armors both characters.

The FSF justifies the name "GNU/Linux" primarily on the grounds that the GNU project was specifically developing a complete system, of which they argue that the Linux kernel filled one of the final gaps; the large number of GNU components and GNU source code used in such systems is a secondary argument:

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 we 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. [...] 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. We made a list of the programs needed to make a complete free system, and we systematically wrote, or found people to write, everything on the list.

— Richard Stallman

Other arguments include that the name "GNU/Linux" recognizes the role that the free-software movement played in building modern free and open source software communities, that the GNU project played a larger role in developing packages and software for GNU/Linux or Linux distributions, and that using the word "Linux" to refer to the Linux kernel, the operating system and entire distributions of software leads to confusion on the differences about the three. Because of this confusion, legal threats and public relations campaigns apparently directed against the kernel, such as those launched by the SCO Group or the Alexis de Tocqueville Institution (AdTI), have been misinterpreted by many commentators who assume that the whole operating system is being targeted. SCO and the AdTI have even been accused of deliberately exploiting this confusion.

Regarding suggestions that renaming efforts stem from egotism or personal pique, Stallman has responded that his interest is not in giving credit to himself but to the GNU Project: "Some people think that it's because I want my ego to be fed. Of course, I'm not asking you to call it 'Stallmanix'." In response to another common suggestion that many people have contributed to the system and that a short name cannot credit all of them, the FSF has argued that this cannot justify calling the system "Linux", since they believe that the GNU project's contribution was ultimately greater than that of the Linux kernel in these related systems.

In 2010, Stallman stated that naming is not simply a matter of giving equal mention to the GNU Project, saying that because the system is more widely referred as "Linux", people tend to "think it's all Linux, that it was all started by Mr. Torvalds in 1991, and they think it all comes from his vision of life, and that's the really bad problem."

Ariadne Conill, developer and security chair of Alpine Linux, has stated that in her opinion GNU/Linux is the correct name when referring to Linux distributions that are based on glibc and GNU coreutils, such as Debian and Fedora Linux. This can be contrasted to other Linux distributions which are based on bionic (Android) and musl (Alpine).

Linux

Proponents of naming the operating systems "Linux" state that "Linux" is used far more often than "GNU/Linux".

Eric S. Raymond writes (in the "Linux" entry of the Jargon File):

Some people object that the name "Linux" should be used to refer only to the kernel, not the entire operating system. This claim is a proxy for an underlying territorial dispute; people who insist on the term GNU/Linux want the FSF to get most of the credit for Linux because [Stallman] and friends wrote many of its user-level tools. Neither this theory nor the term GNU/Linux has gained more than minority acceptance.

When Linus Torvalds was asked in the documentary Revolution OS whether the name "GNU/Linux" was justified, he replied:

Well, I think it's justified, but it's justified if you actually make a GNU distribution of Linux ... the same way that I think that "Red Hat Linux" is fine, or "SUSE Linux" or "Debian Linux", because if you actually make your own distribution of Linux, you get to name the thing, but calling Linux in general "GNU Linux" I think is just ridiculous.

An earlier comment by Torvalds on the naming controversy was:

Umm, this discussion has gone on quite long enough, thank you very much. It doesn't really matter what people call Linux, as long as credit is given where credit is due (on both sides). Personally, I'll very much continue to call it "Linux", ...

The GNU people tried calling it GNU/Linux, and that's ok. It's certainly no worse a name than "Linux Pro" or "Red Hat Linux" or "Slackware Linux" ...

Lignux is just a punny name—I think Linux/GNU or GNU/Linux is a bit more "professional" ...

The name "GNU/Linux," particularly when using Stallman's preferred pronunciation, has been criticized for its perceived clumsiness and verbosity, a factor that Torvalds has cited as the downfall of operating systems such as 386BSD.

The Linux Journal speculated that Stallman's advocacy of the combined name stems from frustration that "Linus got the glory for what [Stallman] wanted to do."

Others have suggested that, regardless of the merits, Stallman's persistence in what sometimes seems a lost cause makes him and GNU look bad. For example, Larry McVoy (author of BitKeeper, once used to manage Linux kernel development) opined that "claiming credit only makes one look foolish and greedy".

Many users and vendors who prefer the name "Linux," such as Jim Gettys, one of the original developers of the X Window System, point to the inclusion of non-GNU, non-kernel tools, such as KDE, LibreOffice, and Firefox, in end-user operating systems based on the Linux kernel:

There are lots of people on this bus; I don't hear a clamor of support that GNU is more essential than many of the other components; can't take a wheel away, and end up with a functional vehicle, or an engine, or the seats. I recommend you be happy we have a bus.

See also