Vor einiger Zeit erschien eine neue Guix-Version. Und ich kam auf die Idee, dass ich ein Nicht-Linux-GNU-System haben kann, wenn ich glibc, gcc und guix auf HURD und Mach booten kann. Ich brauche aber auch Software wie Bash, Emacs, Binutils, Coreutils und ein Init-System. Haben einige von ihnen Systemaufrufe, die von Linux abhängig sind? Würde ich es wie in LFS machen können?
9
Antworten:
Vor einigen Jahren habe ich eine GNU / Hurd-basierte Distribution von Grund auf neu erstellt. Sie können es immer noch finden, indem Sie Bee GNU / Hurd googeln .
Alle offiziellen GNU-Software (einschließlich der von Ihnen erwähnten Pakete) sollte Hurd unterstützen, und die meisten Pakete tun dies tatsächlich. Beachten Sie jedoch, dass Hurd kein Ersatz für Linux ist. Sie müssen also alle Pakete übergreifend kompilieren oder sie aus einem nativen GNU / Hurd-System kompilieren, ähnlich wie beim Erstellen Ihrer Software für eine andere Architektur (dh Building Arm-Software auf x86).
Trotzdem rate ich Ihnen, die folgenden Schritte auszuführen:
Installieren Sie Debian GNU / Hurd irgendwo (eine VM ist in Ordnung) und machen Sie sich damit vertraut.
Erstellen Sie Guix auf diesem System und stellen Sie sicher, dass Sie tatsächlich Pakete generieren und installieren können (wahrscheinlich müssen Sie einige Änderungen daran vornehmen).
Ändern Sie Guix, um SubHurds erstellen und verwalten zu können
Zu diesem Zeitpunkt sollten Sie bereit sein, ein komplettes GNU-System basierend auf Hurd zu booten, wo immer Sie möchten. Sie müssen GRUB anschließend nur noch richtig konfigurieren.
Viel Spaß beim Hacken!
quelle
[UPDATE] Ich habe kürzlich bei Fosdem einen Vortrag über die Portierung von Guix nach Hurd gehalten, den Sie hier überprüfen können. guix_to_hurd_fosdem_16
Ich bin derjenige, der am Hafen von Guix Hurd arbeitet. Um Guix tatsächlich auf Hurd verwenden zu können, muss zuerst der Guix-Bootstrapping-Prozess geändert werden, um ein GNU / Hurd-System zu unterstützen. Dies bedeutet, dass Guix in der Lage sein muss, die Hurd-Version von Glibc, Gnumach und Hurd zu erstellen.
Nachdem dieser Teil erledigt ist, müssen Sie die Bootstrapping-Toolchain mit dem neuen glibc erstellen und die Bootstrapping-Binärdateien erstellen. Zu diesem Zeitpunkt sollten die neu erstellten Binärdateien auf ein GNU / Hurd-System kopiert und zum Erstellen von Guix auf diesem System verwendet werden.
Guix Bootstrapping-Prozess
quelle