![是否可以运行纯 GNU?](https://linux22.com/image/50130/%E6%98%AF%E5%90%A6%E5%8F%AF%E4%BB%A5%E8%BF%90%E8%A1%8C%E7%BA%AF%20GNU%EF%BC%9F.png)
上GNU 项目网页,有一个小节叫做“所有 GNU 软件包”其中列出了 GNU 项目中的各种软件。
是否有任何 GNU 发行版使用仅有的这些软件包——即仅在 GNU 软件包上运行的“纯”GNU 操作系统?
我对这是否会是一个特别感兴趣实际的操作系统,只要理论上可以运行GNU赫德和纯粹这GNU 软件包。如果没有,还必须实施什么样的软件才能实现这一目标(即缺少什么)?
如果GNU赫德是限制因素,如果对内核进行例外处理,则纯GNU操作系统可以使用Linux核心?
答案1
GNU 项目的明确目标是提供一个完整的开源/自由/免费操作系统。
是否有任何仅使用这些软件包的 GNU 发行版——即仅在 GNU 软件包上运行的“纯”GNU 操作系统?
有一个参考这里一个基于 Hurd 的官方 GNU 二进制发行版,它“由 GNU Mach、Hurd、C 库和许多应用程序组成”。然而,它当前可能会也可能不会被维护,因为我找不到任何其他在线参考。但听起来确实符合你的标准。
我对这是否是一个实用的操作系统并不特别感兴趣,只要理论上可以用纯粹的 GNU 软件包运行 GNU Hurd 即可。
前一个问题的答案暗示着 WRT Hurd 的明显答案。当然,这可能有助于更准确地定义什么才算是一个相当完整的“操作系统”。我将提供两个定义:
足以启动到 shell 提示符的软件集合。
满足 POSIX 标准的系统。这本质上是 #1 的更严格版本,因为最高级别强制的POSIX 系统中的实体就是 shell。
这有点随意,因为设计用于实现某些特殊目的的操作系统可能根本不需要 shell。然而,在这种情况下,这将成为一个关于“特殊目的”性质的更具体的问题。
无论如何,答案是是的,尽管 GNU 对某些东西的实现可能不是 100% 完全符合 POSIX(并且有一些必需的实用程序,例如crontab
GNU 不提供的)。以下是潜在的组件:
- 内核(赫德)
- C 库(glibc)
- 基本实用程序(GNU core-utils 等)
- Shell(bash,这是一个 GNU 项目)
我没有包含引导加载程序,因为它不是操作系统的一部分——但无论如何grub
也是一个 GNU 项目。
答案2
答案3
看看 GNU 网站。他们在那里维护一个 GNU/Linux 发行版列表:
它们仍然运行 Linux 内核,但可以调整为仅运行 GNU Hurd 内核。
还有这个链接,其中介绍了如何使用 Hurd 内核运行 Debian:
同一页面还包含一些其他发行版的链接,例如 Arch + Hurd。