I'm going to push some buttons with this post, and as such, I'm sure I'm going to get a lot of comments and people coming out of the woodwork telling me I'm wrong, my arguments are weak, or I just plain don't have a clue what I'm talking about. Whatever the case, this has been something that's been on my mind for a while, so I'm blogging about it.
The controversy, for those who are unaware, is that Free Software Elitists are pushing that Linux should be called "GNU/Linux" due to the fact that the Linux kernel and GNU tools make up the whole of the operating system, not just the kernel itself. While not necessarily true, there's also a hole in that argument that I'm going to exploit. But first, a little history.
In 1983, Richard Stallman announced plans for an operating system he was calling GNU- a recursive acronym for "GNU is Not UNIX". The idea behind GNU was to build an operating system of entirely Free Software, make it UNIX-like, but contain none of the UNIX code. This meant most of the software had to be written from scratch, thus work on the operating system began.
Several years later, many GNU tools were built, including bash, emacs, screen, Gimp, GNOME, and many others. All licensed under the GPL. The only thing that was really missing from this wonderful operating system was the kernel. Well, the HURD kernel was in fact being developed, but progress was too slow, and it was not stable enough to run these tools. So, here we sit. A GNU operating system without a functional kernel. In other words, no operating system.
Then, in 1991, the gap was filled with the Linux monolithic kernel. While radically different from the GNU kernel in design, it also was mimicking a UNIX-like philosophy and implementation. The creation of Linus Torvalds as a hobby project while in college, it took off. Within 3 years, it reached a stable 1.0 release, and had already seen the merging of these GNU tools and the Linux kernel creating this much anticipated operating system. Forwarding us to today, we see the GNU tools and the Linux kernel happily married into one operating system, and receiving much success both in the corporate and home market.
Due to the large success of the Linux kernel, as I mentioned prior, Free Software Elitists have been telling people to call it "GNU/Linux" rather than just "Linux", due to the fact that the GNU tools are every much a part of the operating system as the kernel is. The problem I have with this argument, is the GNU tools only make up for about 300 packages on my system. Last I checked, I have over 15,000 packages available to me. Are all 15,000 packages GNU tools? Hardly. Let's take a look at which ones are, and then which ones aren't.
First, here is the list of official GNU software. These are the tools that were built to make this Free operating system. Here are the packages that are available to me running Debian Sid on my laptop. That list is of considerable size larger. Is it fair to say that the majority of software available to me is NOT GNU software? The GNU tools are in that list, however, they only make up for 2% of the total packages. So surely, there has to be another reason why Free Software Elitists want me to call it "GNU/Linux".
Well, the argument could be taken that once you license your software under the GPL, it becomes, unofficially, a GNU tool. I don't have any statistics, but certainly, much more than 2% of the Debian Sid packages available to me are licensed under the GPL. However, I would imagine that a large portion of those packages are licensed differently, such as BSD, MIT, Apache, CDDL, and more. At any case, even if the GPL software packages were the majority in the list, should I still call my operating system "GNU/Linux"? No. With the simple reason that I am running X.org to power most of these tools, and X.org is not licensed under the GPL. My Linux experience would be quite different if it weren't for X.org, and I'm sure many of use would agree. If it were not for X.org powering all these graphical front end tools, Linux would not be where it is today. So, that means I must call my system the "X/GNU/Linux" operating system. There are also a number of tools that I rely on, such as hardware drivers, that are not GPL. Following this argument, we can see very quickly that my Linux name is going to get very long. Continuing with a play on names, we're seeing GNU software on Macs, Windows and UNIX. Does this mean that it's GNU/Windows, GNU/Macintosh and GNU/UNIX? Heh. GNU/UNIX. There's an oxymoron.
Frankly, I think this is just silly. Linux is the heart and soul of any Linux distribution. If it weren't for the Linux kernel, there would be no GNU operating system, as the HURD is just vaporware (if it hasn't been stable in nearly 20 years of development, it's vaporware). So there exists no GNU operating system as we know it, and yet, Richard Stallman tells us that if we value our freedom, we won't be using Linux.
The fact that Torvalds says “open source” instead of “free software” shows where he is coming from. I wrote the GNU GPL to defend freedom for all users of all versions of a program…. Torvalds says he rejects this goal; that’s probably why he doesn’t appreciate GPL version 3. I respect his right to express his views, even though I think they are foolish. However, if you don’t want to lose your freedom, you had better not follow him. --Richard Stallman
Please tell me, Mr. Stallman, who should we follow? You? I don't see any other viable solutions on the table that your offering, other than politics and philosophy.
Now, with all this said, I am certainly not arguing that GNU contributers don't deserve the respect they do, because they have been fundamental with building the Linux operating system. Their contribution has been fundamental. One could simply flip the argument and call the operating system GNU rather than Linux. I'm okay with that argument. However, Linux just rolls off the tongue better, and requires less when telling people why it's named what it is rather than GNU.
Would there be Free Software tools without GNU? Maybe. Maybe not. We know there would be no GNU operating system without the Linux kernel, that's for sure. So, I stand behind the Linux name and it's arguments. It's very apparent that every other Linux distribution does the same, minus Debian. It seems to be the naming standard amongst the world, so fighting it seems futile and catty. My point is, when it walks like a duck, talks like a duck, looks like a duck, and people are calling it a duck, then it must be "a duck".