On the names of operating systems…
Jon wrote “For Me, It’s Linux, Not GNU/Linux” today. I notice that every so often, this issue crops up again in some circles. Many people feel that saying “GNU/Linux” is confusing and shouldn’t be said at all… and, I would even agree with them—but not in the usual “let’s just call it Linux” way. See, Ubuntu is a GNU/Linux distribution. It is an operating system that brings together the Linux kernel and the GNU userland. Ubuntu is also a Debian derived from Debian; it incorporates the Debian utilities for package management, installing, and far more other things (both Debian-specific, and not). So, that identifier of GNU/Linux is more that of the underlying strategy to assemble the system than it is an identifier of the system itself. Slackware is a GNU/Linux variant just as much as Ubuntu is—but they’re quite different from each other. One is “Slackware” and the other is “Ubuntu,” and the same can be said of Gentoo, Fedora, or
When we explain a system to its users, we ought to talk about the operating system as what it is named; we need to not bore them with the technical details of the system. They don’t care if it’s GNU’s operating system utilities being used with the Linux operating system kernel, or if it’s the Microsoft Win32 API running on top of the Microsoft Windows kernel. It could be a hamster in a ball running around, and as long as it worked for them, they truly wouldn’t care, because they do not often want to know the details of how their computer works—they just want to know that it works, and they want to use it for whatever reason it is they have a computer in the first place.
There is more of a reason than just the Free Software Foundation’s desire to be accredited for their hard work in creating GCC, the GNU coreutils, the GNU C Library, etc. to call a GNU/Linux system a GNU/Linux system, and not just a Linux one. For one, if we’re talking about a Linux-based system that is running GNU, we should say that—because there are many possible configurations, both involving and not involving GNU software. For example, embedded systems rarely carry the entire weight of GNU with them—often, something like Busybox is used in such systems, along with a non-GNU C library. Certainly, if someone wanted to take the Linux kernel and make it a part of a proprietary system, they could do so—all they’d need to do is write (or port) their compiler and libraries to the Linux kernel, and they could create a system that is (like GNU/Linux) Linux-based, but (unlike GNU/Linux) not based on any work from GNU. Microsoft could do such a thing, if they wanted. They would then only be compelled to release their operating system kernel’s modifications, and not any of the other code. Then, we’d have the Microsoft/Linux variant to talk about. (Which, I think, would be very interesting—Microsoft could easily put PE support in the Linux kernel, and then port their APIs and various other things over, including the windowing system, and they’d gain an awful lot out of the deal, too.)
Stepping away from theory a little bit more, there are already GNU systems that are in varying degrees of operation on other operating systems. There is the GNU/kFreeBSD Project, for example. The importance of the “GNU/” identifier is heightened there, because FreeBSD does include its own native utilities, and “FreeBSD” is the name of the kernel and the associated userland utilities that live in /bin and so forth. FreeBSD has its own C library, too.
That having been said, the only operating system that would not need the “GNU/” prefix on it is probably the Hurd. Why? Because the GNU operating system userland is, in fact, native to the Hurd, which is also part of the GNU project. Linux may be thought of that way in many people’s eyes today, but it’s really not—the Linux operating system kernel was developed independently of the GNU software base, and the GNU software base was started long before the Linux operating system kernel was even thought of. The fact that they work together as well as they do is more of a force of inertia than anything else, because GNU didn’t have Linux in mind as the system they’d be running on when they had started it.
My reasoning for using the “GNU/” prefix when talking about GNU/Linux systems is more out of my desire to actually identify the system I am talking about. 99% of the time, I’m not talking to end-users about GNU/Linux anyway—I’m telling them about Ubuntu, which just happens to be a Debian variant, which itself happens to be a GNU/Linux variant. The details are best left to people that want them, and they should probably be stated correctly and unambiguously when they’re stated at all.
Just my 2¢ on the issue.