不久前发布了新的 Guix 版本。我的想法是,如果我可以将 glibc、gcc 和 guix 引导到 HURD 和 Mach,我就可以拥有一个非 Linux GNU 系统。但我还需要一些软件,如 bash、emacs、binutils、coreutils、init 系统。其中是否有任何依赖于 Linux 的系统调用?我能像 LFS 那样做吗?
答案1
几年前,我从头开始创建了一个基于 GNU/Hurd 的发行版。您仍然可以通过谷歌搜索找到它蜜蜂 GNU/赫德。
所有官方 GNU 软件(包括您提到的软件包)都应该支持 Hurd,而且大多数软件包实际上都支持。但请记住,Hurd 并不是 Linux 的直接替代品,因此您实际上需要交叉编译所有软件包,或者从本机 GNU/Hurd 系统编译它们,这与构建软件的方式非常相似对于另一种架构(即在x86上构建arm软件)。
也就是说,我建议您按照以下步骤操作:
在某处安装 Debian GNU/Hurd(虚拟机即可)并熟悉它。
在所述系统上构建 Guix,并确保您实际上可以生成并安装软件包(您可能需要对其进行一些更改)。
修改Guix使其能够创建和管理亚赫兹
在此阶段,您应该准备好在任何您想要的地方引导基于 Hurd 的完整 GNU 系统。之后您只需要正确配置 GRUB 即可。
快乐黑客!
答案2
[更新] 我最近在 Fosdem 上做了一次关于将 Guix 移植到 Hurd 的演讲,您可以在此处查看。guix_to_hurd_fosdem_16
我是在 Guix Hurd 端口工作的人。为了在 Hurd 上实际使用 Guix,必须首先修改 Guix 引导过程以支持 GNU/Hurd 系统。这意味着 Guix 必须能够交叉构建 glibc、Gnumach 和 Hurd 的 hurd 版本。
完成这一部分后,您必须使用新的 glibc 构建引导工具链并生成引导二进制文件。此时,新构建的二进制文件应该复制到 GNU/Hurd 系统并用于在该系统上构建 Guix。