Why isn't Linux embraced as the official GNU kernel?

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.


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.


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.