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?

NlightNFotis
  • 7,575
  • 24
    Kind of "illegal" question here but interesting. With a bit luck it gets protected for "historical significance", given brilliant enough answers... ;-) – Hauke Laging Apr 28 '13 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. – NlightNFotis Apr 28 '13 at 14:21
  • 2
    Oh, that's simple: Someone would just have to point at the FAQ and shout "off-topic" AND "too broad"... – Hauke Laging Apr 28 '13 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... – NlightNFotis Apr 28 '13 at 14:27
  • 1
    This might be on-topic on programmers.SE, if it does get closed here. Not sure though, as that one has been floundering for a while now - its mods seem to change the scope nearly every month, based on what does and does not get closed. – Izkata Apr 28 '13 at 17:46
  • 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 '13 at 13:14
  • Linux kernel is not GPL is it? Wouldn't that be the answer, since Linus uses BSD for his kernel and Stallman is promoting the GPL? – Kellen Stuart Oct 27 '16 at 20:25

5 Answers5

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.

goldilocks
  • 87,661
  • 30
  • 204
  • 262
  • 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? – NlightNFotis Apr 28 '13 at 14:36
  • 14
    @NlightNFotis : Are you sure it is mostly a GNU objection? Just reading this: http://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 '13 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. – NlightNFotis Apr 28 '13 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. – Hauke Laging Apr 28 '13 at 14:48
  • 2
    @NlightNFotis rephrased :) – goldilocks Apr 28 '13 at 14:56
  • @goldilocks Thanx for that. Much better now =) – NlightNFotis Apr 28 '13 at 16:26
  • @goldilocks Did you mean "iconoclastic", "iconic", or both? – l0b0 Jan 25 '15 at 11:05
  • @l0b0 I meant iconoclastic. To me it's usually a positive label with an objective meaning. I think it is reasonably appropriate for RMS, for whom I have much respect -- although he might disagree, he can be very picky about language and spin. Depending on your perspective, this might imply Linus took a low road, but in any case it helps to explain why he preferred to assert some distance between himself and the FSF. It's not just hair splitting, there are real issues there. – goldilocks Jan 26 '15 at 16:13
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.

Faheem Mitha
  • 35,108
  • 5
    +1 I like this answer. Solid information on the issue. I appreciate your input. – NlightNFotis Apr 28 '13 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. – Maja Piechotka Apr 28 '13 at 17:24
  • The fact that Linux is not free in the GNU definition ( due to binary blob drivers ) would be the biggest reason. – psusi Apr 28 '13 at 18:35
  • @psusi: Linux is free. It is licensed under the GPL v2. The binary blobs are not part of the kernel. – Faheem Mitha Apr 28 '13 at 18:41
  • 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 '13 at 18:43
  • @psusi That's news to me. Do you have a reference? – Faheem Mitha Apr 28 '13 at 18:46
  • @FaheemMitha, http://en.wikipedia.org/wiki/Linux-libre – psusi Apr 28 '13 at 18:48
  • I don't see how a country can uphold copyright in a meaningful way, yet not allow assignment. – Kaz Apr 28 '13 at 18:49
  • @psusi: I see. I thought all non-free code used in the Linux kernel was third-party. If the kernel developers themselves include proprietary code in the kernel, I guess it is non-free. – Faheem Mitha Apr 28 '13 at 18:56
  • 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 '13 at 19:59
  • @psusi, they don't run on the same CPU as the kernel doesm they are for shipping out into separate devices. So they can be shipped with the kernel, but aren't logically a part of it at all. – vonbrand Apr 28 '13 at 20:56
  • @psusi: While the binary drivers in linux may violate the FSF opinion, and their GPL license, that doesn't matter. GNU/FSF is using GPLv3, but Linux uses GPLv2 which has no such restrictions. And the FSF still lists GPLv2 as one of the Free licenses, just not their preferred. – MSalters Apr 28 '13 at 23:31
  • @vonbrand, it doesn't matter what CPU they run on, they are part of the kernel sources, and part of the kernel binary. That's the definition of being part of the kernel. – psusi Apr 29 '13 at 01:02
  • @MSalters, the FSF considers binary blobs to be non-free, and so since they are a part of the linux kernel, it is non-free, regardless of its license. You can write a program in a proprietary language that requires a proprietary compiler to build, and license it under the GPL, but if it requires non free tools to build, the FSF still considers it non-free. – psusi Apr 29 '13 at 01:05
  • Oh, come on @psusi. That RMS (and by extension the FSF) insist on this faintly ridiculous position is well known. It doesn't make it true. They themselves have the "mere aggregation" clause in the GPL. – vonbrand Apr 29 '13 at 01:08
  • @Kaz, there are several copyright regimes where there are some rights that you can not give away. Mostly the right to say "I wrote this" and the right for your work to be used against you. – vonbrand Apr 29 '13 at 01:12
  • 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 '13 at 13:36
  • @FaheemMitha: I don't think it is actually true that being a gnu project requires assignment of copyright. some gnu projects (specifically, emacs) require that, others do not. – sds Apr 29 '13 at 19:47
  • @sds: I was not aware of that. Do you have examples of GNU projects that do not require assignment? How about CLISP? – Faheem Mitha Apr 29 '13 at 21:55
  • @FaheemMitha: clisp does not require assignment. – sds Apr 30 '13 at 01:32
  • @psusi: You're very off base when you mentioned that the GPL 3 prevents the mere running of proprietary+GPL code. If this were true it would violate first principle of free software, and then the GPL 3 itself wouldn't qualify as a free software licence. More importantly the GPL explicitly is about distribution, never usage. I recognize how preventing distribution can sometimes hamper practical usage, but thats very diffrent from outright disallowing particular usage. – J. M. Becker Jan 09 '14 at 23:20
  • @TechZilla, yes, it is technically the distribution of the proprietary module that is prohibited. It is kind of hard for anyone other than the author to use something that can not be distributed though. – psusi Jan 10 '14 at 00:54
  • @psusi: Also remember though, usage within your organization or company isn't considered distribution. So a mixed binary could be created by a software development team, and then used by any other team in the same company. Or always release source GPL, that would at least free up any practical usage related problem. The only real problem would be the original criticism towards reciprocal licences, the ol` "I want to develop proprietary software, which I intend to licence, and want to only provide licensees with pre-compiled binaries....AND I want to use GPL code/libs in 'my' software" – J. M. Becker Jan 25 '14 at 01:51
  • 1
    @psusi: OOO I just read what you meant about the blobs in the Linux, Yes there are blobs in the kernal source tree. BUT! they are just provided in the tree (under freely redistributable terms), and are loaded at run time. They never call any GPL code themselves, they are just firmware blobs and normally are found in /lib/firmware/. They can be redistributed with Linux source, or in a distribution, and it doesn't change Linux's free status. The RMS/FSF position is his ethical position, hence the libre distros reflect the ideology. But no rule/law/licence is a prob. – J. M. Becker Jan 25 '14 at 02:01
  • @psusi: Almost forgot, about GPL3, it wasn't about this type of situation. It was about Linus disagreeing about preventing 'tivoization'. Also providing source, but not providing related patent licences to that source. Essentially subverting the whole point of the GPL2, you can always look but if you ever did anything with that provided source... the company who provided it would then be able to sue you for patent infringement. Essentially going right back to a proprietary model, although IMO still a better one than no source at all. Definitely against the spirit to say the least. – J. M. Becker Jan 25 '14 at 02:09
  • @TechZilla, my understanding of tivoization (am I way off?) was that the source code is free, you can modify the source code any way you like, you can use it on any device you like, however you like--BUT, you are allowed to make a hardware device that will only run your version of the code and will refuse to run modified versions. This is forbidden by GPL3 but not by GPL2. If you created your own device capable of running your modified version, that would be fine too. (Right?) – Wildcard Sep 17 '16 at 12:03
  • Downvoted, because of your statement that the FSF would require the Linux project to sign over copyright of their source to the FSF. This is completely false. The FSF in fact does the opposite: working against the concept of software copyright and instead advocating the concept of copyleft - a principal by which you are allowed to copy and distribute free software, but under the condition that you also confer those same freedoms on other users that are downstream of you. – Time4Tea Nov 14 '17 at 22:21
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.

NlightNFotis
  • 7,575
  • 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. – NlightNFotis Apr 30 '13 at 23:18
  • 10
    Note "this may not be true today" - RMS' opinion of Linux seems to be based on hearsay, not knowledge. – Martin Schröder May 01 '13 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. – Kevin Cathcart Aug 16 '13 at 21:33
  • 1
    @KevinCathcart: RMS/FSF should have studied the code themself instead of relying on others ("we heard"). – Martin Schröder Aug 17 '13 at 07: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. – Kevin Cathcart Aug 19 '13 at 16:53
  • I wonder if the argument in the comments above was really sparked by RMS' use of "may not be true today" instead of "is not true today." It makes it sound like RMS doesn't know whether modern Linux is portable or not, as though he is still relying on hearsay rather than sullying himself by examining the "unfree" code of the Linux kernel. – Wildcard Sep 17 '16 at 12:06
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.

  • 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. – Faheem Mitha Jun 14 '13 at 09: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. – J. M. Becker Jan 25 '14 at 01: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.

The Quark
  • 270
  • 2
  • 12