Hacker News new | ask | show | jobs
by mikegerwitz 5185 days ago
It is disappointing to see "GNU/Linux" comments consistently harassed. Consider the history.

The GNU project was conceived in 1983 to create a full free (as in freedom) operating system. This operating system combined many different projects (for example, X), in addition to creating its own components. Before Linux, it had one troubled component - the GNU Hurd, which was its kernel. Torvalds developed Linux (the kernel) in 1990 and released it under the GNU GPLv2 in 1991, which completed the GNU operating system by providing a working, stable kernel. The entire operating system was, and still is (except when GNU is not present, such as Android), GNU. The term GNU/Linux was used to give credit to both Torvalds and the GNU project. The term just as easily could have been "GNU/Linux/X" (and in fact that was used by the Yggdrasil distribution).

Linux, as it was conceived, is a kernel. GNU, as it was conceived, is an operating system. There is an important distinction there.

Fast forward a couple decades. Many people, in an effort to shorten the name "GNU/Linux", simply dropped the GNU portion and referred to the entire Operating System as "Linux". Also combine this with projects such as Android, which use Linux without GNU, and therefore are not GNU/Linux. Everyone has come to know any operating system that uses the Linux kernel simply by the name of "Linux".

Is that correct? Well, that depends on how the term is used. "Linux distribution" is certainly correct --- if your operating system uses the Linux kernel, then yes, distributes Linux. But to consider Linux an operating system is incorrect from both a project and historical standpoint, because it is not --- it is a Linux-based operating system. But to call an entire operating system "Linux" is saying that the entire system that you are using is part of the Linux project. On the other hand, calling your operating system "GNU", as long as it uses GNU, is correct, because GNU was always developed to be an operating system - a collection of components.

So given the history, why is the term "GNU/Linux" ridiculous? Why is the term "Linux" to refer to an entire operating system not ridiculous? Because that is the most popular term to refer to a Linux-based operating system? And given your statement

> The GNU user land is no more an operating system than the Linux kernel or the K desktop environment.

it would seem GNU is just as fitting to be used as Linux. So again, why is such a notion ridiculous?

2 comments

Mike, what type of computer do you own? Does it use Intel hardware? Maybe it was created by Dell or Lenovo or somebody else? When someone asks you what type of computer you own do you say "It's an Intel/Dell" or "It's an Intel/Lenovo"? Or would you just say "It's a Dell"?
The term "computer" encompasses a wide variety of components. Had I purchased a PC from some specific company, such as Dell, stating that I have a "Dell computer" would indeed be accurate (stating "I have a Dell" is not technically correct; Dell is a company, not a computer). In a similar since, saying I use "Gentoo", "Trisquel", "Ubuntu", "Arch", etc is accurate.

I built my PC using hardware I purchased separately. I do see your argument - if someone asks me "what type of computer do you own", I would not list each hardware component individually. The problem is - that question is terribly vague. What type of computer do I own? Well, it's classified as a PC. Generally, when someone asks that question, they are looking for a specific company name. When I respond that I built my own, that answers their question.

If someone asks "what type of processor", I would then respond "I use an AMD-based system". In that sense, if someone asked what kernel I use, I would respond "I use a Linux-based system" --- they were specific enough to inquire about a specific component, so I would respond in such a way that answers their question.

"What operating system do you use?" Technically, I use GNU, and to those who understand what GNU is, I respond just like that --- "GNU". For those who may be unfamiliar with GNU, I will state "GNU with Linux" --- the GNU operating system with the Linux kernel. If I used GNU with another kernel, it is still GNU. Linux is one component of my operating system.

That said my display server, window manager, text editor, etc are also all useful components of my operating system. I would not say I use "GNU/X/Xmonad/Vim", simply because that is not a distinction commonly requested. Perhaps one day, if Wayland becomes popular, "GNU/Linux/X" would be useful/necessary.

It is what it is, history. Calling it GNU/Linux might have been appropriate when GNU was such a big part of the system. It isn’t any more. Linux, on the other hand, is the biggest open source project in existence. Saying those two are equal is ridiculous.
The argument is not about equality; Linux is by far much larger in nearly every regard than GNU is. The argument is toward correctness. No matter how small GNU is, "GNU" describes an entire operating system, which is comprised of many components, some maintained by GNU/FSF, others not.

Let's say that I released an operating system called "Mike OS", which used Linux, portions of GNU, etc. My only contribution to the operating system, aside from packaging, was a simple script to handle package management/configuration. Well, it's still "Mike OS".

I think much of the confusion comes from people thinking of GNU in terms of projects that the FSF personally maintains. As stated by http://www.gnu.org/: "GNU is a Unix-like operating system that is free software—it respects your freedom. You can install Linux-based versions of GNU which are entirely free software."

No. GNU + Linux does not make an operating system. That’s a lie. In any modern distribution GNU packages are just optional components. They fit in a larger framework that makes an operating system, just like everything else. Stallman’s threshold for GNU/* is apparently just linking against glibc.

When GNU makes an actual distro, they can call it GNU/Linux.