Ergebnisse der Entwicklung von GNU Hurd im 4. Quartal 2023

Ergebnisse der Entwicklung von GNU Hurd im 4. Quartal 2023

Am 9. Januar wurden im offiziellen Nachrichtenbereich des GNU Hurd-Projekts die endgültigen Nachrichten für das 3. Quartal 2023 veröffentlicht:

  • Samuel Thibault hat die Standard-PIE-Einstellung für gcc korrigiert und Unterstützung für static PIE hinzugefügt.Er hat auch den whatis-Befehl in den GNU Mach-Kernel-Debugger hinzugefügt, der bestimmen kann, woraus eine Adresse besteht (Stack? Port? kalloc?…). Die Unterstützung für hurd-amd64 in GCC wurde hinzugefügt..
  • Samuel hat auch das Hurd-Team gebeten, eine kontinuierliche Integration zu organisieren (kontinuierliche Integration) — damit die Entwickler bei Änderungen am Code sicher sein können, dass sie nichts kaputt gemacht haben.

    „Es stellt sich heraus, dass Hurd mehrere verschiedene Umgebungen unterstützt: 32 Bit, 64 Bit, 32 auf 64 Bit, ACPI, nicht-ACPI, SMP, nicht-SMP, Xen usw. Anscheinend hat einer der Hurd-Entwickler, Flavio, eine persönliche CI, aber sie ist unabhängig von Debian konfiguriert. Wenn Sie daran interessiert sind, dem Hurd-Projekt bei der Erstellung von CI zu helfen, kontaktieren Sie uns!“

  • Luca Dariz hat daran gearbeitet, mehrere einfache Tests für den GNU Mach-Benutzerspeicherraum hinzuzufügen. Mit einem laufenden MiG kann die GNU/Linux-Maschine den Befehl make check des GNU Mach-Quellcodes ausführen, der qemu startet, um sicherzustellen, dass die 32-Bit-Version (PAE und nicht-PAE), die 32-Bit-Version auf 64-Bit und die vollständige 64-Bit-Version von GNU Mach funktioniert. Momentan führen wir Tests auf GNU/Linux durch, da qemu unter Hurd nicht funktioniert.
  • Eine große Anzahl von Personen hat an der neuen Unterstützung für x86_64 in Hurd gearbeitet. Samuel berichtet, dass der 64-Bit-Port des GNU Hurd jetzt genügend Pakete im Debian-Ports-Archiv hat, um ein chroot möglich zu machen. Der 64-Bit-Bau-Daemon von Debian + GNU Hurd befindet sich in der Einrichtung, und es werden auch andere Arbeiten an der Infrastruktur durchgeführt. Thibault bemerkte: berichtete „Das Packen von Paketen ist nicht besonders stabil. Ich versuche seit ein paar Wochen, gcc-13 zu bauen, bisher ohne Erfolg. Es gibt verschiedene Abstürze, most often strange errors in the libtool script, which indicate that the system itself is misbehaving. A way to reproduce the issue is simply to rebuild a package using libtool, and sooner or later it will lead to a very strange failure."

    „Das Packen von Paketen ist nicht sehr stabil. Ich versuche schon seit ein paar Wochen, gcc-13 zu bauen, aber bisher ohne Erfolg. Es gibt verschiedene Fehler, meistens merkwürdige Fehler im libtool-Skript, die darauf hindeuten, dass das System selbst nicht richtig funktioniert. Eine Möglichkeit, das Problem zu reproduzieren, besteht darin, ein Paket, das libtool verwendet, einfach neu zu bauen, und früher oder später wird dies zu einem sehr seltsamen Absturz führen.
    Das bedeutet, dass, obwohl der Build bereits bereit ist, es für mich wirklich unbequem ist, ihn zu starten, da ich weiß, dass er sich unberechenbar verhalten könnte. Als ich das ursprüngliche Paketset für die Debian-Ports (~100 Pakete) zusammengestellt habe, gab es etwa 5-10 solche Fehler, was ziemlich hoch ist: \/»

  • Flavio Cruz hat IPC GNU Mach verbessert, indem er die Reihenfolge der Felder mach_msg_type_t zur Byte-Ausrichtung von msgt_name und msgt_size geändert hat. Er hat auch eine Reihe von Patches erstellt, die eine Größenänderung von Nachrichten für x86_64 vermeiden.Er hat typelose Mach RPC-Codes entfernt.:

    „GNU Mach verwendet typisierte IPC. Hurd kann sowohl typisierte als auch typelose Aufrufe unterstützen, aber anscheinend verwendet Hurd nur typisierte RPC. Daher ist es am besten, alle typelosen RPC-Codes zu entfernen.“

  • Sergey Bugaev hat hinzugefügt Unterstützung für die Wiedervereinigung von GNU Mach-Aufzeichnungen.Mach konnte nicht immer zwei benachbarte Virtual Machine-Einträge zusammenfassen, was die Leistung von ext2, bash usw. verlangsamte. Sergey ermöglichte es GNU Mach, helflicherweise Normalfälle zusammenzufassen, was beispielsweise in ext2fs sehr nützlich war.
  • Außerdem arbeitet Sergey an der Portierung des Webbrowsers Ladybird unter Hurd. Der Autor dieses Beitrags (offensichtlich bezieht sich dies auf den ursprünglichen Beitrag auf gnu.org – Anm. d. Red.) verwendet der Webbrowsers netsurf unter Hurd, der auf einfachen Webseiten (wie Wikipedia) funktioniert, aber schlecht mit Seiten umgeht, die viel JavaScript enthalten, was viele Webseiten unbrauchbar macht. Wenn es Sergey gelingt, Ladybirdzu portieren, können Hurd-Nutzer mit Netzwerkressourcen wie Github beginnen! Es ist erwähnenswert, dass jemand auch den Firefox portieren muss..
  • Außerdem hat Bugaev begonnen, Hurd auf AArch64 zu portieren! Und obwohl der Port auf RISC-V interessanter aussehen mag, ist zu beachten, dass AArch64 bekannter ist. Interessanterweise kann Sergey bereits Hurd-Server für AArch64 kompilieren! Normalerweise muss man GNU Mach auf AArch64 portieren, um Binärdateien auszuführen, aber glücklicherweise hat er sich GDB zugewandt und die Hurd AArch64 „Hello World“-Binärdatei direkt in Linux gestartet! Das half ihm, einige Fehler zu beheben. Es bleibt noch zu klären, welches ABI verwendet werden soll und den Port von GNU Mach abzuschließen, aber im Moment sind das großartige Neuigkeiten!
  • Tobias Platen hat begonnen, GNU Mach auf die Power9-Plattform zu portieren..

Falls jemand den Wunsch hat, die Funktionsfähigkeit seiner bevorzugten Pakete unter Hurd zu überprüfen und deren Unterstützung für die Nutzung des gesamten GNU-Systems für ein breiteres Publikum zu fördern — bitte, überprüfen Sie die Teilnahmeseite.

Zur Info: GNU Hurd (oder einfach Hurd) — ist ein Projekt zur Entwicklung von freier Software, dessen Ziel es ist, den Unix-Kernel durch einen neuen Kernel für Unix-ähnliche Betriebssysteme zu ersetzen. Die Entwicklung von Hurd läuft seit 1990 im Rahmen des GNU-Projekts und der Free Software Foundation. Der Fortschritt erfolgt langsam aufgrund der Existenz von Linux — einer bereits verfügbaren freien Alternative zu Unix-Kernel-Systemen. Einzelheiten können sowohl unter Wikis, als auch auf der offiziellen Seite des GNU Hurd Projekts.

eigenen Handlern, das heißt, Objekten der Klasse GNU Mach — ist eine Implementierung des Mach-Mikrokernels, der standardmäßig Bestandteil von GNU Hurd ist.

Quelle: linux.org.ru

60GB SSD 8Gb DDR4