The GNU/Linux naming controversy is a controversy regarding whether computer operating systems that use GNU software and the Linux kernel should be referred to as "GNU/Linux" or "Linux" systems. [1]
Proponents of the term Linux argue that it is far more commonly used by the public and media [2] [3] and that it serves as a generic term for systems that combine that kernel with software from multiple other sources, [4] 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. [5]
The term GNU/Linux is promoted by the Free Software Foundation (FSF) and its founder Richard Stallman. [6] 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. [1] [7] Several distributions of operating systems containing the Linux kernel use the name that the FSF prefers, such as Debian, [8] Trisquel [9] and Parabola GNU/Linux-libre. [10] Others claim that GNU/Linux is a useful name to make a distinction between those and Linux distributions such as Android and Alpine Linux.
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. [11] [12] 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 with 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. [7]
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, [13] and of "GNU+Linux" as early as 1993. [14] 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. [3] [15] [16] [17] 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). [18] GNU's June 1994 Bulletin described "Linux" as a "free Unix system for 386 machines" (with "many of the utilities and libraries" from GNU), [19] but the January 1995 Bulletin switched to the term "GNU/Linux" instead. [20]
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. [21] [22] 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), [23] [7] and included an essay "Linux and the GNU system" [24] 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". [6]
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 software such as the GNU C Library (glibc), GNU Core Utilities (coreutils), GNU Compiler Collection, GNU Binutils, GNU gzip, GNU tar, GNU gettext, GNU grep, GNU awk, GNU sed, GNU Findutils, gnupg, libgcrypt, gnutls, GRUB, GNU readline, GNU ncurses, 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. [25] 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). [26] Determining exactly what constitutes the "operating system" per se is a matter of continuing debate. [1]
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. [27] 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. [28] [29] [30]
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) [31] or Debian GNU/kFreeBSD (which uses the GNU coreutils and C library with the kernel from FreeBSD). [32]
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; [33] 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 [33]
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, [28] that the GNU project played a larger role in developing packages and software for GNU/Linux or Linux distributions, [6] [7] 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. [34] [35] [36]
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'." [37] 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. [7] [26]
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." [38]
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). [39]
Proponents of naming the operating systems "Linux" state that "Linux" is used far more often than "GNU/Linux". [2] [3]
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. [40] [41]
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" ... [42]
The name "GNU/Linux," particularly when using Stallman's preferred pronunciation, has been criticized for its perceived clumsiness and verbosity, [43] [44] a factor that Torvalds has cited as the downfall of operating systems such as 386BSD. [45]
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." [46]
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". [47]
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. [48]
Free software, libre software, libreware sometimes known as freedom-respecting software is computer software distributed under terms that allow users to run the software for any purpose as well as to study, change, and distribute it and any adapted versions. Free software is a matter of liberty, not price; all users are legally free to do what they want with their copies of a free software regardless of how much is paid to obtain the program. Computer programs are deemed "free" if they give end-users ultimate control over the software and, subsequently, over their devices.
GNU is an extensive collection of free software, which can be used as an operating system or can be used in parts with other operating systems. The use of the completed GNU tools led to the family of operating systems popularly known as Linux. Most of GNU is licensed under the GNU Project's own General Public License (GPL).
GNU Hurd is a collection of microkernel servers written as part of GNU, for the GNU Mach microkernel. It has been under development since 1990 by the GNU Project of the Free Software Foundation, designed as a replacement for the Unix kernel, and released as free software under the GNU General Public License. When the Linux kernel proved to be a viable solution, development of GNU Hurd slowed, at times alternating between stasis and renewed activity and interest.
Linus Benedict Torvalds is a Finnish and American software engineer who is the creator and lead developer of the Linux kernel. He also created the distributed version control system Git.
The GNU Project is a free software, mass collaboration project announced by Richard Stallman on September 27, 1983. Its goal is to give computer users freedom and control in their use of their computers and computing devices by collaboratively developing and publishing software that gives everyone the rights to freely run the software, copy and distribute it, study it, and modify it. GNU software grants these rights in its license.
The GNU C Library, commonly known as glibc, is the GNU Project implementation of the C standard library. It provides a wrapper around the system calls of the Linux kernel and other kernels for application use. Despite its name, it now also directly supports C++. It was started in the 1980s by the Free Software Foundation (FSF) for the GNU operating system.
Alternative terms for free software, such as open source, FOSS, and FLOSS, have been a controversial issue among free and open-source software users from the late 1990s onwards. These terms share almost identical licence criteria and development practices.
Richard Matthew Stallman, also known by his initials, rms, is an American free software movement activist and programmer. He campaigns for software to be distributed in such a manner that its users have the freedom to use, study, distribute, and modify that software. Software which ensures these freedoms is termed free software. Stallman launched the GNU Project, founded the Free Software Foundation (FSF) in October 1985, developed the GNU Compiler Collection and GNU Emacs, and wrote all versions of the GNU General Public License.
Tivoization is the practice of designing hardware that incorporates software under the terms of a copyleft software license like the GNU General Public License, but uses hardware restrictions or digital rights management (DRM) to prevent users from running modified versions of the software on that hardware. Richard Stallman of the Free Software Foundation (FSF) coined the term in reference to TiVo's use of GNU GPL licensed software on the TiVo brand digital video recorders (DVR), which actively block modified software by design. Stallman believes this practice denies users some of the freedom that the GNU GPL was designed to protect. The FSF refers to tivoized hardware as "proprietary tyrants".
The Tanenbaum–Torvalds debate was a written debate between Andrew S. Tanenbaum and Linus Torvalds, regarding the Linux kernel and kernel architecture in general. Tanenbaum, the creator of Minix, began the debate in 1992 on the Usenet discussion group comp.os.minix, arguing that microkernels are superior to monolithic kernels and therefore Linux was, even in 1992, obsolete. The debate has sometimes been considered a flame war.
In the context of free and open-source software, proprietary software only available as a binary executable is referred to as a blob or binary blob. The term usually refers to a device driver module loaded into the kernel of an open-source operating system, and is sometimes also applied to code running outside the kernel, such as system firmware images, microcode updates, or userland programs. The term blob was first used in database management systems to describe a collection of binary data stored as a single entity.
Linux is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution (distro), which includes the kernel and supporting system software and libraries, many of which are provided by the GNU Project.
gNewSense was a Linux distribution, active from 2006 to 2016. It was based on Debian, and developed with sponsorship from the Free Software Foundation. Its goal was user-friendliness, but with all proprietary and non-free software removed. The Free Software Foundation considered gNewSense to be composed entirely of free software.
GNU variants are operating systems based upon the GNU operating system. According to the GNU project and others, these also include most operating systems using the Linux kernel and a few others using BSD-based kernels.
The history of free and open-source software begins at the advent of computer software in the early half of the 20th century. In the 1950s and 1960s, computer operating software and compilers were delivered as a part of hardware purchases without separate fees. At the time, source code—the human-readable form of software—was generally distributed with the software, providing the ability to fix bugs or add new functions. Universities were early adopters of computing technology. Many of the modifications developed by universities were openly shared, in keeping with the academic principles of sharing knowledge, and organizations sprung up to facilitate sharing.
License compatibility is a legal framework that allows for pieces of software with different software licenses to be distributed together. The need for such a framework arises because the different licenses can contain contradictory requirements, rendering it impossible to legally combine source code from separately-licensed software in order to create and publish a new program. Proprietary licenses are generally program-specific and incompatible; authors must negotiate to combine code. Copyleft licenses are commonly deliberately incompatible with proprietary licenses, in order to prevent copyleft software from being re-licensed under a proprietary license, turning it into proprietary software. Many copyleft licenses explicitly allow relicensing under some other copyleft licenses. Permissive licenses are compatible with everything, including proprietary licenses; there is thus no guarantee that all derived works will remain under a permissive license.
Linux began in 1991 as a personal project by Finnish student Linus Torvalds to create a new free operating system kernel. The resulting Linux kernel has been marked by constant growth throughout its history. Since the initial release of its source code in 1991, it has grown from a small number of C files under a license prohibiting commercial distribution to the 4.15 version in 2018 with more than 23.3 million lines of source code, not counting comments, under the GNU General Public License v2 with a syscall exception meaning anything that uses the kernel via system calls are not subject to the GNU GPL.
The following outline is provided as an overview of and topical guide to free software and the free software movement:
The GNU General Public Licenses are a series of widely used free software licenses, or copyleft licenses, that guarantee end users the freedoms to run, study, share, and modify the software. The GPL was the first copyleft license for general use. It was originally written by Richard Stallman, the founder of the Free Software Foundation (FSF), for the GNU Project. The license grants the recipients of a computer program the rights of the Free Software Definition. The licenses in the GPL series are all copyleft licenses, which means that any derivative work must be distributed under the same or equivalent license terms. It is more restrictive than the Lesser General Public License and even further distinct from the more widely-used permissive software licenses such as BSD, MIT, and Apache.
The Free Software Foundation (FSF) is a 501(c)(3) non-profit organization founded by Richard Stallman on October 4, 1985. The organisation supports the free software movement, with the organization's preference for software being distributed under copyleft terms, such as with its own GNU General Public License. The FSF was incorporated in Boston, Massachusetts, United States, where it is also based.
The shared commonality of the kernel is what defines a system's membership in the Linux family; the differing OSS applications that can interact with the common kernel are what differentiate Linux distributions.
RMS's idea (which I have heard first-hand) is that Linux systems should be considered GNU systems with Linux as the kernel.
the total of the GNU project's code is much larger than the Linux kernel's size. Thus, by comparing the total contributed effort, it's certainly justifiable to call the entire system GNU/Linux and not just Linux.
Generally, SCO's Caldera v IBM Complaint is vague and confusing as to whether the accusations involve the Linux kernel, the GNU/Linux operating system, Linux distributions, Linux applications, or whatever.
SCO has used "Linux" to mean "all free software", or "all free software constituting a UNIX-like operating system." This confusion, which the Free Software Foundation warned against in the past, is here shown to have the misleading consequences the Foundation has often predicted
In particular, Stallman criticized the [Ken Brown/AdTI] report for capitalizing on common confusion between the Linux kernel, which Stallman says "Linus really wrote", with the full GNU operating system and associated software, which can be and generally is used with the Linux kernel.
No. That's it. The cool name, that is. We worked very hard on creating a name that would appeal to the majority of people, and it certainly paid off: thousands of people are using linux just to be able to say "OS/2? Hah. I've got Linux. What a cool name". 386BSD made the mistake of putting a lot of numbers and weird abbreviations into the name, and is scaring away a lot of people just because it sounds too technical.
Perhaps RMS is frustrated because Linus got the glory for what RMS wanted to do.