1

我想知道 Linux 和 GNU 是如何相互关联的。任何人都可以消除我的疑问吗?

谢谢!

4

2 回答 2

9

GNU 由 Richard Stallman 创立,是一组工具,或多或少有助于创建功能齐全的操作系统。GNU 的目标是创建一个完全免费的、开源的 UNIX 替代品。

Linux 是由 Linus Torvalds 创建的,与 GNU 没有任何联系。Linux 用作操作系统内核。在创建 Linux 时,已经创建了许多 GNU 组件,但 GNU 缺少内核,因此将 Linux 与 GNU 组件一起使用以创建完整的操作系统。现在有一个由正在开发中的 GNU 团队 (GNU Hurd) 创建的内核,它可以用来代替 Linux 生成一个完全基于 GNU 的操作系统。然而,GNU Hurd 仍处于开发阶段(已经有 20 年了),Linux 是一个更成熟的内核。

也有可能(例如在 Android 的情况下)拥有一个没有 GNU 组件的基于 Linux 的操作系统。

但通常一个完整的操作系统将由 Linux + 许多 GNU 组件组成,有时也称为 GNU/Linux。

于 2012-06-27T03:03:13.687 回答
2

最初,GNU 是一个逐步构建完整的与 Unix 兼容的操作系统的项目。

计划是根据规范重写每个小型实用程序,通过替换原始的 Unix 在工作的 Unix 上对其进行测试。进展非常顺利,除了内核,进展特别缓慢,可能是因为几个优秀的开发人员无法就绝对最佳的设计达成一致。

计划中的 HURD 内核其实设计得很先进,有很多创新,但似乎不会很快完成。

与此同时,Linus Torvalds 正在编写自己的内核,主要是为了自学如何控制 Intel 80386 处理器的低级方面。起初它只是一个任务切换器,但他很快实现了大部分旧的系统调用规范,直到他设法在新内核之上运行大部分 MINIX(另一个类 Unix 系统,主要用于教育)环境。

很快,其他人建议使用 GNU 实用程序而不是 MINIX 实用程序,并得到了一个更完整的系统。它运行得非常好,以至于大多数 GNU 开发人员只是采用了 Linux 内核,而不是永远等待 HURD 内核。

由此产生的操作系统通常被称为“Linux”,但 Linux 确实只是内核。所有 GNU 实用程序的代码行数都多得多,因此更恰当地称为 GNU/Linux。

于 2012-06-27T03:13:52.327 回答