“GNU", “Linux", or neither...?

Short URL: http://fsmsh.com/2168


I’m sure everyone reading this has heard the debate over whether that top dog free operating system should be called “Linux" or “GNU/Linux", but how big a contribution is GNU or Linux to that operating system? As conventional wisdom has it, it’s the availability of applications that make a system valuable, and this is where free software really shines. Linux contributes only about 6% to the cost value of a full operating system, but then again, GNU contributes only about 15%—who do we have to thank for the remaining 79%?! And why don’t we hear them complaining about what it’s called?

This isn’t really about “GNU/Linux", it’s really about asking “Where does free software come from?" In order to answer that question in any really definitive way, of course, you first have to collect all the relevant free software applications into one giant collection so you can do statistical analysis on them. Wouldn’t it be nice if somebody would do that for us?

Oh, yeah... ;-)

Debian GNU/Linux represents the largest such collection in existence, and with something like 15,000 packages, it comes pretty close to representing the “universe" of free software (or at least, “working" free software, there’s plenty more that isn’t ready for prime time yet, as a quick look at Sourceforge will tell you). Debian will do nicely.

Meanwhile David Wheeler (who you may recall is an occasional contributor to Free Software Magazine), wrote a package called SLOCCount to count “physical source lines of code" (SLOC) in software projects, as well as evaluate them in terms of their “estimated replacement cost if they had to be redeveloped from scratch according to proprietary methods", represented by their “COnstructive COst MOdel" (COCOMO) costs (which was, of course, originally developed to help managers estimate the cost of proprietary software development projects). This model is convenient to use, because it only needs physical source lines of code as an input, and that’s the easiest thing to collect. There are more sophisticated cost models out there (COCOMO II for a start), but they require more sophisticated input, and are therefore harder to use on a large automated estimation project. So COCOMO I it is.[1]

Observing these two wonderful facts, a group of researchers in Spain decided to have a go at Debian with SLOCCount, and published their results. Their interests are in things like what programming languages were used, but the complete data set can be used to answer some other questions, too. Including the question of who writes free software.

The dataset lists SLOC, package size, and COCOMO estimated cost for each package considered. The packages are meant to cover the entire bulk of Debian source packages, but without overly duplicating code (for example, if two closely related branches exist, pick only one of them). This makes sense, because presumeably the code was only developed once, and so copying didn’t cost much (some would say that's the whole point of free software).

So, in the end, they have 8,560 packages listed for Sarge (not the entire set, but fairly close). Less for earlier distributions, of course.

Now where do they come from? One way to estimate affiliation is by looking for dashed package names: for example, it’s probably fair to count, say, mozilla-thunderbird and mozilla-suite as both being products of the Mozilla project. Even if such a package is actually maintained by a third party, it’s still part of the “Mozilla culture" surrounding the Mozilla project. Many large free software projects are like that: a well organized core with a halo of unaffiliated supporters.

For the GNU project, however, there is a simpler way: they have a list. Which is nice, because they have quite a few projects. Fortunately, Debian is pretty conservative with package names, so if they package, say, “gcc", there’s a strong chance the package name will contain the string “gcc", so we can filter. Also, all Debian package names are strictly lowercase (this is policy), so we know exactly what to do to compare. This makes it a snap to cross-reference the GNU package list against the Debian collection.

Combining the two techniques, we can get a good picture of who’s behind all those packages. Here it is:

Comparison of organizations responsible for the creation of the software in Debian GNU/Linux 3.1 “SargeComparison of organizations responsible for the creation of the software in Debian GNU/Linux 3.1 “Sarge", by Physical Source Lines Of Code (SLOC).

This estimate is by total accumulated SLOC, so it doesn’t draw any distinction between lots of small packages and one giant package. This means, for example, that it overestimates the value of GNU versus Linux. Both are underestimated against the field of smaller independent packages. However, SLOC are a nicely objective measure, so it’s good to start with this.

To get a better picture of the division by value, however, we can use the COCOMO estimated replacement cost numbers. These are a kind of lower limit to the value: because presumeably, you would have to spend this much to create these packages in order to use them. If they were developed by a proprietary organization and then sold, they would have to be sold at prices that would raise at least this much (distribution costs and profits would probably at least double these costs).

In any case, here’s what that valuation looks like:

Comparison of organizations responsible for the creation of the software in Debian GNU/Linux 3.1 “SargeComparison of organizations responsible for the creation of the software in Debian GNU/Linux 3.1 “Sarge", by COCOMO estimated proprietary replacement cost.

You may be a little surprised by the total cost figure at the bottom of the chart. Yep. That's in adjusted Year 2000 US dollars, and is equivalent to approximately one half of the cost to develop the first Space Shuttle [2]. That’s a lot of value. Note of course, this is not necessarily what it actually cost to develop: we assume that free software methods are considerably more cost-efficient, and most of the contributions were “in kind" donations of time, so actual cost is much harder to compute.

But this chart is really about the pie slices: GNU, while being the single largest contributor, still only accounts for 15.3%. Meanwhile, Linux isn’t even number two—that honor goes to a set of desktop applications, OpenOffice.org. More to the point, more than half of the applications come from “the field"—thousands of individual applications created by individuals or companies for their own reasons, not backed by any of the high-profile, high-mindshare free software organizations.

I don’t mean to diminish the importance of the flagship organizations in maintaining free software. But it’s the fleet backing them up that makes the system into the powerful force that it is. The fairest term for what we like about “GNU/Linux" is probably neither “GNU" nor “Linux", but rather just the “Free Software Operating System". Free software operating systems are made valuable principally by the contribution of individual developers.


[1] I should probably mention that David originally used SLOCCount to analyze the Red Hat distribution, and while that’s interesting, it’s not as up to date or as comprehensive as the research I refer to here. Maybe I’ll write about that on another day.

[2] I got this information from transcripts from the Columbia Accident Investigation Board, reviewing the program. The cost adjustment is my own, based on government tables for adjusting the cost of large scale projects (not the consumer price index, which is inaccurate for these kinds of figures). The actual cost in 1980 dollars, was actually less than the figure for Sarge, but that’s just because of inflation. This is the cost to the first flight (of Columbia), and does not include program maintenance costs, which, over some 25+ years of flight is obviously much higher. That’s the fairest comparison I can make because it compares development to development in adjusted dollars. Gives you pause, doesn’t it?


Copyright ©2007 Terry Hancock / Creative Commons Attribution-ShareAlike License (http://creativecommons.org/licenses/by-sa/3.0)

Originally published at www.FreeSoftwareMagazine.com.

You must retain this notice if you reprint this article.

Unless otherwise noted, the illustrations in this piece have the same attribution and licensing.



Dave Guard's picture

Well, the reason we don't is because "other" is not integral to the working of the operating system. The two things that make up the "operating system" (as opposed to a "distro") in our favorite case are the kernel (Linux) and the set of tools (GNU) that make it useful.

It doesn't seem appropriate to name an operating system after whatever word processor or web browser you use on it. I mean, these applications are easy to change and changing these parts doesn't affect the functioning of the operating system. However, if you remove the "GNU" or the "Linux" parts or swap either of them out for some other set of tools or a different kernel, then you would have a completely different operating system. So all of those non-essential, non-integral applications (like OOo or Mozilla) should not play a part in the naming.

So then, what remains is whether to name it after the kernel or the set of tools that make the kernel useful. Well, seeing as both parts are necessary to make the operating system work and it's possible to swap either of them out for a different kernel or a different set of tools, then we really should use both parts to name it.

Next, we need to decide whether we should call it GNU/Linux or Linux/GNU. Well, from the info in your blog entry it seems at 15.3% to 6.3% GNU provides a greater part of the total composition so why not put the "GNU" up front. And if you don't like that we could use alphabetic order. Or perhaps we should use the chronological order based on when the projects began.

Well, it looks like no matter what logical ordering system you use, it seems "GNU/Linux", as suggested by RMS, is the most reasonable name for the operating system we base our free software distros on. And this backs FSM's choice for using the term "GNU/Linux" over "Linux" when referring to the operating system as whole, not just the kernel.

Ryan Cartwright's picture

I agree with Dave here. The "other" stuff is not part of an OS mostly because if you decided not to install it the OS still runs (I include X and DMs in this list).

As for the naming, well Linus didn't start developing an OS, he started developing the kernel. The kernel is, as Dave says, but a small part compared to the GNU tools. Sure you could use some other tools (or develop your own)and then I guess you're free to call it /Linux but in the end I think Debian GNU/Linux does it best for the distribution I use.

Terry, please don't take this as anything other than inquisitiveness but I really struggle to see why you (and many others) have a problem with calling it GNU/Linux. Perhaps you could enlighten the rest of us?

Anonymous visitor's picture
Submitted by Anonymous visitor (not verified) on

The reason why it's appropriate to refer to most of these Free Software distros as "Linux" is because the Linux kernel was the crucial missing piece that started the Free Software movement firing on all cylinders. Before that, the GNU project was a lonely voice in the wilderness; there was no KDE, no Gnome, no OpenOffice, just a few projects that were used by geeks but nobody else.

If Richard Stallman wants to claim special credit for GNU as being somehow crucial to the success of Linux, then it works both ways: Linux can also claim special credit for the success of GNU. If it makes sense to change "Linux" to "GNU/Linux", then it makes sense to change "GNU" to "Linux/GNU".

Lawrence D'Oliveiro

Dave Guard's picture

The reason why it's appropriate to refer to most of these Free Software distros as "Linux" is because the Linux kernel was the crucial missing piece that started the Free Software movement firing on all cylinders.

That's no good reason to confuse the kernel with the operating system.

Before that, the GNU project was a lonely voice in the wilderness; there was no KDE, no Gnome, no OpenOffice, just a few projects that were used by geeks but nobody else.

And what would Linux be without GNU? This point is moot. Furthermore, KDE, GNOME, etc., have nothing to do with this. They are add ons to the OS to make it, arguably, more functional.

If Richard Stallman wants to claim special credit for GNU as being somehow crucial to the success of Linux, then it works both ways: Linux can also claim special credit for the success of GNU.

RMS is not trying to get anyone to call Linux the kernel "GNU/Linux". He wants people to call GNU and Linux when used together GNU/Linux. If you want to use Linux on its own, he is more than happy for you to call it Linux. If you want to use Linux with some other set of tools then call it "some other set of tools/Linux" or just call it "Linux" I'm sure he won't care that much. It is together that they have been and are successful. It should be both names that get used to describe them when they are used together.

If it makes sense to change "Linux" to "GNU/Linux", then it makes sense to change "GNU" to "Linux/GNU".

It doesn't make sense only if you think people are trying to name the kernel GNU/Linux, which is not the case. Again, we are talking about the operating system not the kernel. The operating system = the kernel (Linux) + the set of tools that make it useful (GNU). Hence, GNU/Linux.

I'll make a simple analogy for you:

Tables and chairs. These are independent furniture items. It is possible to use them seperately but it is often far more useful to use them together. When you do, you don't collectively call them "chairs" or "a table". You call them "a table and chairs".

You might think RMS is egotistical and/or annoying, but that doesn't mean he isn't right in wanting the GNU project to be recognised. Look at those charts up there in Terry's blog entry. They clearly indicate how much of a major distro is made up by Linux and how much it is made up by the GNU set of tools. GNU is the bigger portion. Why should it not be part of the name for the OS as a whole? It's not like he wants you to rename the kernel. It's not like he wants to call it "RMS". He just wants GNU to get the recognition it deserves.

The operating system is not just Linux. It's GNU + Linux or GNU/Linux. Try using Linux without GNU. Not many people do.

Anonymous visitor's picture
Submitted by Anonymous visitor (not verified) on

Let me make another analogy: the distro is an arch, and the kernel is the keystone. It's not the biggest or most impressive stone in the arch, but without it, the arch is not an arch.

Another point is that Richard Stallman was not a fan of Linux. Look at one crucial piece of software used by most Linux distros: the C run-time library (glibc). For a long time, the GNU folks who looked after this couldn't even be bothered with bug reports or feature requests from the Linux folks--to the point where they eventually forked off their own version in frustration. This fork was not reconciled until about version 2 of glibc.

Look at Stallman's own attempt to write a kernel--Hurd. He's been working on that for getting close to 20 years now, and he still hasn't created a version fit for general use. Whereas look at the functionally that Linux has achieved, starting from nothing, in somewhat less time. If the kernel were such a minor piece of the puzzle, why has it been so hard for the GNU project to come up with one?

To reinforce my point: the GNU project owes at least as much to Linux as Linux does to GNU. If you want one to add the other's name, then it must work both ways.

Lawrence D'Oliveiro

Dave Guard's picture

Let me make another analogy: the distro is an arch, and the kernel is the keystone. It's not the biggest or most impressive stone in the arch, but without it, the arch is not an arch.

Great analogy... but I'll carry it into a functional arch - a bridge...

First of all, you don't call a bridge a keystone! Further you can't walk across a river on a keystone alone. The combination of a keystone and the rest of the bridge is called a "bridge". So, by this logic, the combination of the Linux kernel (equivalent to the keystone) and GNU (equivalent to the rest of the bridge) should be named after GNU (the rest of the OS). But no one is suggesting we ignore the kernel when naming the OS. On the contrary, those who wish to include GNU in the name want it known as "GNU/Linux".

No one is arguing that Linux is not a central and integral part of the OS. However, you can't ignore the rest of the OS which is made up mainly by GNU. The other parts like X, KDE, GNOME, etc., simply correlate, in my extension of your analogy, with the choice of surfacing material - wooden planks, cobble stones, bitumen, etc., and the useful add-ons like handrails, traffic lights, painted white lines, cat-eyes, etc. Without these add-ons, you still have a bridge.

The rest of your "points" have no weight in the argument of what to name the operating system. How much time RMS has spent on writing Hurd or what he likes and doesn't like is irrelevant. As is whether you like him or agree with his philosophies. Whether GNU owes Linux or vice-versa is also irrelevant and it seems these "points" are only raised to muddy the waters and add confusion to the very simple and straight forward argument.

You also continue to give the impression that you think we (I include myself in this group) want to call the Linux kernel GNU/Linux, which is not the case. We are trying to give the correct name to the operating system which is made up of GNU and Linux. I'll say it again: we do not want to change the name of the kernel.

guydjohnston's picture

I completely agree with Dave's response. Also, the goal of the GNU project is to develop a complete operating system which is free (as in freedom) software. This involves writing some software from scratch, and including some other free software written by other people. The reason the development of the GNU kernel, Hurd, has been so slow is that there's no real reason to develop it. The creation of Linux meant that the Hurd kernel isn't necessary, as Linux is a free software kernel which fits the requirements of the GNU project and can be used instead. At the moment, the main priorities of the GNU project and the free software movement are developing free software for jobs where none exists yet, for example a programme to play the latest Flash videos, and drivers to allow 3D acceleration for a lot of graphics cards. If all of those needs are satisfied in the future, and there's decent free software which can perform all the tasks that proprietary software can, the Hurd kernel will probably become a higher priority, and more work will go into making it better technically.

Also, the Hurd kernel isn't "Stallman's own attempt to write a kernel". As far as I know, Stallman has never worked on it. If he has, he's definitely not the only person who has. The GNU project and the Free Software Foundation aren't just made up of one person.

GNU - free as in freedom

Anonymous visitor's picture
Submitted by Anonymous visitor (not verified) on

I agree with Dave Guard. Gnu and Linux are the essential parts of "Linux"; they need each other and everything else depends on them.

But it's irrelevant, I think, because I believe the commonly used name, "Linux" has stuck and no single group is in the position to rename it. For that matter, "Free Software" is referred to as Open Source, even if that's a less accurate description.

Part of the cost of having a larger following is the loss of control over things like this. Gnu/Linux has been given the nic-name, "Linux". I don't think it exalts the kernel over everything else, I just think it's a convenient label slapped on by users who don't even know what an operating system is, much less a kernel. Just like "Kleenex" for paper tissue, or "Javex" for bleach, or "Xerox" for photocopy, etc...

Anonymous visitor's picture
Submitted by Anonymous visitor (not verified) on

I'm kind of curious about how projects like Debian GNU/NetBSD and Nexenta Operating System instances relates to "Linux". Are they instances of Linux? If they are, is any Free Unix a Linux?

Terry Hancock's picture


BSD Unix was a circa-1977 distribution of Unix (the "Berkeley Software Distribution") which was under a non-copyleft free license known as the "BSD license". The lack of copyleft is unsurprising, because the concept of copyleft was not invented until about 7 years later with the creation of the GPL in 1984, by Richard Stallman and the GNU project.

Linux has no direct lineage to Unix (this BTW, is what makes developers giggle at the SCO "case" against IBM), but is instead an independent implementation of the "POSIX" standard that was itself based on the de facto standard of Unix. (That is, "POSIX" is a standard, "Unix" is a particular implementation of it -- but POSIX was created after Unix. In fact, it was created as a response to fragmentation of Unix due to commercial forks).

HURD, by the way, is another independent implementation. Minix is an incomplete implementation of POSIX (IIRC), which exists primarily as an educational tool.

The modern FreeBSD and NetBSD distributions, by contrast, are Unix distributions that derive ultimately from the original 1977 BSD.

Kevin Dean's picture

The BSD projects are a tighter collection of software, in general, than "Linux Distros". Those projects include a kernel, basic utilities, and "higher" level programs.

"Linux distros", on the other hand, are assembled from pieces created in multiple places.

FreeBSD doesn't use a lot of the GNU tools, but it does use some. Projects like the Debian/kFreeBSD project attempt to use these GNU tools combined with a FreeBSD kernel.

Nexenta is the same basic concept, except that rather than a FreeBSD kernel, it is built around the OpenSolaris kernel, and builds it up using Ubuntu sources.

The systems feel a lot like "Linux" which is why I've dropped the Linux entirely and begun saying I use GNU. GNU/Linux, GNU/kFreeBSD and GNU/OpenSolaris all feel pretty much the same.

Terry Hancock's picture

I should've known everyone would gravitate to the GNU/Linux debate instead of realizing it was just a segue to the more important issue.

Ah well, into the fray... ;-)

Actually, I personally don't feel strongly about the terms "GNU/Linux" versus "Linux". Either is entirely sensible, because both are equally nonsensical. What I have a problem with are self-appointed prescriptive grammarians who have decided that society has chosen wrongly to use the abbreviated term "Linux" and insist on trying to "correct" society (Society, BTW, is not confused -- it calls the operating system "Linux" and the Linux kernel, well, the "Linux Kernel", shockingly enough. So far this has resulted in little actual confusion).

You see I have this thing against people who want to tell other people how to act and talk, the way the FSF likes to do with all their GNU-speak "recommendations". I call my radical idea "Supporting Freedom"!

I'm not criticizing anyone for using the expression "GNU/Linux".* There's nothing wrong with it in principal, other than being a little harder to say and therefore an unnatural choice for casual speech. I am making fun of the pomposity of thinking that using it somehow makes you superior to other people. ;-P

GNU can only claim priority by being "central", not by being the "bulk". But of course, it isn't most central -- Linux is. Therefore by the "central" or "critical" argument, "Linux" (or "Linux/GNU") is as sensible as "GNU/Linux" and it is far easier to pronounce and remember. Moreover, people already use it. But of course, the FSF argument isn't based on "centrality" but on the theory that GNU represented more work than Linux (or specifically that it represents more programs -- though that's a transparently ineffective argument since a kernel is obviously harder to write than any shell or command line utility).

What's more, the GNU packages that are actually needed to run a Linux system are much fewer/smaller than the total I've accumulated under the heading "GNU" in the pie charts above. Much of GNU today is, just like most of Debian**, "application" software that isn't "necessary" for an operating system.

In fact, I was able just now to look this up: in Debian, these critical GNU packages are included in a single package, called "coreutils", which accounts for a whopping 110,916 SLOC. The Linux kernel is now 4.04 MILLION SLOC (both from Debian "Sarge"). So for this 2.7% of contributed SLOC (and even smaller amount of effort, because these are orthogonal packages, not one complex system), GNU wants priority?!

(I only just discovered this, or I would surely have mentioned it).

OR, they do want to be credited for all that other "non-essential" stuff (but somehow NOT count independent developers because their stuff isn't "essential"). Uh-huh. Pull the other one.

In fact, since membership in the GNU packages list is mainly just a matter of assigning copyright to FSF, it's more like a portfolio of acquired properties than an actual software project. In that sense, GNU is very like Debian -- an aggregator of software rather than a creator. That would suggest that comparing GNU as a collective project to other projects is unfair, since Linux, X, Mozilla, OpenOffice.org and so on are actually driven by single purposes: they can actually claim to be the reason that software gets written, not just a convenient place to store it.

Most end-users could care less about having massive packages like gcc or emacs, which are primarily of interest to developers (and even many developers don't use emacs -- I'm a vim user myself, for example).

And most would consider merely "GNU" + "Linux" utterly useless. If you're one of those people with commandline-phobia, then this means you. My Mom couldn't do a thing with it, for example. As far as she is concerned, X, KDE, and Mozilla are just as essential as parts of the operating system as anything in GNU. And of course, this is the standard we get if we look to "Windows" as the prototype of a "desktop operating system" (and like it or not, the world does see it this way).

From such a PoV, it may be reasonable to reject much of Debian, but not to reduce the system to just GNU and Linux. The result might be dubbed "Linux/GNU/X/KDE/Mozilla" in "onion-skin" order. Or we could use the attractive acronym LGXKM (feel free to rearrange that to improve pronounceability). Or not! Nevertheless, it is generally safe to assume that desktop users mean to include all of these programs (and/or alternatives such as Gnome or Konqueror) when they say either "Linux" or "GNU/Linux".

Clearly, it is ambiguous and inaccurate to call this system "GNU/Linux" just as much as it is to call it "Linux".

At the end of the day, there is ONE reason to say "GNU/Linux", and that's that GNU was around before Linux and created the GPL, which presumeably is the reason for Linux's success. OTOH, the X Window System is just as old as GNU (had to look this up -- they started in the same year, 1984). Without Linux (and to some degree, X), GNU would just be a little upstart tinkerer project (HURD would probably be even slower in coming than it has been!) instead of the big success that it is.

From the user's perspective, of course, a more meaningful expression would probably be "Linux/X" or "Linux/KDE" (or "Linux/Gnome"), since these are the programs that provide the most important definition or personality of the O/S they use (most wouldn't even notice if you substituted BusyBox for GNU, for example). Calling what I use "GNU/Linux" is not unlike calling Windows "MS-DOS", in fact! Note that in these situations, Linux developers have not refused to talk to people just because they opted to call the combination "Gnome" or "KDE" instead of using slash-abominations.

People are taking this issue way too seriously.

The important thing is not what we call it. It's what it IS. And what it IS is the result of the contribution of thousands of developers worldwide, working together to make a better free software system. That was the part that actually interested me enough to write this piece (had I actually wanted to attack the "GNU/Linux" position, this comment would've been the blog entry ;-) ).

The together part is important. So is the free part. So, let's get together and respect each others' freedoms.

Anyway, thanks for playing, it's been fun, but I think I'm going to go do something productive now. :-D

*In fact, I clearly said that both "Linux" and "GNU/Linux" were inaccurate, so how is it I am only criticized for not supporting "GNU/Linux" and not for not supporting "Linux"? I think you doth protest too much. ;-)

**You may notice that when referring to a specific distribution, most people commit the heinous crime of mentioning neither GNU nor Linux, but merely the name of the distribution, such as "Debian" or "Red Hat". Somehow, this is not regarded as offensive, even though it means that these mere packagers (clearly a lower form of life than the almighty developers) are taking credit for all that work that they didn't do.

Anonymous visitor's picture
Submitted by Anonymous visitor (not verified) on

Your surname is "Hancock" and I'm sure you would argue with anyone who wanted to call you just "Han" or just "Cock" because both parts are necessary to make up your surname. I wouldn't find it pompous of you to expect other people to use your correct surname.

Anonymous visitor's picture
Submitted by Anonymous visitor (not verified) on

Linux is not known as Lin or ux, so the argument about Han vs cock instead of Hancock is entirely irrelevant.

Anonymous visitor's picture
Submitted by Anonymous visitor (not verified) on

The kernel is known as Linux. But the OS which uses GNU and Linux is also known as Linux when it should be known as GNU/Linux.

Saying "Linux" when you are talking about GNU/Linux is like saying "Cock" when you are talking about the author of this blog entry.

Anonymous visitor's picture
Submitted by Anonymous visitor (not verified) on

you don' have to be correct you can be as wrng as you like.

you can also write dry, verbose and uselss blog entries that tak about how GNU/Linux isnt named properly and instead doing something useful you only suggest a name that is more vague and non-specific like "the free operating system", which could get confused with the multitude of other free software operating systems out there.

Just bcause others wantto be right when they name it doesnt mean they are pompous.

Terry Hancock's picture

I must fairly concede that glibc should be added to the coreutils. That's a pretty big package -- about 980 K, which brings the total for "core GNU" to about 1.1 million SLOC. Still smaller, but now about 20%, not 2.7%.

So, it's probably a good thing I didn't mention this in my blog entry after all.

What else is "integral" "Core GNU" stuff?

Anonymous visitor's picture
Submitted by Anonymous visitor (not verified) on

Your article and the analysis conflates the operating system (GNU/Linux) with operating system + appplications (Distribution e.g Debian GNU/Linux).
Hilarity ensues.

Terry Hancock's picture

The problem with this objection is that most of GNU is also "non-essential" or "application" software.

If you strip all that away, you're left with the "core utilities", and as I have already posted, those are about 111 thousand SLOC, compared to 5.05 million SLOC for Linux. That is 2.7% by SLOC. Or evaluated in terms of effort (because it's easier to write lots of small programs than one large one) about 0.5%.

That's right: the actual essential part of GNU that is used to justify giving it priority over Linux in naming the operating system is a mere 1/200th of the work.

And that doesn't even take into account the intrinsic increase in difficulty because of reliability requirements, long runtime, or non-deterministic problems due to hardware interfacing. Writing a kernel is a far harder task. Which is the reason why GNU itself never got HURD off the ground. The innovation behind Linux was the "bazaar" development approach, which led to much faster development.

OR, we can be liberal and include all of GNU: but then we should be fair and include everybody else's "non-essential" "application" software as well. You can't have your cake and eat it too -- and either way, GNU is just icing.

The liberal approach (which amounts to what I described in my blog entry), is actually far more favorable to GNU (15% is much thicker icing than 0.5%!). So if you prefer "GNU/Linux", you really ought to be thanking me for not applying your definition of what is counted as "operating system". Because your version is much more hostile to the GNU claim!

The truth is, of course, that "operating system" does not have a rigid definition, so it's quite difficult to draw a sharp line around it, and usage varies quite a lot. When most people talk about doing things on "Linux" or "GNU/Linux", they really are talking about a much larger collection of software than just "GNU"+"Linux". Admittedly, it may not be the entire Debian distribution, but GNU+Linux still doesn't come close.

Anonymous visitor's picture
Submitted by Anonymous visitor (not verified) on

You don't understand. GNU isn't some tools that make it useful. It's the Compiler and the critical toolset required to prep and run the operating system. It's not just some apps like KDE or OpenOffice. You can't replace the GNU toolset. You'd find it easier to replace the kernel!

Therefore Distributions should call there system a GNU/Linux one.

There is more GNU software in your distro than Linux software. Just give these guys the credit they deserve. They don't want your money they just want a thank you for their efforts.

Anonymous visitor's picture
Submitted by Anonymous visitor (not verified) on

It's rather easy to replace GNU, actually.

coreutils => busybox
glibc => uClibc
gcc => tcc
bash => oksh, dash

Those are probably GNU's three most important projects. I'm sure there are replacements for others. Sure, they might be suboptimal choices... but then, isn't Linux a suboptimal Hurd replacement?

In the end, Linux is a catchier name. It's easier to "sell" Linux than GNU/Linux. The average computer user would rather do something with his or her computer than discuss philosophy - not that I don't like philosophy, mind you, but when we try to convince people to sacrifice functionality for freedom, we end up losing them to MSFT.

guydjohnston's picture

When I first started using the operating system, I called it "Linux", as that was the only name I heard of for it, and I hadn't heard any arguments for calling it anything else. However, after reading the various different arguments for different names, I've decided that the most appropriate name for the system is 'GNU/Linux', or maybe that name plus mentions of other less important contributions, such as 'GNU/Linux/X' or 'GNU/Linux/X/KDE', depending on how long a name you're prepared to write, and which parts you're actually using. After reading the arguments on the GNU project website (such as at http://www.gnu.org/gnu/gnu-linux-faq.html), I definitely agree that the contribution of the GNU project to the system is the most important one. I think the main reason for that is that it's the only one of the contributing projects (as far as I know) which has the goal of creating an entire operating system. Therefore, without it, we would just have a collection of useful free (as in freedom) programmes, rather than a complete free operating system, and GNU is the "framework on which the system was made". That means that it's not surprising that the GNU project makes up the largest single contribution in terms of size, which I think is another reason why it's the most important one. As I think it's the most important contribution, I think it makes sense to include it in the name of the system, and to mention it first.

This debate is made harder by the fact that it's not completely clear what is needed to make an operating system, and what isn't. I seem to remember that this has even been questioned for a proprietary operating system, as it's not necessarily clear whether or not Internet Explorer is an integral part of Windows, which I think was questioned in the anti-trust legal case with Netscape. However, I would definitely say that desktop applications such as OpenOffice.org and Firefox aren't part of the operating system, and are just useful applications to use on top of it.

Whatever name you choose to call it, I don't think it matters a huge amount. It's helpful that people know how important the role of the ideals of software freedom were in creating their operating system, but whatever name people call it, it still gives us the same freedom, which is the most important thing. I often express my opinion to people that I think that a more appropriate name for it than 'Linux' is 'GNU/Linux', and I suggest that they call it that too, showing them evidence to back up my argument. But if people read all the arguments and still want to call it 'Linux', that doesn't bother me. I can see why people get annoyed when some people in the free software community seem to be constantly trying to aggressively "correct" them, to get them to use a name which they present as the only correct one.

On another note, a problem I've noticed with the pie chart is that GNOME has its own section, when actually it's part of the GNU project (see http://www.gnome.org/about/), though that doesn't make a big difference as it's quite a small contribution.

GNU - free as in freedom

Anonymous visitor's picture
Submitted by Anonymous visitor (not verified) on

It always amazes me that:

1. Someone could write such a post and not think that this would not be flame bait.

2. That so many electrons are squandered debating it.

People need to understand that the only people that care about this subject are those that love RMS and those how hate RMS. Everyone else could care less and would rather do something productive with their favorite Linux distro.....

Anonymous visitor's picture
Submitted by Anonymous visitor (not verified) on

I believe the definition of the term 'Operating System' is the key to understanding the issue of the term 'GNU/Linux'. I was taught that an OS's purpose was to provide the basic platform for other software. I was taught that an OS should have the following functions:

  1. Manage and maintain hardware resources and the interfaces to the hardware
  2. Manage and maintain the processing of software applications (multitasking and memory management) as well as managing the communication between the software applications.
  3. Provide a rudimentary "generic computing platform" for software applications to build upon and work with

These functions are important for an OS because without all these functions:

  1. each program would be required to provide their own hardware manipulation routines
  2. only one program would be able to operate at a time (this is a general statement and there are exceptions)
  3. it would be really annoying to developers if each software application had to provide its own rudimentary general purpose functions (such as PRINT STATEMENT, OPEN FILE, QUICK SORT LIST).

Linux is a (POSIX compliant) operating system kernel that manages the end user applications. Together with hardware drivers, Linux also manages and maintains access to the hardware resources. GNU is an almost complete operating system - it is lacking a usable operating system kernel. The GNU libs together with a select number of GNU programs provide the generic computing platform that is required for end user software applications. I consider the rest of GNU to be end user software and not part of the definition of 'operating system'.

I consider software such as Open Office, KDE, Firefox, ls, top, less and tar to be end user software and not part of the operating system. I don't consider the X windowing system to be a part of the operating system. X is necessary as part of a usable computer system but I don't believe it is the same level as 'the operating system'. I believe that X is the next platform layer above the operating system if you disregard the video drivers (the drivers are part of the operating system).

Linux + drivers by itself does nothing particularly useful because end user programs aren't able to operate very well. The current GNU operating system implementation is not yet adequate enough to operate as a usable OS platform. GNU and Linux together provides the user with a OS; everything else can be considered as platforms that reside above the OS or end user software. Since Linux is vital part of the GNU/Linux operating system, it deserves a mention. Since GNU existed before Linux, I believe that it should be named first. This is why I prefer not to use "Linux" to refer to the GNU/Linux operating system platform.

Terry Hancock's picture

There is one good point here, which is that I have neglected glibc -- I suspect that's a separate package. So it needs to be counted.

[...doing some grepping on the data set...]

Yeah, that's a much larger package -- about 980 K SLOC. So that makes the "GNU core" vs "Linux" balance a lot closer (about 20% of the size of Linux).

I've already commented about the other half of that, which is that quite a lot of GNU would also be ruled out if you rule out "applications" or anything else that's not "integral" to running programs.

Fair point, though.

However, regarding the "next platform layer" talk -- well basically the whole thing is an onion with many layers. That's part of the whole design concept for Unix and Unix-like systems. But where do you draw the line? There's no standard for that.

And it is important to realize that we aren't discuss the computer science jargon usage of the term "operating system" -- we're using "operating system" to define that vague locus of software that some people call "Linux" and some people call "GNU/Linux". Do you really think that in popular culture people are making the distinction you make above (and for example, rule out the GUI layer?). I personally doubt that.

Some people have objected that I'm talking about "distributions" -- but honestly, that's what a lot of people mean when they say "Linux". Is it really that much more accurate to insist upon "GNU/Linux" when describing a distribution?

Or to put it another way, if people are "wrong" for conflating the name "Linux" with an operating system, aren't people equally wrong to conflate "GNU/Linux" with a distribution?

Yet, the full name of Debian is "Debian GNU/Linux" -- somehow it's okay that that doesn't include the whole set of software that Debian represents. Somehow we are demanded to list the two most important pieces of software, and not the one most important piece (but why not three?). I'm saying that a lot of people are getting very hostile about this issue, and it isn't really worthy of that kind of attitude.

Anonymous visitor's picture
Submitted by Anonymous visitor (not verified) on

I think it's already too late, the "general" population already know Linux, if you add GNU to it, it'll just be confusing. Sure they'll ask questions like, what's GNU? but who really wants to spend their time explaining the difference between a kernel and an OS.

I'm 100% for calling it GNU/Linux, but if the GNU camp and the Linux camp don't start playing together, then there will be no point in calling it anything.

my 2 cents.

Anonymous visitor's picture
Submitted by Anonymous visitor (not verified) on

Ginux sounds like a good name to me for the OS. Simply, it is easy to spell, easy to pronounce, easy to remember, credits both Linus and GNU.

Anonymous visitor's picture
Submitted by Anonymous visitor (not verified) on

Well, I am a newcomer to Linux and am still not in the flame-wars concerning the nomenclature of the OS as yet. Anyway from the stuff I've heard from the die-hard fanatics of GNU/Linux and Linux, I must say they are cribbing over such a mundane issue. Or maybe their life does revolve around such issues. If you'd ask me I prefer the name Linux to GNU/Linux because it's cumbersome to actually utter it every time someone asks you that. May I suggest something like 'Glinux' instead ? [that'll take care of GNU and Linux and it'd be a hell lot easier to pronounce it effortlessly]!

Anonymous visitor's picture
Submitted by Anonymous visitor (not verified) on

In my understanding any project and every package licensed under the gpl are all GNU as it were. I do see a whole lot more gpl software than any other in the area of "Unix like systems". Clearly the kernel is one of those. Why is this case not closed? Why does it still rage? Are people afraid of freedom?

Call me a Stallmanite. I do not care. You know I am right. The software ideas pushed foreward by the FSF are the foundation of many open source projects that would not even exist if it were not for this most simple, most important, most forgotten, fact. Further more most of those licenses are watered down versions of the GPL. As for people not caring what the system is called I say that if you do not know the history of something then you do not know what it is.


Anonymous visitor's picture
Submitted by Anonymous visitor (not verified) on

The naming of things is an interesting topic. People who are more removed from the process will find names that are more functional and less correct. One might simplify this current argument as people who are more knowledgeable naming it GNU/Linux, and people less knowledgeable calling it Linux. Could this be because the less knowledgeable are not using the GNU compiler and GNU tools on a day-to-day basis? As GNU/Linux gets more and more popular, I think we will be surprised by the name(s) it ultimately called who are even less knowledgeable. The most popular name may be "Internet", "Word Processor", or "Communicator", matching more closely with Terry's pie charts percentages. People will develop a familiar name adopting the concept into their lexicon. When the it is finally renamed based on purpose, will this argument of GNU/Linux vs. Linux naming even be footnoted in history?

Anonymous visitor's picture
Submitted by Anonymous visitor (not verified) on

Let me clue you in.

It is called "OPEN SOFTWARE"!

Now, don't you feel better.

Live it, use it, be happy.

Please, PLEASE, stop with the long; hard to pronounce distribution names!

One word; that paints a nice positive image, that's easy to spell (memorable) and we're good to go.

Now, if we can only get Kubuntu named something less silly than Koo-boon-too.

http://www.kubuntu.com and never feel like you have the wrong distribution.

Anonymous visitor's picture
Submitted by Anonymous visitor (not verified) on

I want freedom for my operating system. No just features. Microsoft Windows already has features. Freedom works!

Anonymous visitor's picture
Submitted by Anonymous visitor (not verified) on

Call it whatever you want, I don't care, why are even talking about this? Is it because there's someone out there not getting enough credit? I'm using Ubuntu (GNU/Linux, Linux/GNU, Free OS, whatever) and loving it, and I think this topic is really unnecessary. The more I come across article like this, the more I feel like GNU is a sore loser, which is bad coz it's not a loser at all but acting like one.

Anonymous visitor's picture
Submitted by Anonymous visitor (not verified) on

Both your examples look at incorrect parameters to determine whether a typical, complete distribution should be called GNU/Linux or Linux or something else.

If you want to decide this, you MUST look at the LICENSE under which said software in a typical distribution is distributed. A typical distribution being a 100% unencumbered distribution like Fedora, Mandriva Free or the like.

I'm sure, if you did that, you'd come up with an outstanding majority of software will come up as GNU GPL.

There is no doubt in my mind that any distribution should be called the GNU-OS. Regardless of which kernel it uses.

Anonymous visitor's picture
Submitted by Anonymous visitor (not verified) on

The GNU General Public License is used for a huge number of software projects; but only a small number of those are actually "GNU Project" packages.

For example, Linux (the kernel, of course) is licensed under the GPL; but no-one thinks for a second that it is a GNU Project program.

It's not completely clear to me what *actually* consitiutes a "GNU Project" package, there's a directory published from their website http://directory.fsf.org/GNU/ that is probably the complete set.

Anonymous visitor's picture
Submitted by Anonymous visitor (not verified) on

Even if anyone were to go by your suggestion, since the single largest copyright holder is the FSF, it should undoubtedly be called the GNU-OS.

AFAIK, "Linux" is the only OS insistent on being named after it's kernel. All other OS's are named by the largest stake-holder in the software.

Going by that, the name "GNU-OS" seems a perfectly sane choice to me.