如果我制作了一个 Linux 发行版,我可以添加 Busybox 或除 GNU 之外的其他 UNIX 系统吗?或者 Linux 和 GNU 完全相互依赖吗?
答案1
Linux 和 GNU 是独立的,您可以在没有 GNU 的情况下构建 Linux 发行版 — 请参阅阿尔卑斯Linux例如。 Android 是构建在 Linux 之上而不使用 GNU 的操作系统的另一个示例。
GNU 工具在 Linux 以外的内核上运行;其中许多甚至可以在 Windows 上运行。大多数工具实际上早于 Linux,并且仍然支持 90 年代和 2000 年代初期常用的许多不同系统(请参阅config.guess
了解一次或另一次遇到的各种系统)。长期以来,GNU 系统的预期内核是赫德,但这方面的进展一直很缓慢。
答案2
是的。
以前做过,现在做过,将来也会做。
Linux 不需要 GNU,GNU 用户区也不需要 Linux。 Busybox、Toybox 等项目就是为此目的而存在的。
在 Linux 方面,甚至可以想象(并且几乎没有任何基础,实用),如果您愿意,您可以从头开始构建自己的用户区。
例如,安卓是在 Linux 内核上运行的操作系统,使用 Toybox 作为默认用户区,并且可能是其中最常见的操作系统。
同样,GNU coreutils 能够移植到(或直接运行,有足够的支持)运行在其他非 Linux 内核上(在一些专有的 Unices 上安装 GNU 用户区是相对常见的,因为许多人更喜欢 GNU 实用程序)比其操作系统的默认实用程序)。
这里还值得注意的是,GNU coreutils 最初并不是为 Linux 创建的,而是为 BSD 创建的(正如 Stephen Kitt 在一条评论)。他们确实在许多专有的 Unices 上看到了很多用途,例如 SunOS、AIX、HP/UX 等。