新しいGuixリリースが少し前に出ました。そして、glibc、gcc、およびguixをHURDおよびMachにブートストラップできれば、Linux以外のGNUシステムを使用できるというアイデアを得ました。ただし、bash、emacs、binutils、coreutils、initシステムなどのソフトウェアも必要です。Linuxに依存するシステムコールがあるものはありますか?LFSのようにできますか?
新しいGuixリリースが少し前に出ました。そして、glibc、gcc、およびguixをHURDおよびMachにブートストラップできれば、Linux以外のGNUシステムを使用できるというアイデアを得ました。ただし、bash、emacs、binutils、coreutils、initシステムなどのソフトウェアも必要です。Linuxに依存するシステムコールがあるものはありますか?LFSのようにできますか?
回答:
数年前、私はGNU / Hurdベースのディストリビューションをゼロから作成しました。それについては、Bee GNU / Hurdをグーグルすることで見つけることができます。
すべての公式GNUソフトウェア(あなたが言及したパッケージを含む)はHurdをサポートするはずであり、ほとんどのパッケージが実際にサポートしています。ただし、HurdはLinuxのドロップイン代替品ではないため、実際にはすべてのパッケージをクロスコンパイルするか、ネイティブGNU / Hurdシステムからコンパイルする必要があります。これは、ソフトウェアをビルドする場合とほぼ同じです。別のアーキテクチャ(x86でarmソフトウェアを構築するなど)の場合。
とはいえ、次の手順に従うことをお勧めします。
Debian GNU / Hurdをどこかにインストールし(VMは問題ありません)、それに慣れます。
上記のシステムでGuixをビルドし、実際にパッケージを生成およびインストールできることを確認します(おそらく、いくつかの変更を加える必要があります)。
この段階で、Hurdに基づく完全なGNUシステムをどこにでもブートストラップする準備ができているはずです。あとはGRUBを適切に設定するだけです。
ハッキングハッピー!
[更新]私はFosdemで、GuixのHurdへの移植について講演しました。こちらで確認できます。guix_to_hurd_fosdem_16
私はGuix Hurdの移植に取り組んでいる人です。HurdでGuixを実際に使用するには、GNU / Hurdシステムをサポートするために、最初にGuixブートストラッププロセスを変更する必要があります。これは、Guixがglibc、Gnumach、Hurdのハードバージョンをクロスビルドできる必要があることを意味します。
この部分が完了したら、新しいglibcを使用してブートストラップツールチェーンを構築し、ブートストラップバイナリを生成する必要があります。この時点で、新しくビルドされたバイナリをGNU / Hurdシステムにコピーし、そのシステムでGuixをビルドするために使用する必要があります。