There exists a lot of arguing in the F\OSS community on what to call Linux as an operating system: Linux, Linux distribution (“distro” for short), GNU Linux, GNU/Linux, and GNU+Linux all seem to be the order of the day. So what should we be calling operating systems that use Linux as their kernel?
First thing’s first: What is Linux?
Linux by itself is, technically, just the kernel, and I don’t deny that.
So what is a kernel? It’s the heart-and-soul of the operating system. It’s main function is to function as a “bridge” between your hardware and the software (e.g. games, office applications, etc.) you run. It’s the kernel’s job to make sure that your hardware is available when it’s needed and that all software get the hardware they need when they need it.
So what should we call the operating system?
A few things come to mind: Linux distribution, Linux distro, and Linux operating system. More often than not, I just refer to the operating system as Linux, though this is really out of laziness.
So what’s with all this “GNU” stuff?
Operating systems need certain tools — a user interface, a compiler to turn human-readable code into computer code, and other basic utilities. When Linus Torvalds was working on early version of the Linux kernel, he decided to pair it up with GNU utilities (GNU Bash, GNU gcc, GNU libc, GNU coreutils) instead of developing his own. The GNU people latched onto this and have started a campaign to get everyone to prefix the word “Linux” with the word “GNU” as a means of referring to the operating system. They have argued that GNU is an integral part of the Linux ecosystem and an integral part of Linux’s history, thus we need to give credit where credit is due by including “GNU” in the name of the operating system. It’s also been argued that doing this helps remind people that they are using Free Software because GNU has long been associated with Free Software.
But…
GNU may be an import part of Linux history, but it’s worth noting that it is entirely possible to replace GNU with many alternatives — Bash can be replaced with a number of shells (ksh, csh, dash, zsh, busybox), the compiler can be replaced (with clang, for instance), libc can be replaced (musl, uclibc, dietlibc), coreutils can be replaced (busybox), autotools can be replaced (cmake, acr [autoconf replacement]), etc. etc. etc. I’ve even taken to exploring the filesystem of my Verizon-supplied router (manufactured by Actiontec) through the router’s telnet service, and so far I haven’t seen a trace of GNU. Even systems like Alpine Linux and Android d not include GNU libc and userland in a core install.
It’s also worth noting that most people outside the Free Software community won’t know or understand what Free Software actually means and will (incorrectly) equate it with Freeware, and that they likely won’t know what GNU actually is. I don’t deny the importance of Free Software and what the term actually means (it’s Free as in Speech, not Free as in Beer), software freedom is a big part of why I use Linux. However, trying to explain one thing people don’t understand by “reminding” them of another thing they don’t understand is absolutely the wrong way to do things: non-technical people will likely struggle to understand what GNU is, thus will be less likely to understand Free Software than if we tried explaining it with the old “free as in speech, not as in beer” moniker or take the approach of “you can do anything you want with this and have nothing to worry about, but if you do X with that you could be prosecuted by big evil corporation Y.” Plus, the argument that adding “GNU” to the name helps remind people of Free Software doesn’t really work with non-GNU Linux operating systems since there isn’t any GNU in it.
As for giving credit where where credit is due, I have a big problem with this: not the part about giving credit, but the part about doing so by adding the credit to the name of the system. I, for one, will not be calling my operating system “GNU+zsh+X.org+KDE+Qt+Mozilla+The Document Foundation+Oracle+(insert name of hundreds of other libraries and applications a KDE with Firefox install of Devuan depends on, with a + between all of them)+Linux” — the conversation would go nowhere fast, and the person I’m talking to would likely get annoyed even faster and become discouraged from using a “GNU+Linux” system. That may seem like a bit of an extreme example, but it’s exactly the same logic that the proponents of the “GNU( ,/,+)Linux” naming convention are using, and it’s fair that if we credit one major part of the system, we give credit to all major parts.
If distros that include GNU are GNU Linux, what is Alpine?
I suggest: Alpine Non-GNU Linux, or Alpine Linux-GNU (the ‘-‘ represents “minus”).
Are you trying to downplay GNU’s role in the F\OSS ecosystem?
Not at all. As stated above, GNU is a major part of the history of Linux and Free Software in general, and it remains an integral part of most Linux distributions. I just don’t agree with the notion that we ought to stick “GNU” in front of “Linux”.
What’s wrong with calling it GNU Linux?
As stated above, not every Linux distro uses anything from GNU, and not everyone is going to understand what GNU is even if you explain it to them; these same people will likely become even more confused when we work out a naming scheme for non-GNU Linux distributions (“Wait… I thought I was using GNU+Linux, why are you suddenly calling it this other thing?”). We really are working against ourselves if we insist that we need to stick “GNU” in front of Linux because of this. If the goal is to ensure people know they are using Free Software, there are better ways of doing so.
So how do we ensure people know they are using Free Software?
Most people outside the Free Software community won’t care about the Freedom aspect because they already (incorrectly) feel as though they are “Free” to do whatever they want with the proprietary alternatives they are already using. It’s unfortunate, but true.
The best way to ensure people know about Free Software is to first get them using it. The switch should be gradual so people aren’t overwhelmed, i.e. don’t switch them over to the operating system immediately, but instead install cross-platform Free Software applications for them. Examples including Firefox or Chromium, LibreOffice or OpenOffice or CalligraOffice, Pidgin or Psi for chat, and so on. Once people are used to using these applications, we can begin looking for distributions that are similar to what people are used to.
After people get settled in and find their way around, we can begin having discussions with them about what Free Software is and why it’s important. Most people likely won’t care about this, but it’s still an important discussion to have. But not everyone will willingly switch, and there’s not much we can do about that; however, many of them will continue asking us for help with their proprietary alternatives. To that, you can reply:
I’m sorry, I cannot help you with that. I haven’t used that in a long time and I barely remember anything about it. Even if I knew about it, I could not, in good conscience, support it because it is licensed in a way that limits your freedom, making it illegal for you to do some things with it that you should be able to do. If you want me to help, please switch to Linux.
It would help if, prior to saying that to someone, you familiarize yourself with the licensing of the software they’re using in case they ask what it is that’s so illegal for them to do. Reading through proprietary licenses is boring, time consuming, and sometimes tedious, but also important for making a compelling argument to those that are legitimately interested.
So how should we credit GNU et. al.?
Most Linux distributions use some sort of packaging system. I suggest adding a tag to packaging scripts that credits the person, project, or organization the software comes from. During a version-release of the distribution, a script can be run that checks the packaging scripts of all packages to pull out the author tag and generates a list — e.g. in HTML, MarkDown, XML, Plain Text, etc. — which can then be posted to the distribution’s website and included within the distribution itself as something that appears on first login.
It’s worth noting that not everyone is guaranteed to read the credits, regardless of how we present those credits (e.g. by adding them to the name of the operating system, or through other means). It’s a bit like movie credits: some people read them, most people don’t. The best we can do is put our credits out there and hope people show an interest.
What should we call the Linux operating system?
Any of my previous suggestions would work: Linux distribution, Linux distro, and Linux operating system. Or we could just call it “Linux”: this may be technically incorrect, but it’s easy, and most people will understand that you’re probably referring to an operating system. Even most non-technical folks will understand it to mean “an alternative to Windows and Mac OS X (or whatever the hell Apple decides to call it this year)”.
Links
- Wikipedia: GNU/Linux naming controversy — Links to several essays, including a few by Richard Stallman
- GNU.org: Linux and GNU

