为什么不采用Linux作为正式的GNU内核?


128

尽管我在相当长一段时间内都知道了Hurd的存在及其作为官方GNU操作系统内核的使命,但我想知道多年来Linux为何不被视为官方GNU内核,因为它处于一个更好的状态比赫德?

到目前为止,Linux已经或多或少地担当了20多年的角色,但是人们可以看到GNU项目在涉及Linux方面一直在与时俱进。为什么会这样呢?是因为梦想赫德(在将来的某个时候)处于生产质量水平吗?是因为GNU项目在Linux中没有充分体现其使命吗?是否出于其他政治原因?


20
这里有种“非法”的问题,但很有趣。运气好的话,如果给出了足够
好的

2
@HaukeLaging Thanx队友。我也觉得这是一个很好的问题,可能会产生有趣的答案,并且无法真正理解为什么有人会投近票。我相信这是很多人想知道的事情。
NlightNFotis 2013年

1
哦,这很简单:只需指向FAQ并大喊“离题”和“太宽泛”……
Hauke Laging 2013年

5
@HaukeLaging您是如此的真实,我希望人们更加务实,能够认识到一些有价值的问题,而不仅仅是指向FAQ和大喊大叫。这样一来,很容易就能看出最有趣的问题正在关闭,只是想知道...
NlightNFotis 13-4-28

4
我只是DID重新阅读了常见问题解答。恕我直言,这是这里的话题。尽管这是一个元问题,但问题本身与Linux / Unix有关,并且非常清楚。
Nils 2013年

Answers:


151

除非开发人员同意约束所有正式GNU项目的某些规定,否则GNU不会将其作为项目。

当前,Linux内核可能不符合这些限制,Linus Torvalds,kernel.org等没有任何帮助。将自己置于GNU的保护之下而获得收益,以及大量的损失-上述具有约束力的协议,以及公众认为内核现在是GNU项目,这将产生主要的负面影响。GNU的上级组织自由软件基金会(FSF)是一个政治组织,Torvalds对其提出了各种公开批评,GNU和FSF的终身领导者/创始人Richard M. Stallman对此颇有争议。

此外,Linux内核对GNU用户空间的要求不超过GNU用户空间对Linux内核的要求。根据软件工程的基本原理,这种独立性应该被认为是一件好事,它支持模块化和宽松的耦合,而不是相反的东西(紧密耦合的整体事物)。

反对这一观点的另一点是,尽管HURD可能不像Linux那样吸引许多人,但HURD的开发人员和用户可能会反对在人气竞赛中有效地粉碎他们的项目。对他们有好处;这种“竞争”是一件积极的事情,而屈服于垄断却不是-您最终会结成庞大的实体,扼杀了创造力,部分原因是它们容易受到整体式/整体性控制。Linux Foundation已经是一个独立的组织,它可能会保持这种状态。


13
感谢出色的答案。向我+1,并注意2:1)不要误解我: 我对赫德有很高的评价。我本人是一个急需开发的人。但是(我相信),Linux是一个更好的状态是不容置疑的。2)我可以看到为什么Linux不想与GNU结合使用,但是从我的眼中可以看出,GNU项目对此表示了最大的反对。您能详细说明一下吗?
NlightNFotis 2013年

14
@NlightNFotis:您确定它主要是GNU异议吗?只需阅读以下内容:torvalds-family.blogspot.ca/2008/11/black-and-white.html。在我看来,没有正式关系,每个参与其中的人都会更加快乐。
goldilocks 2013年

感谢您的博客文章。现在更有意义了。我将让这个问题开放一段时间,以了解人们是否给出了更出色的答案,如果没有,您的答案将被选为该问题的“答案”。最后一个“请愿书”。请介意,改一下我是否可以说“您可能对HURD的看法不高”,因为这会让我感到不安,也让我对自己感到难过。
NlightNFotis 2013年

4
我非常喜欢赫德背后的想法。我想到的是:持续的虚拟化趋势可能对赫德至少看到现实世界的一部分很有帮助。您不需要完整的操作系统即可让某人使用它。如果您有一些应用程序具有在Hurd下运行的明显优势,那么您可以将它们放入Hurd VM中。与chrooting,lxc或其他类似。
Hauke Laging

2
@NlightNFotis改写:)
goldilocks

77

网上对此有很多文档和讨论。

简短的回答是,GNU项目与Linux内核项目之间存在意识形态上的深厚差异,这可能会阻碍统一。

作为GNU项目背后的组织,FSF的重点是关于自由软件思想的思想纯度。从FSF / GNU创始人Richard Stallman的观点来看,这在很大程度上是领先的。此外,正如金发姑娘所说,自由软件基金会现在主要是一个政治倡导组织。尽管很长一段时间以来,FSF确实提供了支持基础结构,但它们并没有在GNU项目中投入大量资源。

Linux内核项目在软件自由方面具有更加务实的立场,这在很大程度上还是源于其创始人Linus Torvalds。Linux内核项目主要是一个免费软件项目,由专门从事内核/ OS开发的软件开发人员组成,并且绝对不包括政治倡导组织。

作为这些意识形态在实践中如何发挥作用的具体示例,请考虑

1)Stallman认为Debian项目通过维护其软件档案的非自由部分来“宣传”非自由软件是不可接受的。具有讽刺意味的是,由于Debian项目的重点是软件自由,这与FSF非常相似,但意识形态上却不是那么僵硬。

2)Linux内核允许(非免费的)二进制内核模块与内核一起使用。尽管内核开发人员对此并不热心,但他们确实可以忍受,但是很难想象FSF会这样做。

值得注意的是,Stallman尝试将基于Linux内核的操作系统命名为GNU / Linux可能并没有改善FSF与Linux内核社区之间的关系,尽管我没有关于此的具体数据。

除了goldilocks提到的其他内容外,FSF还具有GNU项目必须遵守的各种规则。这包括将所有代码的版权分配给FSF。由于Linus Torvalds从未要求进行此类版权转让,因此,这本身就足以破坏交易。因此,如果Linux内核要成为GNU项目的一部分,则对Linux内核的所有重要贡献都必须将其版权分配给FSF。考虑到项目的年龄和规模以及贡献者的数量,这基本上是不可能的。规模较小且较年轻的项目(例如Mercurial)发现软件许可艰巨的任务。

请注意,此答案绝不是对FSF或Linux内核开发人员的批评。双方都有自己的正确观点。但是,这种情况的现实是,它们在某种程度上是不相容的观点。


4
+1我喜欢这个答案。关于此问题的可靠信息。感谢您的投入。
NlightNFotis 13-4-28

1
值得注意的是,在欧洲许多国家/地区,“版权转让”在法律上是不可能的。还有其他可能性(贡献者协议),但版权转让可能在法律上不可行-不仅在技术上。
Maciej Piechotka 2013年

1
@FaheemMitha,不是GNU定义的,因为二进制blob最肯定内核的一部分;它们分布在内核源代码中,并内置在内核二进制文件中,它们必须起作用。
psusi

8
啊,专有驱动程序是GNU反对的另一件事。这是使用GPLv3的原因之一;禁止甚至在运行时将专有模块链接到免费代码,以及为什么Linux选择保留GPLv2。
psusi

1
@vonbrand,无论您是否同意都是无关紧要的;这是FSF的立场,因此,Linux永远不可能是GNU项目。
psusi

35

我引用了Richard Stallman的评论,即决定采用Hurd而不是Linux的决定。

人们有时会问:“ FSF为什么要开发一个新的免费内核而不使用Linux?”这是一个合理的问题。简短的回答是,这不是我们面临的问题。

当我们在1990年开始开发Hurd时,我们面临的问题是:“我们如何为GNU系统获得一个免费的内核?”当时没有像Unix这样的免费内核,而且我们没有其他计划可写一。我们期望拥有免费内核的唯一方法是自己编写。所以我们开始了。

Linux发行后,我们听说过。当时,我们面临的问题是:``我们是否应该取消Hurd项目并改用Linux?''

我们听说Linux根本不是可移植的(今天可能不是真的,但这就是我们当时听到的)。我们听说Linux在结构上与Unix内核相当。我们的工作正在带来更强大的东西。

鉴于我们已经在Hurd中进行了多年的工作,我们决定完成此工作,而不是将它们扔掉。

如果确实遇到了人们问的问题-Linux是否已经可用,并且我们正在考虑是否开始编写另一个内核-我们就不会这样做。相反,我们会选择另一个项目,以完成现有的免费软件无法完成的工作。

但是我们确实在那时启动了Hurd,现在我们使它工作了。我们希望其卓越的体系结构将使免费操作系统更加强大。


7
尽管已经为该问题提供了出色的答案,但我还是选择该答案作为该问题的经典答案,因为它表明了选择坚持使用Hurd的理由,该理由直接来自GNU工程的创建者Richard Stallman。
NlightNFotis

9
注意“今天可能不正确”-RMS对Linux的观点似乎基于传闻,而不是知识。
MartinSchröder'13年

19
@Martin :(延迟回复,但是:)Torvalds首次发布Linux时,它是x86专用的,并计划将其移植为零。Linus 在初始线程中平淡地说:“我想移植是不可能的”。因此,rms最初没有理由相信Linux会发展到今天的水平。从项目负责人的口中得出的证据很难说。
凯文·卡斯卡特

@KevinCathcart:RMS / FSF应该自己研究代码,而不要依赖他人(“我们听到”)。
MartinSchröder13年

21
@MartinSchröder:当项目负责人明确表示该代码不可移植时,为什么要研究该代码?无论如何,Linux于1991年发布。直到1994年4月(1.1.45版),Linux才添加了体系结构端口的文件夹。任何端口都将需要更长的时间。如果FSF决定在1992或1993年继续进行Hurd,那么查看该代码只会增强该代码不可移植。
凯文·卡斯卡特

4

我只是在这里添加我的2分钱,我认为在这一点上讨论的内容很有道理,但是我认为有一个主要方面可以真正使GNU基础产生两极分化,这是Linux越来越流行的事实。更多的地方是大型公司正在投入真实的金钱和时间,Linux是种自制项目的想法,这是不正确的,甚至一点也不是,也许有些随机的家伙试图在现场引起人们的注意,同时给出一个修补程序,但是对于大部分Linux来说,这是公司的工作。


1
我认为FSF在软件项目的公司支持方面没有问题。他们的主要重点是自由软件的原理。
Faheem Mitha 2013年

公司主导地位是GNU GPL要解决的主要问题。许可许可的软件实际上是麻省理工学院和伯克利分校的常规程序,但是一旦代码商业化,则会立即关闭。因此,例如,我今天可以检查Linux源码,所有商业开发的改进都将使我的潜在项目受益。或者我的下一个小型个人项目可能仅使用几个块,关键是任何发布的改进都会使下一个使用代码的人受益。
JM Becker 2014年

1

gnu.orgFAQ上找到了另一个解释:

使GNU Hurd能够很好地与Linux竞争将是一项艰巨的任务,而且显然没有必要。从逻辑上讲,Linux作为内核唯一的错误是它包含固件“斑点”。解决该问题的最佳方法是开发Blob的免费更换


-6

Linux不能是Unix,因为Linux不符合Posix

因此,即使没有政治上的麻烦,Linux也无法满足Hurd的设计目标。

引用:“ Hurd是GNU项目的替代品,UNIX是一种流行的操作系统内核。”

令人惊讶的是,这里有Debian / Hurd-Projekt。但这可能是一个不同的故事...

顺便说一句:Windows(自NT / XP起)也基于 MACH内核。


8
如果您要声明Linux不符合POSIX,则需要对此进行一些备份。包括FSF所说的地方,他们要求绝对是100%兼容POSIX的内核。顺便说一下,Unix不是POSIX。UNIX(。注册商标)是一种特定的专有操作系统,所以它不用说,没有其他的 OS可以操作系统。
psusi

6
引用基于MACH的Windows内核?维基百科说他们共享一些设计选择。但MACH是典型的微内核,而大多数Windows OS服务运行在内核中而不是用户级。我所知道的Windows内核中唯一的主要OSS组件是曾经基于BSD实现的网络堆栈。但是,它被淘汰了,取而代之的是一个可以更好地与几个版本之前的OS设计的其他版本(XP或2k中的IIRC)交互的软件。
Dan Neely 2013年

14
但是,GNU也不是Unix。
西蒙

6
@Nils,您链接的问题与您的立场相矛盾,而不是支持它。
psusi

8
@Nils,马赫废话是另一种流行的误解。新台币与马赫没有什么共同之处。它的“子系统服务器”与unix守护程序没有区别,后者不构成微内核。gui最初是在用户模式下实现的,它与微内核系统(虽然Xwindows也是如此,但它并没有使Linux成为微内核)只有一点点相似之处,但是在NT4中被废弃并转移到了内核中。
psusi
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.