You’re interested in Linux and have read a few blog posts. Along the way, you’ve come across a funny name: GNU/Linux. What do those letters mean, and why do people keep appending them to Linux? I can answer that question, and as I do, I’ll be dropping you into the middle of a debate that has persisted in the Linux world for decades.
Now, with that out of the way… Linux or GNU/Linux, which is it?
What Is GNU?
The decade is the 1980s, and the computer industry is in a period of transition. A Supreme Court involving Apple ruled that binary programs (the kind of software that comes in a ready-to-use format) can be copyrighted. Microsoft released Windows a few years later. This started a change in the way people interacted with software.
Before companies started copyrighting software with the intention of getting rich, most software was used by researchers and academics. Computer code was shared openly, and people were free to do whatever they wanted with the programs. Now restrictions were falling in place, and it was becoming illegal to continue doing what used to be done.
A movement formed called the Free Software Movement. In 1983, Richard Stallman announced a plan to create a completely non-proprietary Unix-compatible operating system. He called it the GNU Project.
GNU is a recursive acronym that stands for “GNU’s Not Unix” The GNU Project provided many of the cool tools that free desktops depend on today. Critical tools created in the 80s include GCC (a tool for compiling C), Emacs (a text editor), Bash, and various command line utilities still in use.
Many widely used applications are part of the GNU Project, such as GIMP (GNU Image Manipulation Program) and GNOME, one of the most popular free desktop environments. No matter which Linux operating system you use, you probably depend on more than a few bits of GNU software.
The GNU Project is also responsible for the General Public License. This is what has kept most of the free software we use free over the years.
What About Linux?
Linux came around in 1991. The project began when a student at the University of Helsinki began working on his own operating system kernel. His name was Linus Torvalds.
At the time, the GNU Project had already created much of what was needed for a functioning free operating system, but the missing pieces were essential. These included hardware drivers, daemons, and a working kernel. These components are what enable software to communicate with hardware.
GNU Hurd, the GNU Project’s attempt at a kernel, began development the year before and was not yet ready. A different kernel called MINIX had been around since 1987, but it was only licensed for educational use.
Frustrated, Torvalds decided to make his own. He referred to the personal project as Linux, a combination of his name and UNIX, but he thought that would be too egotistical to share publicly. Instead, he shared the project as Freax, a combination of “free,” “freak,” and “UNIX.” A coworker didn’t like the name and preferred Linux. Linus consented, and the name stuck.
The kernel wasn’t free at first, but in 1992 Linus licensed Linux under the GPL, a copyleft license the GNU Project created. This is responsible for much of the project’s success. Rather than create competing kernels, many have adopted Linux and contributed to its development.
Are We Using Linux or GNU?
With GNU tools and a functional Linux kernel, we now have a working, free operating system. But what to call it? From early days, many people took to calling operating systems that used the Linux kernel as simply Linux. This spawned tension because Linux hardly represents the bulk of what goes into making the experience we all imagine when we say Linux.
Richard Stallman initially proposed the idea of calling such creations Linux-based GNU systems. He then changed his preference to GNU/Linux (pronounced as “GNU slash Linux” or “GNU plus Linux”), so that it’s clear that both projects play an essential role. Some people accept that argument, while others think such a name is awkward and unnecessary. The divide lasts to this day.
Reasons for GNU/Linux
From the beginning, the GNU Project’s purpose was to develop a complete operating system. The kernel was one of the missing pieces of the puzzle. Torvalds did not set out to create an operating system, but to provide that missing piece.
Linux is vital for you to see anything on your screen, but it has very little to do with what you actually see. That’s largely determined by your desktop environment.
If you use GNOME, you’re using an interface and a suite of software that’s all part of the GNU Project. Even if you don’t install a graphical user interface, you’re still interacting with command line tools (such as Bash itself) that are part of GNU. Without these tools, what we think of as Linux doesn’t feel like Linux anymore.
For example, Android doesn’t feel like Linux, even though it uses the Linux kernel. That’s largely because it lacks the GNU toolchain. On the other hand, FreeBSD provides a near identical experience to desktop Linux, even though the Linux kernel is nowhere in sight.
Similarly, when we think of Windows, we typically think of the interface. Few of us immediately think of the Windows kernel. If someone could run the Windows 10 interface and all of their Windows applications on top of the Linux kernel, they would likely still think of that as Windows. This is already the case with Chromebooks, which use the Linux kernel but can’t run traditional Linux applications within Google’s interface.
Operating System Components
A free operating system consists of many components. Referring to the entire ecosystem as Linux creates confusion. Torvalds sometimes gets credit for creating the entire operating system, when he only founded a specific part.
More importantly, the GNU Project not only provided the tools that enabled a free operating system, it provided the legal framework. The GPL prevents people from taking free code and using it to create their own competing proprietary software. That so many core tools, including Linux itself, were released under a copyleft license accelerated their adoption and laid the foundation for the culture the free software community has today.
Reasons for Linux
Linux is more popular. This was the case back in the 90s, and it remains the case today. To refer to the operating system as anything else would have, and would still, feel like a conscious rebranding effort. That’s because Linux is what enabled people to actually run all of the software that the GNU Project and others had created. Without Linux, you had nothing you could actually use.
Plus, GNU/Linux is a clumsy name. It’s awkward to read, and it’s even more clumsy to say. This reason alone is enough to keep some people who agree that Linux isn’t a fair name from calling the operating system anything else.
Then there’s Linus’s own argument, that referring to Linux as GNU/Linux is simply ridiculous.
Besides, where do we stop? If we give credit to GNU, do we not give credit to X, the display server that most of the free desktop ecosystem has used for decades? We’re only just now starting to see a replacement for a piece of software that was first developed in 1984. And without a display server, you’ve got nothing. So do we call these X/GNU/Linux systems (now being replaced by Wayland/GNU/Linux). Audio’s important too. So are desktop environments. Before long we’re referring to our desktops as KDE/PulseAudio/Wayland/GNU/Linux.
What Do You Think?
I’m no fan of the name GNU/Linux, but I would still personally prefer to refer to my laptop as a GNU system rather than a Linux one. As someone who has also covered Android and Chromebooks, the name Linux is increasingly insufficient. A program being available for Linux doesn’t mean it will run on Android, and vice versa. The situation will only get more convoluted as infotainment systems, smart home products, wearables, and other electronics continue to embrace the Linux kernel.
What about you? Do you feel that Linux is sufficient? Do you view Stallman as trying to claim the credit? Would you recommend a different name entirely? Join the ongoing conversation in the comments below!