←Back

“Linux” or “Gnu/Linux”? Be specific.

Operating systems are made up of many components. These are sometimes made by different persons and groups, and when permitted, they be substituted for other implementations. This can result in a proliferation of systems sharing components and overall design — along with ambiguity in how we refer to those systems collectively.

This doesn't really happen for something like Windows. Microsoft wrote the kernel, the C library, the compiler, the shell, the GUI, and every other component of an OS which they collectively called "Windows." No one's allowed to take some component of it, like the NT kernel, and make a new OS around it that would be sort-of but not-quite the same as Microsoft Windows. As a result, there's no ambiguity in what systems are referred to as "Windows."

This is not the case for Unix-like OSs. When people talk about them, they often end up saying weird things like "Android is Linux, but it can't run Linux programs because it doesn't have stuff like X11 that you find on normal Unix systems like FreeBSD." You also end up with diagrams that look like this:

Complicated diagram showing the family tree of Unix-like operating systems.

What's going on?

First off, "Linux," as in the project managed by Linux Torvalds, is just a kernel. A kernel could be considered an operating system on its own, but most of the things we think of "operating systems" as doing, like running applications, require more than just a kernel.

The most common use of the Linux kernel is in Android devices, where it's combined with Bionic LibC, Toybox, a Korn shell, and a bunch of Java UI stuff. However, when people refer to complete systems as "Linux," they're usually talking about systems combining the Linux kernel with glibc, the GNU coreutils, and a bunch of traditional Unix userspace stuff like the X11 display system. This specific set of free software constitutes a complete operating system because in 1984 the GNU project set out to make it so.

One-by-one, the GNU contributors replaced the components of proprietary Unix with free ones, which they either wrote themselves, which were already already available as free software, or which they convinced the authors to relicense as such. Linux was one such component – and the last one necessary to make a complete OS – so some people call the resulting system "GNU/Linux". Others use "Linux" alone as a synecdoche referring to the whole system.

In my view, both "Linux" and "GNU/Linux" are legitimate names for complete systems, but they're both often used inappropriately. Usually when people say one or the other, they're really gesturing to a bunch of related systems that are not actually that well described as a whole by either term.

Consider the following. Debian and Android both use the Linux kernel, but have completely different userlands. FreeBSD has an X11 GUI like Debian, but the kernel and low-level userland are different. FreeBSD and MacOS are both derived from BSD and share many components, but the kernels are different, and MacOS has a completely different, proprietary GUI. Alpine Linux shares the same kernel as Debian and uses a similar userland, but it uses alternatives to all the GNU software such that it's largely source-compatible but not binary-compatible with Debian, whereas most other distros like Fedora, OpenSUSE, Arch, etc. are binary-compatible with each other.

As a result, when you say something about some subset of the operating systems above, you need to pick your words carefully to avoid including systems for which your statement is not actually true, or excluding systems which your statement is true but you don't acknowledge.

The following dialgue uses all of the above names correctly.

—What OS are you using?
—Mandriva
—What's that?
—It's a GNU/Linux distribution, like Fedora.
—So it's a Unix-like system?
—Yes.
—Got it. What made you choose it instead of a BSD?
—Linux has more drivers available.
—Doesn't Windows have even more?
—Yes, but I prefer a free software OS for privacy reasons.
—What made you concerned about that?
—I read about it on the FSF's website.
—What's the FSF?
—It's the organization that made GNU.
—I thought that was Linus Torvalds?
—No, he made a kernel called Linux, which was combined with GNU to make the GNU/Linux operating system.
—I thought Linux was an operating system?
—It is, but on its own it's only really useful for embedded systems. For instance, my toothbrush runs Linux. But for most purposes you need more than just Linux.