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.

23 thoughts on “Why I say Linux instead of GNU/Linux

  1. Dave Crossland

    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.

    Reply
    1. Micah Lee Post author

      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.

      Reply
      1. Wayne

        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.

        Reply
    1. Wayne

      ‘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. 😛

      Reply
  2. Dan Douglas

    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.

    Reply
  3. Promis

    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. http://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.

    Reply
  4. Roberth Sjonøy

    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.

    Reply
    1. Bob

      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.

      Reply
      1. Wayne

        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)?

        Reply
  5. Unid

    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.

    Reply
  6. Richard Stallman

    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

    Reply
    1. Dennis A Gutowski

      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.

      Reply
      1. Richard Stallman

        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

        Reply
        1. Oliver

          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.

          Reply
          1. John

            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).

          2. Richard Stallman

            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

  7. Richard Stallman

    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

    Reply

Leave a Reply to Micah Lee Cancel reply

Your email address will not be published. Required fields are marked *