为什么 Linux 不被接受为官方的 GNU 内核?

Nli*_*tis 132 gnu linux-kernel hurd

虽然我很长一段时间都知道Hurd的存在,以及它作为官方 GNU 操作系统内核的使命,但我想知道为什么 Linux 多年来没有被接受为官方 GNU 内核,因为它处于更好的状态比赫德?

到目前为止,Linux 或多或少已经担任了 20 多年的角色,但是可以看出 GNU 项目在 Linux 方面一直保持着距离。为什么会这样?是因为梦想赫德(在未来的某个时候)达到生产质量水平吗?是不是因为 GNU 项目没有看到它的使命在 Linux 中得到了充分体现?是不是出于其他政治原因?

gol*_*cks 155

除非开发人员同意约束所有官方 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 基金会已经是一个独立的组织,它不妨保持这种状态。

  • @NlightNFotis:你确定这主要是 GNU 的反对意见吗?刚刚阅读:http://torvalds-family.blogspot.ca/2008/11/black-and-white.html。在我看来,没有正式关系的每个人似乎都更快乐。 (14认同)
  • 感谢您的精彩回答。来自我的 +1 和 2 条注释:1) *不要误解我:* **我对 Hurd 有很高的评价。**我自己就是一个 hurd 开发人员。然而(我相信)*Linux 是一个更好的状态是无可争议的。* 2)我可以理解为什么 Linux 不想与 GNU 结合,但从我所看到的是 GNU 项目证明了对此的最大反对意见。你能详细说明一下吗? (13认同)
  • 我真的很喜欢赫德背后的想法。我刚刚想到的是:虚拟化的持续趋势可能对赫德至少看到现实世界的一部分有很大帮助。你不需要一个完整的操作系统来让别人使用它。如果您有几个应用程序在 Hurd 下运行具有明显的优势,那么您可以简单地将它们放入 Hurd VM。类似于 chrooting、lxc 或其他。 (4认同)
  • @NlightNFotis 改写:) (2认同)

Fah*_*tha 80

网上有很多关于此的文档和讨论。

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

GNU 项目背后的组织 FSF 的重点是关于自由软件思想的意识形态纯洁性。这主要来自 FSF/GNU 创始人 Richard Stallman 的观点。此外,正如金发姑娘所提到的,FSF 现在主要是一个政治倡导组织。很长一段时间以来,FSF 并未将大量资源投入 GNU 项目,尽管它们确实提供了支持基础设施。

Linux 内核项目对软件自由采取了更为务实的立场,这在很大程度上再次源于其创始人 Linus Torvalds。Linux 内核项目主要是一个自由软件项目,由专门从事内核/操作系统开发的软件开发人员组成,绝不是一个政治倡导组织。

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

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

2) Linux 内核允许(非自由)二进制内核模块与内核一起使用。虽然内核开发人员对此并不热情,但他们确实容忍了,但很难想象 FSF 会这样做。

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

除此之外,正如金发姑娘所提到的,FSF 有 GNU 项目必须遵守的各种规则。这包括将所有代码的版权分配给 FSF。这本身就是一个交易破坏者,因为 Linus Torvalds 从未要求过这样的版权转让。因此,如果 Linux 内核要成为 GNU 项目的一部分,那么对 Linux 内核的所有重大贡献都必须将其版权分配给 FSF。考虑到项目的年龄和规模,以及贡献者的数量,这基本上是不可能的。更小和更年轻的项目(例如 Mercurial)发现软件重新授权是一项艰巨的任务。

请注意,这个答案绝不是对 FSF 或 Linux 内核开发人员的批评。双方各有各的道理。然而,实际情况是它们在某种程度上是不相容的观点。

  • 啊,专有驱动程序是 GNU 反对的另一件事。这是 GPLv3 的原因之一;禁止专有模块链接到免费代码,即使在运行时也是如此,以及为什么 Linux 选择继续使用 GPLv2。 (8认同)
  • +1 我喜欢这个答案。关于这个问题的可靠信息。我感谢您的意见。 (5认同)

Nli*_*tis 37

我引用了Richard Stallman的评论,关于使用 Hurd 而不是 Linux 的决定。

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

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

我们在 Linux 发布后听说过它。当时,我们面临的问题是,“我们是否应该取消 Hurd 项目并改用 Linux?”

我们听说 Linux 根本不可移植(今天可能不是这样,但那是我们当时听到的)。我们听说 Linux 在架构上与 Unix 内核相当;我们的工作导致了更强大的东西。

鉴于我们已经为 Hurd 投入了多年的工作,我们决定完成它而不是将它们扔掉。

如果我们确实面对人们提出的问题——Linux 是否已经可用,并且我们正在考虑是否开始编写另一个内核——我们不会这样做。相反,我们会选择另一个项目,完成现有自由软件无法完成的工作。

但当时我们确实启动了赫德,现在我们已经让它发挥作用了。我们希望其卓越的架构能让免费操作系统更加强大。

  • @Martin:(迟到的回复,但是:)当 Torvalds 首次宣布 Linux 时,它是特定于 x86 的,零计划使其可移植。在 [初始线程](https://groups.google.com/forum/#!topic/comp.os.minix/dlNtH7RRrGA) 中,Linus 直截了当地说“我认为移植是不可能的”。因此,rms 最初没有理由相信 Linux 会发展成今天的样子。项目负责人口中的证据很难说是道听途说。 (22认同)
  • @MartinSchröder:当项目负责人明确表示它不可移植时,为什么要研究代码?无论如何,Linux 是在 1991 年发布的。直到 1994 年 4 月(发布 1.1.45),Linux 才添加了架构端口的文件夹。任何端口都需要更长时间才能实用。如果 FSF 决定在 1992 年或 1993 年继续使用 Hurd,查看代码只会强化代码是不可移植的。 (22认同)
  • 请注意“今天这可能不是真的” - RMS 对 Linux 的看法似乎是基于传闻,而不是知识。 (10认同)
  • 尽管已经为该问题提供了出色的答案,但我仍会选择此答案作为该问题的规范答案,因为它直接来自 GNU 项目的创建者 Richard Stallman,证明了选择坚持使用 Hurd 背后的基本原理。 (7认同)