It's interesting to see today that the issue of Linux versus GNU/Linux is still coming up. And indeed it's still strange to see that some consider Linux not to be an operating system, just a kernel. And after all GNU and the Free Software Foundation are the principal developers of the system.

However, this isn't really about GNU/Linux vs Linux per se. This is more about the Free Software Foundation completely ignoring the many contributions that go into any Linux (or other open source *nix) system. The major desktop environments for these systems are not produced by the Free Software Foundation, nor are many of their principal programming languages, or server software, etc. (and ad nauseum). Because of the many and varied contributions we might as well be calling Linux the Great Gnu Gnome Python Kool Linux Apache thing. Even though a working compiler is necessary in the chain to make software work, making a compiler does not mean that a working computer is magically produced.

Which, is exactly where I take issue with the Free Software Foundation. Calling a system GNU/Linux does just as much disservice to developers as calling the operating system Linux. Freedom means many things to many people, and the stance of the Free Software Foundation spurns the contributions of many in our entire community. So for now I shall call it Linux because calling it the Great Gnu Gnome Python Kool Linux apache thing is a bit of a mouthful. Besides, who could possibly resist Tux?

Comments

An Operating System In Layers

I think everyone can agree that a "operating system distribution" is composed of many layers. Exactly which these layers are, and how many of them makes the operating system propper is another matter though ;). I have identified six distinct general layers which I'm going to use in this post. They are Kernel, System Library, Init System, CLI Shell, Windowing System, and GUI Shell.

Only the first three layers are required for the computer to do something usefull, but to be able to change *what* it should do do (eg. anything non-embedded) you need at least one shell. You could go with only a CLI shell (ie most linux servers) or only a GUI shell (ie MacOS X), or both (ie most linux desktops).

Currently I'm running a Gentoo system. It uses Linux for Kernel, GNU C Library for System Library, OpenRC for init system, GNU Coreutils and Bash for CLI Shell, X.org for Windowing System, and KDE for GUI Shell.

A friend of mine is currently running a MacOS X system. It uses the Darwin kernel, the Darwin libc and the Darwin init system. It has no CLI Shell, and uses Quartz for Windowing System, and Aqua for GUI Shell.

So, what to call them? First, let's take a look at the MacOS X system. Here comes the tough question: is MacOS X an "operating system" or a "distribution" based on the Darwin operating system?

My friend would call MacOS X an operating system without hesitation! That's what Apple calls it, and he has never heard the term "Distribution" to describe it. Nor has he ever heard of that "Darwin" thing. If were to explain that that is what makes his MacOS X computer tick, supporting the Aqua GUI he sees, he might agree that it is a *part* of the MacOS X operating system, but he would never say that it *is* the operating system.

Now let's take a look at my Gentoo system. The equivalent layers to the of the two that differentiate "MacOS X" from mere "Darwin" are X.org and KDE. Neither has anything to do with GNU. So, if you go on my friends line, neither Linux nor GNU/Linux would be an operating system. The operating system would be Gentoo. The fact that Gentoo is powered by Linux, GNU C Library, OpenRC, GNU Coreutils, X.org and KDE under the hood does not make any of those components the operating system, any more than Darwin, Quartz or Aqua is the operating system, MacOS X is.

And what if you don't agree with my friend? What if you think that MacOS X *really* isn't an "operating system" but a "distribution" based on Darwin? Then I would have to ask you to check your callander! Please note the year. Words *do* change meaning over time. Once upon a time the term "operating system" might have meant less than the whole stack, but that is not the case today. As an example, your grandfather might have described his youth as a "gay" time in his life. You wouldn't say the same about your youth, even if you felt exactly the same about it. That's because the word "gay" don't mean the same today as it did back then. (If you don't know your language history, "gay" meant "cheerfull" or "carefree" up until the 1960s)

Now, as there is lots of operating systems, or distributions if you prefer, out there, and not everyone knows everything about all of them, so operating system vendors might want to state some of the more important components they include, so users will know what they get. So then the question becomes what components are important to users.

For desktop use, I would highlight Linux (as that is what you need drivers for) and KDE or GNOME (as that is what you interact with). Anything in between (including everything from the GNU project) is irrelevant to the user, as he will never interact with it. As long as it's capable of supporting and bridging Linux and KDE/GNOME that is enough. If Canonical were to rip out all the GNU components from a future version of Ubuntu and replace them with BSD parts I can guarantee that almost no user would notice, as long as they made sure that the same Linux drivers and GNOME interface still worked just as before...

For a server, GNU is equally irrelevant. While a desktop user does care about the GUI Shell they use daily, the same isn't true about the CLI shell a server operator uses once a month. He might *use* the CLI Shell provided by GNU, but he don't *care* about it. It wouldn't matter if his operating system provider switched it out for another, as long as his hardware, and applications still works. That is why it's called LAMP. Hardware support and applications only.

P.S. I'm not including the compiler in this discussion, because the compiler isn't *part* of the operating system, even though it is essential to *creating* it...

Someone gets it!

Ah, I think the terminology you used wraps up my point more succinctly then how I put it. Which is really that Operating System and Operating System Distribution have become essentially inseparable terms.

I prefer Linux because the term has also morphed and generically refers to any Operating Systems which Linux is coincidentally the kernel for. However, I bet soon it will simply be Opensuse, Redhat or Ubuntu.

I can imagine that the Free Software Foundation would get angry about this because it doesn't confer credit on them. But for the most part, I get the feeling that the Linux developers don't care quite as much about the name. Now, I could be completely wrong about that, and I obviously don't speak for the kernel developers or the Free Software Foundation. But I think for me it comes down to culture, Linux is a meritocracy (of which free and open source software is still an important component), GNU is an ideocracy (not idiotic, community based around ideas).

What is Linux?

Simple:

Linux is a registered trademark of Linus Torvalds ;-)

My 2 cents

The operating system: openSUSE, Debian, Fedora, Mandriva etc.
The platform: GNU/Linux
Linux: Just the kernel

Gnu

It might be worth considering that none of you would have your FLOSS toys to play with, if not for rms and the FSF... I think GNU earned the right to have it's presence known.

You might ask yourself which is more important to you:
1. Having a computer that does what someone set it up to do,
OR
2. Having the freedom to be a FLOSS coder?

If you picked 2, then it's rms, the FSF and the GPL you have to thank.

Just a bit of food for thought.

Important, but not important to the exlcusion of everything else

Now, I'm not saying the GNU should be spurned here. I'm saying that GNU shouldn't be privileged to the exclusion of everything else.

Would we be Open Source programmers without RMS? There may very well have been another person waiting to do exactly what RMS did. But history didn't turn out that way so we won't know. While RMS has made very key contributions to FLOSS I think that even without RMS we would be heading in the same direction.

The GPL is clearly an important contribution to the FLOSS community, but is far from being the only important contribution. If GNU has the right to make their presence known then many other projects do as well.

fantasies

I agree entirely. RMS and the FSF live in some 1980s fantasy of what an 'operating system' means. Or perhaps more generously, they use it in the academic sense (as in the "operating system" Comp Sci class ).

But in reality the modern definition of operating system is much broader. OS X and Windows install a lot more then a kernel. They install a GUI environment and basic utilities. No EU or US court has ever even thought of suing Microsoft for practicing monolopistic practices by "bundling" a GUI with their "operating system." It would be ludiurious; it is part of the OS.

And of course your average Linux distro installs even more then either of them by default.

Than i wonder in what world

Than i wonder in what world Linus Torvalds and the "Linux is a OS" people live? Because if GNU/Linux is not enough to be an operating system than Linux is more than ever no operating system.

First i really have to

First i really have to disagree that it is something like "Free Software Foundation completely ignoring the many contributions that go into any Linux (or other open source *nix) system." If you read their website they don't ingnore it at all!

For me the general question is: What is an operating system? I think there is no unique answer.

In the old days of the first computers the operationg system was probably something like a kernel. The system just have to read the punch card execute what it read and generate a ouput. So basically it was a set of hardware driver for input and output to make the computer work.

With todays computer this isn't enough. With Linux alone you can't even boot your computer. And of course you can't make your computer do some computation for you in the common way of todays computers (programming). So for me it is obvious that Linux can't be an operating system for todays computers. We needs more and this more comes mostly from GNU. So only if we combine GNU and Linux we have a operationg system (a system which allows you to operate your computer). Sure you can also use the BSD kernel with GNU, than you have something like GNU/kBSD almost the same system like GNU/Linux just with another Kernel. And you could probably replace the FreeBSD kernel with Linux than you would have something like FreeBSD/Linux almost the same system like FreeBSD just with another kernel.
And than there are probably some small devices which needs, like the old computers, not that much more like a kernel so that the kernel is probably really the largest and most important part. In this case you could call it just Linux.

But at the end this discussion is about general operating system for general computers and here it is obviouse that you can't operate your computer just with Linux so Linux can't be an oeprating system. But you can operate your computer with an combination of GNU and Linux so GNU/Linux creates a real operationg system.

Everybody who pretend that Linux is a operating system for general computer should put Linux on a USB-Stick (remember, Linux is what you get from here: www.kernel.org) and than hand it out to your friends and say here you have a new and shine operating system. What will happen? They will lought at you because they can't do anything with it, it will not even boot their computers. It is obvious that we need something more. It's like the network protocols we need to operate a network, we need TCP/IP neither TCP nor IP is enough and so we need GNU/Linux to have a real operating system.

It's all about the name

If you read their website they don't ingnore it at all

The name is GNU/Linux is it not? It is supposed to be for credit, and if those in the free software foundation would like credit it should also be given (in the name) to all of the other various contributors as well.

obviouse that you can't operate your computer just with Linux

Indeed you can not. But generally you won't be operating your system without X, or even if you don't have X you'll be a server and thus running a mail transfer agent (MTA), or a webserver, or a file server. If if it's an embedded environment many of the userland tools will likely be replaced by busybox. It's then also likely that many tools on the system will be written in languages like ruby, perl, php, java and python. Generally, all these parts go into making a modern usable operating system.

Every application, even things like Apache and KDE are very important parts of an operating system (as long as we aren't defining things in the strictest sense). If I want to make a webserver, GNU/Linux is worthless to me alone.

Which is exactly why the name bugs me. As it is right now, it's just everyone who makes GNU getting extra credit. But why aren't the kernel devs getting extra credit? Quite simply because Linux is more than just a kernel (just like FreeBSD or Mac OSX) and the name has come to represent the entire software stack on a Linux kernel based machine. Linux does not mean using just the Linux kernel, but also implies using an operating system mostly constructed of a large number of open source software projects. And anyone, from all of those projects, can say that they work on Linux.

Try to build your webserver

Try to build your webserver without GNU tools and tell if you can... now you are thinking in tell me that you would use python, the great dynamic language to build it, no needs to compile anything, but then try to compile python without the GNU tools and then tell me if GNU is really worthless to you.

In the software libre world, credit is usually given to the developers. You start telling your friends that you use GNU/Linux and when they start asking more you tell them that you use KDE on top of GNU/Linux, or that your web server is apache and is running on GNU/Linux and I would bet that projects like apache prefer to be known as "a project that runs on more than just one operating system (GNU/Linux)".

Indeed I can

Try to build your webserver without GNU tools and tell if you can..

Indeed I can if I so choose. FreeBSD is generally not made with GNU tools, nor is Solaris. In the case of both Python and Apache, the can also be compiled with Microsoft's C compiler.

then tell me if GNU is really worthless to you

Of course GNU isn't worthless to me and that's not a claim which I made. However, I do not like how the Free Software Foundation tries to twist the meaning of "Operating System" so that they can tack GNU onto the name to the exclusion of other things.

If we aren't using operating system in a strict sense then applications are just as easily part of the operating system and also deserve credit.

Of course you can choose to

Of course you can choose to use something different to the GNU/Linux operating system, even you can choose to use non-free operating operating systems, but then you are not talking about GNU/Linux any more :-)

"Operating System" has a definition and it's not the FSF who is trying to "twist" its meaning.

Not all the applications are part of the operating system, apache is not an operating system, open office is not an operating system, so calling the operating system GNU/Linux will not take credit from those projects.

Hand an average user a

Hand an average user a "GNU/Linux" usb stick and he will laugh too. The things you can do with GNU+Linux are pretty much limited to text file editing. My use of the computer requires the desktop, so the GNU userland is just one in a lot of parts composing my operating system.

For another category of users Apache is the most important application, so only GNU userland is not enough for those people too.

And those who use java? OpenOffice? Latex? The list may never stop. For almost each application there is a user who needs it.

Saying that GNU+Linux is a complete operating system is as much arbitrary as saying that Linux is one.

So now every application is part of the operating system?

So now every application is part of the operating system?. lol

no... kind of...

Strictly speaking no, not every application is part of the operating system. But strictly speaking the operating system is only the kernel and possibly a set of helper applications in a microkernel context. It just begins getting ridiculous when the bootloader, the init system, the compiler and every program and their dog are also considered part of the operating system.

But at the same time, what is an operating system with no applications on it? Nothing! Operating systems are explicitly for the convenience of applications, if anything the name of the Operating System shouldn't be mentioned at all.

Since I've beat this horse to death already I might as well keep going, I don't like how the Free Software Foundation is using "Operating System" in whichever context they feel is appropriate so that they can get credit to the exclusion of others. If I could call an operating system something I would mention all of the key technologies which play a part in it (especially the applications). But for the sake of time and for the sake of Marketing I decide to call it Linux.

With GNU/Linux you can

With GNU/Linux you can operate your computer so you have a operating system. With Linux you can't operate your computer you can't even boot it so you don't have a operating system.

That people mostly need additional applications is a complete different topic and has nothing to do with the question "what is an operating system?"

Depends on what you mean with

Depends on what you mean with "operate". iazzi is right, without things like a desktop it's useless for most of us. So, Linux is an umbrella for that combination of software where GNU is only *one* of many contributors forming the Linux Operating System.

You can have Linux without

You can have Linux without GNU, so GNU/Linux would be a way to distinguish Linux+glibc+GNU userland from Linux+uclibc+busybox or similar.

Also you can have GNU without Linux, as in GNU/Hurd or GNU/FreeBSD.

"Gnome Python Kool Apache" are not really part of the operating system. They are just additional applications that you install on top.

Linux - GNU = Linux

You can have Linux without GNU, so GNU/Linux would be a way to distinguish Linux+glibc+GNU userland from Linux+uclibc+busybox or similar.

Indeed you can, but why muddy the waters for people who will never know the difference? Many of the GNU tools are not part of the operating system (in the strict sense), however they are still key in making it usable (just like many other open source projects). Even if GNU was entirely replaced I doubt that even many power users would be able to entirely distinguish the difference.

You visited this site in a web browser, it interacted with a webserver. During that time you also likely interacted with a number of DNS servers. Things like Bind and Apache are fundamental to the operation of the tasks for the overwhelming majority of users. It's a great disservice to those projects to have GNU credited above them.

So I think that the name should give credit to all major pieces (how this would be decided I don't know), or should simply be called Linux for the sake of marketing and because Linux does not mean just the Linux kernel.

It depends on the definition of "Operating System"

It depends on what you consider an "operating system". Why a text shell (and it's relative CLI tools) is considered part of the OS and a GUI is not?
There can be GUIs without text shells (look at OSX for example).. in fact a GUI is a "shell" as well. The only fundamental GNU part in a distribution is the glibc, which probably deserves the presence of the"GNU" part in the name.
But anyway, IMO, the real operating system as a whole is the distribution itself, so it's up to the distro-makers to choose the name of the OS.