尽管我在相当长一段时间内都知道了Hurd的存在及其作为官方GNU操作系统内核的使命,但我想知道多年来Linux为何不被视为官方GNU内核,因为它处于一个更好的状态比赫德?
到目前为止,Linux已经或多或少地担当了20多年的角色,但是人们可以看到GNU项目在涉及Linux方面一直在与时俱进。为什么会这样呢?是因为梦想赫德(在将来的某个时候)处于生产质量水平吗?是因为GNU项目在Linux中没有充分体现其使命吗?是否出于其他政治原因?
尽管我在相当长一段时间内都知道了Hurd的存在及其作为官方GNU操作系统内核的使命,但我想知道多年来Linux为何不被视为官方GNU内核,因为它处于一个更好的状态比赫德?
到目前为止,Linux已经或多或少地担当了20多年的角色,但是人们可以看到GNU项目在涉及Linux方面一直在与时俱进。为什么会这样呢?是因为梦想赫德(在将来的某个时候)处于生产质量水平吗?是因为GNU项目在Linux中没有充分体现其使命吗?是否出于其他政治原因?
Answers:
除非开发人员同意约束所有正式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已经是一个独立的组织,它可能会保持这种状态。
网上对此有很多文档和讨论。
简短的回答是,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内核开发人员的批评。双方都有自己的正确观点。但是,这种情况的现实是,它们在某种程度上是不相容的观点。
我引用了Richard Stallman的评论,即决定采用Hurd而不是Linux的决定。
人们有时会问:“ FSF为什么要开发一个新的免费内核而不使用Linux?”这是一个合理的问题。简短的回答是,这不是我们面临的问题。
当我们在1990年开始开发Hurd时,我们面临的问题是:“我们如何为GNU系统获得一个免费的内核?”当时没有像Unix这样的免费内核,而且我们没有其他计划可写一。我们期望拥有免费内核的唯一方法是自己编写。所以我们开始了。
Linux发行后,我们听说过。当时,我们面临的问题是:``我们是否应该取消Hurd项目并改用Linux?''
我们听说Linux根本不是可移植的(今天可能不是真的,但这就是我们当时听到的)。我们听说Linux在结构上与Unix内核相当。我们的工作正在带来更强大的东西。
鉴于我们已经在Hurd中进行了多年的工作,我们决定完成此工作,而不是将它们扔掉。
如果确实遇到了人们问的问题-Linux是否已经可用,并且我们正在考虑是否开始编写另一个内核-我们就不会这样做。相反,我们会选择另一个项目,以完成现有的免费软件无法完成的工作。
但是我们确实在那时启动了Hurd,现在我们使它工作了。我们希望其卓越的体系结构将使免费操作系统更加强大。
我只是在这里添加我的2分钱,我认为在这一点上讨论的内容很有道理,但是我认为有一个主要方面可以真正使GNU基础产生两极分化,这是Linux越来越流行的事实。更多的地方是大型公司正在投入真实的金钱和时间,Linux是种自制项目的想法,这是不正确的,甚至一点也不是,也许有些随机的家伙试图在现场引起人们的注意,同时给出一个修补程序,但是对于大部分Linux来说,这是公司的工作。
使GNU Hurd能够很好地与Linux竞争将是一项艰巨的任务,而且显然没有必要。从逻辑上讲,Linux作为内核唯一的错误是它包含固件“斑点”。解决该问题的最佳方法是开发Blob的免费更换。
Linux不能是Unix,因为Linux不符合Posix。
因此,即使没有政治上的麻烦,Linux也无法满足Hurd的设计目标。
引用:“ Hurd是GNU项目的替代品,UNIX是一种流行的操作系统内核。”
令人惊讶的是,这里有Debian / Hurd-Projekt。但这可能是一个不同的故事...
顺便说一句:Windows(自NT / XP起)也基于 MACH内核。