GNUをコンパイルして起動することは可能ですか?

GNUをコンパイルして起動することは可能ですか?

Guixの新しいバージョンがしばらく前にリリースされました。私の考えでは、glibc、gcc、guixをHURDとMachで起動できれば、LinuxではなくGNUシステムも持つことができるでしょう。しかし、bash、emacs、binutils、coreutils、init systemなどのいくつかのソフトウェアも必要です。 Linuxに依存するシステムコールはありますか? LFSのようにできますか?

答え1

数年前、私は最初からGNU / Hurdベースのディストリビューションを作成しました。まだGoogleで検索してください。非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ポートで働いている人です。 GuixをHurdで実際に使用するには、まずGNU / HurdシステムをサポートするようにGuixブートプロセスを変更する必要があります。これは、Guixがglibc、Gnumach、およびHurdのハードバージョンをクロスビルドできる必要があることを意味します。
このセクションを完了したら、新しいglibcを使用して起動ツールチェーンを構築し、起動バイナリを作成する必要があります。この時点で、新しく構築されたバイナリをGNU / Hurdシステムにコピーし、そのシステムでGuixを構築するために使用する必要があります。

Guixブートプロセス

関連情報