Why I say Linux instead of GNU/Linux
I’ve been writing a computer security column for the Intercept. In most of my columns I mention Linux. Even when it’s not directly relevant (though it often is), most of my columns are in the form of tutorials, and I’d like my tutorials to be equally useful for Linux users as they are for Windows and Mac users.
For one thing, I love free and open source software. These projects are critical for security, privacy, and for the ability to tinker with and learn about your own computer. As the number of people who run free (as in speech) operating systems rise, so will the development resources that get poured into those operating systems until they “just work” at least as well as Windows and OS X do, so I talk about them every chance I get. Many of my readers already run free operating systems, and I would hate to leave them out.
After writing a column about how to communicate in secret while we’re all being watched, I got an email from Richard Stallman saying when I say Linux I clearly mean the GNU system, and he asked that I start referring to Linux distributions as GNU/Linux “so as to give us equal mention when you talk about our work.” And after writing my most recent column about how VMs can be used for isolation security, Stallman wrote a comment again saying that I mean “GNU and Linux” and asking that I give GNU equal mention. This is a really common point of view (though not at all a consensus) in the free software community, and one that I shared for a long time. But I’ve come to change my mind.
When I talk about Linux, I’m not talking about the GNU system. I’m also not talking about a kernel. Twenty years ago GNU/Linux really was mostly the GNU system plus the Linux kernel, because GNU didn’t have its own kernel. But today when I say Linux I’m talking about something else entirely. I’m referring about the type of open source operating systems that are typically composed of the Linux kernal plus a plethora of userland projects. These usually include some of the GNU system projects, but they also include (pre-installed or in repositories) thousands of other open source projects, like desktop environments, web browsers, office software, programming languages, libraries and tools, hypervisors, server software, games, and so on and so forth.
“GNU/Linux” doesn’t accurately describe this type of operating system at all. A whole lot has changed since the GNU system was first developed. Of course, “Linux” doesn’t accurately describe it either, so why do I use that term?
Because that’s what the term means. The definition of Linux (according to dictionary.com, though other dictionaries have similar definitions) is: “an operating system, based on UNIX, that runs on many different hardware platforms and whose source code is available to the public.” The origin of the term Linux comes from the kernel, but the colloquial definition – what normal people think when they hear and say Linux (assuming they’ve heard of it at all) – is an open source operating system. I would guess that most people who have heard of Linux, and have a general idea of what it is, have no idea what a kernel is.
Unfortunately for Stallman, language evolves naturally, and trying to force changes in language doesn’t always work out. If you’re looking at language descripively instead of prescriptively, Linux, not GNU/Linux, is the term that people use most of the time when referring to a Linux distribution, so that’s what that term means.
And I don’t mean to say that everyone should stop saying GNU/Linux in favor of Linux. The choice is yours. I’m just explaining my reasoning behind it.
And while I’m at it, I thought I’d explain why I use the term PGP instead of GPG. I used to only refer to PGP keys as “GPG keys” and I didn’t like using the term PGP at all because there’s a proprietary encryption product (that no one uses, and no one should use) that used to go by the name. But then, as I learned more, I realized that PGP is simply a more accurate term.
GPG is short of GnuPG, a free software encryption program that complies with RFC-4880, which is the current technical spec that describes the OpenPGP message format. When I use the term PGP, as in, “Here is a copy of my PGP key,” it’s short for OpenPGP, and has nothing at all to do with the proprietary program. Many different projects comply with the OpenPGP spec, like Google’s End-to-End, OpenPGP.js, and pgpdump, to name a few – and none of these share code with GPG.
But, most importantly, I use the terms Linux and PGP instead of GNU/Linux and GPG because that’s how people colloqually speak about these technologies. Technology is already confusing enough, and despite how cool recursive acronyms are, insisting that everyone use one piece of jargon over another piece of jargon doesn’t do anything to help people who are new at it learn and tinker.
Legacy comments, imported from previous version of this blog:
Unid
January 21, 2017 11:44 AM
Quote Unfortunately for Stallman, language evolves naturally, and trying to force changes in language doesn’t always work out. Unquote
Well a lot of things in life are hard and may not work out, like convincing public that privacy is important and that they should do something about it, or like convincing companies and governments to stop spying on innocent people. That does not mean we should stop trying to do the right thing.
Moreover, I think most of the time these things are hard precisely because you do not do anything about it. If you try to do the right thing (even if most people do not do it or understand you) and explain people why it is the right thing, then they will start to change too.
Zarathustra
September 29, 2018 04:07 PM
"Well a lot of things in life are hard and may not work out, like convincing public that privacy is important and that they should do something about it, or like convincing companies and governments to stop spying on innocent people. That does not mean we should stop trying to do the right thing."
Stop quote mining, it doesn't necessarily mean it is the right thing to do to force change in language on people, either.
He already explained why it is poppy cock to call it GNU/Linux, so your comment is pointless, unless you address his criticism.
Thomas
April 11, 2016 08:36 AM
LOLOL at your "drama" tag. It's so embarrassingly true.
Erock
September 19, 2015 07:02 AM
Recursive acronyms are not cool.
Roberth Sjonøy
May 14, 2016 08:31 AM
I'd just like to interject for a moment. What you’re referring to as Linux, is in fact, GNU/Linux, or as I’ve recently taken to calling it, GNU plus Linux. Linux is not an operating system unto itself, but rather another free component of a fully functioning GNU system made useful by the GNU corelibs, shell utilities and vital system components comprising a full OS as defined by POSIX. 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 often called “Linux”, and many of its users are not aware that it is basically the GNU system, developed by the GNU Project. There really is a Linux, and these people are using it, but it is just a part of the system they use. 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 combination with the GNU operating system: the whole system is basically GNU with Linux added, or GNU/Linux. All the so-called “Linux” distributions are really distributions of GNU/Linux.
Bob
August 30, 2016 12:39 PM
Did you read the article? It basically takes on all of that, and pretty much knocks it all down. First of all, the kernel is a fairly significantly more impressive thing than a bunch of relatively minor command line utilities, and an admittedly impressive compiler (even if it is somewhat displaced by clang.) The GNU obsessives always talk about their wonderful OS as though the kernel is a minor part of it, when precisely the opposite is true - a POSIX system, in this day and age, really isn't much of anything. And that's where the author goes with this - a true Linux system distribution is in fact a complex and full graphical OS, with a window manager, desktop environment, office suite, and all kinds of developer tools - many of which (such as the Apache foundation) are a far larger contribution to the distribution than GNU has any hope of ever being. These distributions have colloquially been given the name "Linux" - and that's just how it is, whether it is liked or not. Certainly, there are many other code contributions that have nothing to do with Stallman, and many are larger contributions. So why his share should get any special notability, I don't know.
Wayne
December 8, 2016 09:47 AM
OTOH, why should Torvalds get all the free beers and groupies?
I can sympathize with Stallman It's like dealing with people that think "PC" refers to the Micro&Soft operating system.
So what's wrong with 'Glindux' (the 'x' is silent)?
geexter
September 18, 2015 08:52 AM
People ask me about this all the time & I never answered this. Thanks for explanation.
Dan Douglas
October 11, 2015 03:03 AM
Oh dear, you must be new. I'm pretty sure RMS has a convenient macro always ready to spam that "GNU/Linux" propaganda into a form at the push of a button, which is why you're the 10-millionth person to write this exact blog entry.
Stallman isn't interested in useful terminology unless that use happens to promote his dogmas or foundation - one of the many reasons everyone learns to ignore him sooner or later. Even after the last piece of GNU software has been obsoleted by a sanely-licensed implementation, he'll still be trolling to have "GNU" in the name.
choco
August 31, 2018 01:44 AM
why i call it GNU/LINUX because of it's importance to make a GNU/LINUX .The GNU Project was not, is not, a project to develop specific software packages. It was not a project to develop a C compiler, It was not a project to develop a text editor, although they developed one. The GNU Project set out to develop a complete free Unix-like system: GNU The system's basic components include the GNU Compiler Collection (GCC), the GNU C library (glibc), and GNU Core Utilities (coreutils),[8] but also the GNU Debugger (GDB), GNU Binary Utilities (binutils),[38] the GNU Bash shell[33][39] and the GNOME desktop environment. and Richard Stallman already mentioned above that Linux is compiled solely with the GNU C Compiler and GNU software was the largest single contingent, around 28% of the total source code.so it's like every one want to know who made the engine of car rather than to know who really made it functional
Dave Crossland
September 20, 2015 04:57 PM
I reached the opposite conclusion for roughly the same reason; now that the Linux kernel is used in combination with other operating systems - leading with the Android operating system project, which is definitely not a GNU ststem, and we just say "Android" not "Android+Linux" - it is better to refer to the GNU operating system as the GNU operating system, not GNU+Linux.
Micah Lee
September 21, 2015 10:25 AM
I like that. The only problem is if you say that you're trying out a new GNU distribution, most people won't have any idea what you're talking about.
Wayne
December 8, 2016 09:27 AM
So they ask and get a barely useful piece of trivia while extending that little bit of human interaction for another 30 seconds.
Colloquial speech has its place, but it serves the purpose of brevity more than efficiency.
Zarathustra
September 29, 2018 03:57 PM
... and definitions are descriptive, not prescriptive. Therefore you insisting on naming an OS after some tools it uses would be pretentious and silly alike.
Richard Stallman
June 22, 2018 04:10 PM
Oliver, Notepad and Minesweeper are not "core applications" that are required to interact in any meaningful way with the Kernel. It is a false equivalency. Of course it's entirely possible to use Windows without Notepad, but it is much more difficult, if at all possible, to interact with a Linux system lacking core utilities. You cannot exactly admin a server without being able to use chmod, rm, echo, or many of the other coreutils.
You also seem to equate GNU in it's entirety with GNU Coreutils alone, which is also a mistake. GNU is much more than the few dozen utilities included in GNU Coreutils. GNU also includes many libraries the Kernel -- and most userland applications you come across -- depends on, including GNU's implementation of libc, not to mention the fact that Linux is compiled solely with the GNU C Compiler. Even without any GNU Coreutils, your Linux distribution still depends on GNU in many ways you may not see.
This is not simply a matter of language evolving, it's more a matter of exposure and acknowledgement. GNU has contributed massively to the community -- it might not even exist in it's current state if it weren't for GNU. To simply omit GNU from the discussion by calling it "Linux" alone is damaging not only to GNU, but also to newcomers who may not otherwise hear about GNU or it's importance. It's really not that much work to acknowledge GNU in this case -- it's 4 extra keystrokes, and it will benefit everybody.
rms
Gabe
October 5, 2015 09:33 AM
Linux is to open source UNIXy operating system as Kleenex is to facial tissue.
Wayne
December 8, 2016 09:06 AM
'Posix compliant' is a much better term because its definition includes tests for just how unix-y the OS is.
I seriously doubt how posix compliant Android is and I refuse to think of it as a form of linux. -- Based on Linux like that movie was based on a true story. :P
NumOpen
November 20, 2015 12:32 AM
When you say GNU/Linux, you don't refer only to GNU softwares but mainly to GNU Free Software licenses. That's what is the most important.
Promis
January 29, 2016 04:09 AM
When you say Linux why not adopt the term Lunix? Posix based software using stall-man's compiler doesn't work and from looking at all the constant bug submission's it's clear that it never will. After examining code base after code base you finally come across the one useful tid-bit of information that BSD was never really designed to be a secure operating system, with NSA code being rampantly inserted into the Linux kernel and last years leaks about Bell-Topper, then your drawn to stories of echelon / compu-trace / insider trading and the clear distinction that your all clinging to a broken system. In 1984 stall-man left the MIT labs proclaiming he was bringing the world Unix for FREE but Unix in terms of security was clearly the far more rampant plan 9 approach where everything is a file. The Plan 9 story and Echelon - the system that's invisible to TCP/IP - how Google got around great china's firewall and how greed and corruption by senior staff within Bell-Labs has led to back-doors in windows, back-doors in Linux etc et al. Surely we should all be using a secure OS with no web-browser, no advertising, no back-doors and where security was considered fundamental from the outset in which case we should all be using Strong cryptographic systems and suffer advertising and spying no more. www.9front.org "Forgive me the outflow" must be a reference to the overflow of thousands of people and programmers suddenly downloading the most secure database in the history of the United States, because it wasn't designed to allow other people to spy on it - although it never prevented a load of corrupt programmers from using it to spy on everybody else.
Richard Stallman
February 6, 2017 05:40 PM
Hello again, I believe you are confused in some sense. You continue referring to the entire GNU operating system with the Linux kernel as "Linux", even though this is clearly erroneous. In addition to that, it is also unfair; you should give equal consideration to the GNU Project, which contributed as much (if not more) to the GNU/Linux system than the kernel. 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. You can read my writings on the subject either at https://stallman.org or https://gnu.org, and this article may be of particular interest to you: https://www.gnu.org/gnu/why-gnu-linux.en.html
Dennis A Gutowski
November 15, 2017 10:08 AM
Is the gnu contribution important? Yes. But just as equally, if not more so, is the kernel. This operating system never was, nor will ever be gnu. It's Linux. Why? Because all those wonderful programs you wrote do literally nothing without the kernel. They are entirely useless without it.
If you write and release a gnu kernel, and I reference it, I promise you I will refer to it as gnu. But OS's like Ubuntu are and will always be Linux.
Richard Stallman
February 5, 2018 04:01 PM
Hello Dennis, Of course the Kernel is an important part of the operating system - necessary, even. But in order to meaningfully interact with a Kernel you need userland tools, such as those developed by GNU. It's as you say, the GNU system is not functional without a Kernel -- but so too is the Kernel "entirely useless" without GNU. You can see there is a mutual dependence on the Kernel and GNU, they both need each other. The Kernel does everything behind the scenes -- you don't interact with the Kernel, you interact with GNU. You could say the most meaningful interactions you have with your computer are the interactions you make with GNU, not the Kernel. This is why both GNU and the Kernel deserve equal credit -- GNU+Linux. By omitting "GNU" from "GNU+Linux", you are saying the contributions to GNU are so meaningless as to not even warrant a mention.
There is a GNU Kernel, it is called Hurd -- you can learn more about it here: https://www.gnu.org/software/hurd/
Ubuntu is not an "OS" on it's own, it's a flavor (or distribution) of GNU+Linux built upon the distribution Debian. Ubuntu adds nonfree blobs and used to even add spyware, you can read about that here: https://www.gnu.org/philosophy/ubuntu-spyware.en.html Nonetheless, Ubuntu is not "Linux". Ubuntu is not a Kernel, nor is it shipped without GNU userland. Ubuntu depends on GNU just as it depends on the Kernel. As you can see, it is more proper to refer to Ubuntu as "Ubuntu GNU+Linux", rather than simply "Linux".
rms
Oliver
February 21, 2018 04:00 AM
How do you define what is and isn't part of an "Operating System"? Are Notepad and Minesweeper on Windows part of the Operating System? They're bundled with it, but they're user-mode programs. There's no fundamental difference between GNU awk and Minesweeper when it comes to drawing the line between OS and non-OS. Therefore it makes sense to use OS strictly to refer to the kernel and maybe the libraries needed to make system calls, but every actual application is something else optionally bundled with the OS.
The GNU FAQ on this says that an OS "ought to handle all the jobs that many users may want to do". How do you define these "many users"? If a Windows user needs Excel, and the computer they're on doesn't include Excel, do they not have a complete OS?
Ordinary language is never that precise, people have pictures of what they mean. Despite what I've said, when I think of Unix I'll think of rwx permissions and the cat command. A lot of that is outside the kernel, which is why "Operating System" is a vague term. But that is the nature of human language and why it's better not to insist too strongly on names. I think it best not to argue this point too much if there isn't a clear, precise definition of the term.
John
March 14, 2018 07:33 AM
I'm brand new to this debate, but I don't find your questions compelling. There is a very clear, objective criteria already. If every single distribution of what we call "Linux" requires the GNU to be operable at all -- and I don't mean lacking features, I mean even allowing any basic user interaction with it as an operating system -- then Richard's claim is fair, and even generous. Nobody's talking about one or two non-essential tools, one is talking about the entirety of the GNU system as it is used by the operating system.
Are there flavors of Linux now that don't use GNU? I don't know the answer to that but I will say that it shouldn't matter in this debate if there was a significant period of time where this was not the case, meaning that originally GNU/Linux (or some other neutral or combined name) should have simply always been the name of the OS.
The only compelling argument seems to be "it's what everyone is saying already", meaning that communication is more fluid to simply use the accepted term; the dictionary has even accepted it by now.
Personally, I think it's sad that historically this is the way things worked out. Getting name credit for what has turned out to be such an impactful set of software isn't a small thing. Until I did my own research I always did wonder what GNU meant or is. I think it makes sense for Richard and the GNU org to want to turn this around if they can, and I wish them luck.
It should be said that coincidentally, history could have gone the other way. We could have called the OS GNU with Linus insisting to everyone today that we should call it GNU/Linux.
Now it's on to more reading for me to find out how many Linux distros don't actually feature GNU so that I don't accidentally call something GNU/Linux that I should not (it's the only fair case where GNU should actually be omitted).
Richard Stallman
June 22, 2018 04:10 PM
https://micahflee.com/2015/09/why-i-say-linux-instead-of-gnulinux/#comment-71648
Hello again, I believe you are confused in some sense. You continue referring to the entire GNU operating system with the Linux kernel as "Linux", even though this is clearly erroneous. In addition to that, it is also unfair; you should give equal consideration to the GNU Project, which contributed as much (if not more) to the GNU/Linux system than the kernel. 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. You can read my writings on the subject either at https://stallman.org or https://gnu.org, and this article may be of particular interest to you: https://www.gnu.org/gnu/why-gnu-linux.en.html
I got a reply! Dennis A. Gutowski said:
Is the gnu contribution important? Yes. But just as equally, if not more so, is the kernel. This operating system never was, nor will ever be gnu. It’s Linux. Why? Because all those wonderful programs you wrote do literally nothing without the kernel. They are entirely useless without it.
If you write and release a gnu kernel, and I reference it, I promise you I will refer to it as gnu. But OS’s like Ubuntu are and will always be Linux.
Here is what "rms" replied:
https://micahflee.com/2015/09/why-i-say-linux-instead-of-gnulinux/#comment-84984
Hello Dennis, Of course the Kernel is an important part of the operating system - necessary, even. But in order to meaningfully interact with a Kernel you need userland tools, such as those developed by GNU. It's as you say, the GNU system is not functional without a Kernel -- but so too is the Kernel "entirely useless" without GNU. You can see there is a mutual dependence on the Kernel and GNU, they both need each other. The Kernel does everything behind the scenes -- you don't interact with the Kernel, you interact with GNU. You could say the most meaningful interactions you have with your computer are the interactions you make with GNU, not the Kernel. This is why both GNU and the Kernel deserve equal credit -- GNU+Linux. By omitting "GNU" from "GNU+Linux", you are saying the contributions to GNU are so meaningless as to not even warrant a mention.
There is a GNU Kernel, it is called Hurd -- you can learn more about it here: https://www.gnu.org/software/hurd/
Ubuntu is not an "OS" on it's own, it's a flavor (or distribution) of GNU+Linux built upon the distribution Debian. Ubuntu adds nonfree blobs and used to even add spyware, you can read about that here: https://www.gnu.org/philosophy/ubuntu-spyware.en.html Nonetheless, Ubuntu is not "Linux". Ubuntu is not a Kernel, nor is it shipped without GNU userland. Ubuntu depends on GNU just as it depends on the Kernel. As you can see, it is more proper to refer to Ubuntu as "Ubuntu GNU+Linux", rather than simply "Linux".
rms
Oliver, Notepad and Minesweeper are not "core applications" that are required to interact in any meaningful way with the Kernel. It is a false equivalency. Of course it's entirely possible to use Windows without Notepad, but it is much more difficult, if at all possible, to interact with a Linux system lacking core utilities. You cannot exactly admin a server without being able to use chmod, rm, echo, or many of the other coreutils.
You also seem to equate GNU in it's entirety with GNU Coreutils alone, which is also a mistake. GNU is much more than the few dozen utilities included in GNU Coreutils. GNU also includes many libraries the Kernel -- and most userland applications you come across -- depends on, including GNU's implementation of libc, not to mention the fact that Linux is compiled solely with the GNU C Compiler. Even without any GNU Coreutils, your Linux distribution still depends on GNU in many ways you may not see.
This is not simply a matter of language evolving, it's more a matter of exposure and acknowledgement. GNU has contributed massively to the community -- it might not even exist in it's current state if it weren't for GNU. To simply omit GNU from the discussion by calling it "Linux" alone is damaging not only to GNU, but also to newcomers who may not otherwise hear about GNU or it's importance. It's really not that much work to acknowledge GNU in this case -- it's 4 extra keystrokes, and it will benefit everybody.
rms
José Gatica
September 19, 2018 05:36 PM
oooohhh I think you're very confused and without arguments, bro
José Gatica
September 19, 2018 05:37 PM
I mean, Oliver is confused and without arguments
lisa
July 4, 2016 06:03 AM
Cool