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.