137

While I knew for quite some time the existence of Hurd, and its mission as the official GNU Operating System kernel, I was wondering how come Linux is not embraced as the official GNU kernel over the years, seeing as it is in a much better state than the Hurd?

Linux has been, more or less, serving this role 20+ years so far, however one can see that the GNU Project is keeping its distance when it comes to Linux. Why is this happening? Is it because of a dream that Hurd will (at some point in the future) be in a production quality level? Is it because the GNU project doesn't see its mission reflected as much as it wants in Linux? Is it for other political reasons?

7
  • 24
    Kind of "illegal" question here but interesting. With a bit luck it gets protected for "historical significance", given brilliant enough answers... ;-) Apr 28, 2013 at 14:20
  • 2
    @HaukeLaging Thanx mate. I too feel like this is a good question, and may produce interesting answers, and can not really understand why someone would cast a close vote. I am sure this is something that a lot of people would like to know. Apr 28, 2013 at 14:21
  • 2
    Oh, that's simple: Someone would just have to point at the FAQ and shout "off-topic" AND "too broad"... Apr 28, 2013 at 14:24
  • 7
    @HaukeLaging You are so true, and I wish that people were more pragmatic and could recognise a question with some value instead of just pointing to the FAQ and shouting. One can easily see in S.O the most interesting questions being closed, only to wonder... Apr 28, 2013 at 14:27
  • 4
    I just DID re-read the FAQ. IMHO this is on topic here. Although it is a meta-question, but the question per se relates to Linux/Unix and is quite clear.
    – Nils
    Apr 29, 2013 at 13:14

5 Answers 5

158

GNU will not adopt something as a project unless the developers agree to certain stipulations which bind all official GNU projects.

Currently the Linux kernel probably does not fit these restrictions, and there is nothing for Linus Torvalds, kernel.org, et al. to gain from placing themselves under the GNU umbrella, and a lot to lose -- the aforementioned binding agreement, and the public perception that the kernel is now a GNU project, which would have a mostly negative impact. GNU's parent organization, the Free Software Foundation (FSF), is a political organization and Torvalds has made various public criticisms of it and the somewhat controversial, iconoclastic lifetime leader/founder of GNU and the FSF, Richard M. Stallman.

Further, the Linux kernel does not require the GNU userspace any more than the GNU userspace requires the Linux kernel. This independence should be considered a good thing by the basic principles of software engineering, which favour modularity and looser coupling as opposed to the opposite (monolithic things with tight coupling).

Another point against this idea is that while HURD may not be of interest to as many people as Linux, the developers and users of HURD may object to having their project effectively dustbinned in a popularity contest. And good for them; "competition" of this sort is a positive thing, whereas bowing to monopolization is not -- you end up with massive entities that stifle creativity in part because they are prone to monolithic/meglomaniacal control. The Linux Foundation already is an independent organization, it might as well stay that way.

8
  • 13
    Thanx for the fantastic answer. +1 from me, and 2 notes: 1) Do not misunderstand me: I have a high opinion of the Hurd. I am a hurd developer myself. However (I believe that) it is not arguable that Linux is an a better state. 2) I can see why Linux wouldn't want to be coupled with GNU, but from what I can see it's the GNU Project that demonstrates the greatest objections to this. Could you elaborate on this? Apr 28, 2013 at 14:36
  • 14
    @NlightNFotis : Are you sure it is mostly a GNU objection? Just reading this: torvalds-family.blogspot.ca/2008/11/black-and-white.html . To me it seems everyone involved is much happier without a formal relationship.
    – goldilocks
    Apr 28, 2013 at 14:40
  • Thanks for this blog post. It makes more sense now. I will keep the question open for some time to see if people elaborate with more fantastic answers, and if not, yours will be selected as the "answer" to this question. Just one more last "petition". Would you mind, rephrasing if I may say, the "you may not have a high opinion of the HURD" because it makes me feel kinda uneasy and makes me feel bad about myself. Apr 28, 2013 at 14:46
  • 4
    I really like the ideas behind Hurd. What just came to my mind: The ongoing trend towards virtualization might turn out to be a big help for Hurd to see at least a part of the real world. You don't need a complete OS to make someone use it. If you have a few applications which have clear advantages from running under Hurd then you may simply put them into a Hurd VM. Similar to chrooting, lxc or whatever. Apr 28, 2013 at 14:48
  • 2
    @NlightNFotis rephrased :)
    – goldilocks
    Apr 28, 2013 at 14:56
80

There is much documentation and discussion on this on the net.

The short answer that there are deep ideological differences between the GNU project and the Linux kernel projects, which gets in the way of a possible unification.

The focus of the FSF, the organization behind the GNU Project, is on ideological purity with respect to the idea of free software. This largely takes its lead from the views of the FSF/GNU founder, Richard Stallman. Additionally, as goldilocks has mentioned, the FSF is now mostly a political advocacy organization. For a long time now, the FSF has not put significant resources into the GNU Project, though they do provide support infrastructure.

The Linux kernel project has a much more pragmatic stance on software freedom, again to a large extent stemming from its founder, Linus Torvalds. The Linux kernel project is primarily a free software project, consisting of software developers specializing in kernel/OS development, and in no respect a political advocacy organization.

As specific examples of how these ideologies play out in practice, consider

1) That Stallman considers as unacceptable the fact that the Debian project "advertises" non-free software by maintaining the non-free portion of its software archive. This is ironic, since the Debian project has a focus on software freedom that is quite similar to the FSF, while not so ideologically rigid.

2) That the Linux kernel allows (non-free) binary kernel modules to be used with the kernel. While the kernel developers are not enthusiastic about this, they do tolerate it, but it is hard to imagine the FSF doing so.

It is also worth noting that Stallman's attempt to name the operating systems based on the Linux kernel as GNU/Linux has probably not improved relations between the FSF and the Linux kernel community, though I have no specific data about this.

Aside from anything else, as goldilocks mentions, the FSF has various rules that a GNU project must conform to. This includes copyright assignment of all code to the FSF. This would all by itself be a deal breaker, since Linus Torvalds has never required such copyright assignment. Therefore, if the Linux kernel were to become part of the GNU project, all significant contributions to the Linux kernel would have to have their copyright assigned to the FSF. Given the age and size of the project, and the number of contributors, this is basically impossible. Far smaller and younger projects (e.g. Mercurial) have found software relicensing a daunting task.

Please note that this answer is in no way intended as criticism of either the FSF or the Linux kernel developers. Both sides have their own valid viewpoints. However, the reality of the situation is that they are to some extent incompatible viewpoints.

27
  • 5
    +1 I like this answer. Solid information on the issue. I appreciate your input. Apr 28, 2013 at 16:47
  • 1
    It's worth noting that in many countries in Europe the 'copyright assignment' is not legally possible. There are other possibilities (contributors agreement) but copyright assignment might be not legally possible - not only technically. Apr 28, 2013 at 17:24
  • 1
    @FaheemMitha, not by the GNU definition because the binary blobs most certainly are part of the kernel; they are distributed in the kernel source code, and built into the kernel binaries and required for them to function.
    – psusi
    Apr 28, 2013 at 18:43
  • 8
    Ahh, the proprietary drivers are another thing that GNU objects to. This was one of the reasons for GPLv3; to bar proprietary modules from being linked to free code, even at runtime, and why Linux chose to stay with GPLv2.
    – psusi
    Apr 28, 2013 at 19:59
  • 1
    @vonbrand, whether you agree with it or not is irrelevant; it is the position of the FSF and because of that, Linux could never be a GNU project.
    – psusi
    Apr 29, 2013 at 13:36
37

I am quoting a comment by Richard Stallman, regarding the decision to roll with the Hurd rather than Linux.

People sometimes ask, ``Why did the FSF develop a new free kernel instead of using Linux?'' It's a reasonable question. The answer, briefly, is that that is not the question we faced.

When we started developing the Hurd in 1990, the question facing us was, ``How can we get a free kernel for the GNU system?'' There was no free Unix-like kernel then, and we knew of no other plan to write one. The only way we could expect to have a free kernel was to write it ourselves. So we started.

We heard about Linux after its release. At that time, the question facing us was, ``Should we cancel the Hurd project and use Linux instead?''

We heard that Linux was not at all portable (this may not be true today, but that's what we heard then). And we heard that Linux was architecturally on a par with the Unix kernel; our work was leading to something much more powerful.

Given the years of work we had already put into the Hurd, we decided to finish it rather than throw them away.

If we did face the question that people ask---if Linux were already available, and we were considering whether to start writing another kernel---we would not do it. Instead we would choose another project, something to do a job that no existing free software can do.

But we did start the Hurd, back then, and now we have made it work. We hope its superior architecture will make free operating systems more powerful.

6
  • 7
    Despite the fantastic answers provided to the question already, I will select this answer as the canonical one to the question because it demonstrates the rationale behind choice of sticking with the Hurd, straight from the creator of the GNU Project, Richard Stallman. Apr 30, 2013 at 23:18
  • 10
    Note "this may not be true today" - RMS' opinion of Linux seems to be based on hearsay, not knowledge. May 1, 2013 at 13:27
  • 22
    @Martin: (Late Reply, but:) When Torvalds first announced Linux, it was x86 specific, with zero plans to make it portable. In the intial thread Linus flat out said "I'd say that porting is impossible". Thus, rms had no reason to originally believe that Linux would grow into what it has today. Evidence from the mouth of the project leader is hardly hearsay. Aug 16, 2013 at 21:33
  • 1
    @KevinCathcart: RMS/FSF should have studied the code themself instead of relying on others ("we heard"). Aug 17, 2013 at 7:22
  • 22
    @MartinSchröder: Why study the code when the Project Leader explicitly said it would not be portable? Anyway, Linux was announced in 1991. It took until April of 1994 (release 1.1.45) before Linux even added the folders for architecture ports. It would take longer before any ports were practical. If the FSF made their decision to continue the Hurd in 1992 or 1993, looking at the code would only have reinforced that the code was non-portable. Aug 19, 2013 at 16:53
4

I'm just adding my 2 cent here, I think that what it's been discussed at this point makes a lot of sense but there is one major aspect that I think can really polarize the GNU foundation and it's the fact that Linux is becoming more and more a place where large corporates are investing real money and time, the idea that linux is kind of an home-made project it's not true, not even a bit, maybe there is some random guy trying to get attention on the scene while giving a patch away, but for the large part linux it's a job for corporations.

2
  • 1
    I don't think the FSF has a problem with corporate support of software projects. Their main focus is on the principles of free software. Jun 14, 2013 at 9:22
  • Corporate dominance was a big concern the GNU GPL was intended to address. Permissively licensed software was actually normal procedure at both MIT and Berkeley, but once code was commercialized it was promptly closed. So for example, I could checkout the Linux source today and all the commercially developed improvements will benefit my potential project. Or my next small personal project may use just a couple blocks, the point is that any released improvements benefit whoever works with the code next. Jan 25, 2014 at 1:24
3

Another explanation found on the FAQ of gnu.org:

Making the GNU Hurd work well enough to compete with Linux would be a big job, and it's not clearly necessary. The only thing ethically wrong with Linux as a kernel is its inclusion of firmware “blobs”; the best fix for that problem is developing free replacement for the blobs.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .