GNU Hurd

Kernel auf Basis des Mikrokernels Mach

GNU Hurd ist ein in Assembler und C geschriebener Kernel (Betriebssystemkern) mit einem Mikrokernel als Basis.[2] Dieser implementiert Dateisysteme, Netzwerkprotokolle, Datei-Zugriffskontrollen und andere Eigenschaften. Die Entwicklung des Kernels begann bereits 1990. Die zur Entwicklung geschaffene GNU Compiler Collection (gcc) hat große Verbreitung gefunden.

GNU Hurd
HURD-Live-CD-Login
Entwickler Thomas Bushnell, Roland McGrath, Marcus Brinkmann, Neal Walfield
Lizenz(en) GNU GPL
Akt. Version 0.9[1] (18. Dezember 2016)
Kernel Mikrokernel
Abstammung Unix
↳ GNU Hurd
Architektur(en) IA-32
Sprache(n) multilingual
Sonstiges In Entwicklung
www.gnu.org/software/hurd/

Hurd verwendet GNU Mach, eine Weiterentwicklung des Mach-Mikrokernels der letzten Version 4 von 1996.[3] 2002 wurde versucht, Hurd auf den L4-Mikrokernel zu portieren, dieses Vorhaben wurde jedoch 2005 wieder aufgegeben.[4]

Nach der Portierung von Java auf GNU Hurd im Rahmen des Google Summer of Code (2011) wurde diskutiert, den Systemkernel in Debian Wheezy aufzunehmen. Die Idee wurde jedoch später verworfen.[5][6]

Die Betriebssystem-Komponenten von Hurd laufen als eigene Prozesse (englisch server genannt). Durch das Design von GNU Hurd benötigen die meisten Betriebssystem-Aktionen keinerlei Privilegien mehr. Das wird erreicht, indem Gerätetreiber, Dateisysteme, Netzwerkprotokolle und Ähnliches aus dem privilegierten Adressraum des Systemkernels herausgenommen werden und als normale Benutzerprozesse laufen, sodass sie (theoretisch) keinen Schaden am Gesamtsystem anrichten können.

Ein Prozess kann allerdings besondere Privilegien erhalten, um besondere Betriebssystem-Funktionen durchführen zu können. Dieses Konzept bietet eine Reihe von Vorteilen:

  • Sollte ein Prozess in seinem Dienst versagen, kann er den Kernel nicht ohne weiteres zum Erliegen bringen.
  • Programme im User-Space sind leichter zu debuggen.
  • Sofern nicht bestimmte Privilegien benötigt werden, kann jeder Benutzer selbst Betriebssystem-Komponenten setzen, um zum Beispiel ein eigenes Dateisystem einzurichten. Da die entsprechende Betriebssystem-Komponente dann unprivilegiert läuft, stellt sie kein Sicherheitsrisiko dar. Außerdem braucht der Benutzer nicht die eingebauten Funktionen des Kernels zu benutzen, sondern kann sich den Dienst selbst nach Belieben erstellen, ohne dass die Integrität des Systems dadurch in Mitleidenschaft gezogen werden kann.

Sogenannte Übersetzer beantworten Zugriffsanfragen auf einen Einhängepunkt. Dieser kann eine einzelne Datei oder eine ganze Verzeichnis-Hierarchie im Dateisystem sein. Dadurch können Programme auch ohne spezielle Anpassungen mit den üblichen Dateioperationen von den Möglichkeiten von Hurd profitieren. Sinnvoll ist das beispielsweise für Low-Level-Implementierungen virtueller Dateisysteme: Der Übersetzer FTPFS stellt zur Laufzeit auf der zugewiesenen Datei ein Verzeichnis dar (der Unterschied zwischen Dateien und Verzeichnissen ist in Hurd sehr gering), auf das wie auf ein normales Verzeichnis zugegriffen werden kann; allerdings übersetzt ftpfs die Dateioperationen in FTP-Operationen, die zu einem Server geschickt werden. Das entspricht im Wesentlichen der Funktionalität graphisch orientierter FTP-Clients, in denen entfernte Verzeichnisse wie lokale aussehen, ftpfs von Hurd ermöglicht es jedoch, mit normalen Programmen wie ls oder cat auf dem entfernten Server zu agieren.

GNU-Hurd-Distributionen

Bearbeiten

Namensbedeutung

Bearbeiten

Bei dem Namensteil Hurd (früher auch HURD) von GNU Hurd handelt es sich um ein komplexes rekursives Akronym, nämlich ein (zweistufig) indirektes, das in der ersten Auflösung HIRD of Unix-Replacing Daemons (deutsch: „Herde Unix-ersetzender Dienste“) lautet. HIRD wird wiederum zu HURD of Interfaces Representing Depth (deutsch: „Herde Tiefe-darstellender Schnittstellen“) aufgelöst. Obige Übersetzung ist keine exakte, sondern gibt die Bedeutung der beiden Kunstworte assoziativ bzw. auf einer lautmalerischen Ebene wieder, denn sie basiert nur auf dem gleich (hier: nicht generell ununterscheidbar) ausgesprochenen engl. Wort herd (deutsch: Herde). Durch die Akronyme und die lautmalerische Verfremdung werden zwei unter Hackern übliche Traditionen gleichzeitig genutzt.

Versionen

Bearbeiten
  • Am 4. Mai 2013 wurde mit Debian GNU/Hurd eine Version von Debian mit GNU Hurd als Kernel veröffentlicht. Diese Debian-Version entsprach dem damals aktuellen Unstable-Release (Codename „Sid“) von Debian GNU/Linux mit etwas reduziertem Paket-Umfang.[7] Sie umfasste mit etwa 10.000 Paketen 75 % der Linux-Version.[8][9] Die darauffolgende Version von GNU Hurd vom September 2013 erhielt die Versionsnummer 0.5.[10]
  • Die Ausgabe 0.6, die am 15. April 2015 veröffentlicht wurde, unterstützt das virtuelle Dateisystem Procfs. Zudem wird nun ein Sys-V-ähnliches Startprogramm genutzt.[11][12]
  • Am 31. Oktober 2015 erschien Version 0.7 mit verbessertem Festplattencache; auch fakeroot wurde verbessert. Das Programm rpcscan hilft, Mikrokernel-Prozesse, die Systemdienste anbieten, zu suchen und anzuzeigen, welche Remote Procedure Calls sie gerade verarbeiten. Zwischen Dateisystem-Translatoren, libdiskfs und libpager behob man Synchronisationsprobleme.[13]
  • Version 0.8 erhielt am 18. Mai 2016 neue und aktualisierte Bibliotheken (netfs, Integer-Hashing-Library, hurd-slab). Sie nutzt die neue Mach-Version 1.7.[14]
  • Version 0.9 erschien am 18. Dezember 2016 und verwendet Mach 1.8. Neben Fehlerkorrekturen wurde ein Ethernet-Multiplexer für virtuelle Interfaces sowie der Paketfilter libpf (die Berkeley Packet Filter Library) hinzugefügt.[15]
  • Im vierten Quartal 2018 wurde der Zugriff auf PCI-Karten verbessert und der lwIP (ein leichtgewichtiger TCP-/IP-Netzwerkstack) und das ACPI (Advanced Configuration and Power Interface) aktualisiert.[16]
  • Aktuell (Stand: Juli 2019) wurden etwa 80 % des Paket-Umfangs des aktuellen Unstable-Release von Debian portiert.[17]

Siehe auch

Bearbeiten
Bearbeiten
Commons: GNU Hurd – Album mit Bildern

Einzelnachweise

Bearbeiten
  1. Current Status
  2. Introduction to the Hurd. auf der GNU-Website, 2. Oktober 2005.
  3. GNU Hurd/ microkernel/ mach/ history. GNU Mach and OSKit-Mach. In: GNU Hurd. GNU.org, abgerufen am 7. Oktober 2018 (englisch): „GNU Mach is based on Mach4 from University of Utah, which in turn is based on Mach3 from Carnegie-Mellon University. The last release of Mach4 was the UK22 release.“
  4. Porting the Hurd to another microkernel. auf der GNU-Webseite, 29. Juni 2011.
  5. Samuel Thibault: Bits from the Debian GNU/Hurd porters. In: Debian-Mailingliste debian-devel-announce. 4. Februar 2012, abgerufen am 9. Januar 2013 (englisch): „Since the ftp-master meeting in July 2011, significant improvements have been made, and a technological preview of GNU/Hurd with Wheezy, as was made for kFreeBSD did for Squeeze, is still the target.“
  6. Liste der Release-Architekturen für Debian Wheezy
  7. GNU Hurd/news, abgerufen am 24. August 2020
  8. GNU Hurd/ news, abgerufen am 14. August 2020
  9. Falko Benthin: Debian GNU/Hurd 2013: Debian mit Mach-Microkernel. In: pro-linux.de. 23. Mai 2013, abgerufen am 14. August 2020.
  10. GNU Hurd/news/2013-09-27, abgerufen am 14. August 2020
  11. Kernel: GNU Hurd 0.6 erschienen. Golem.de, 17. April 2015
  12. Die Herde zieht weiter: GNU Hurd 0.6. Heise online, 22. April 2015
  13. Hans-Joachim Baader: GNU Hurd 0.7 erschienen. In: Software::Distributionen. pro-linux.de, 3. November 2015, abgerufen am 29. November 2015.
  14. Moritz Förster: Fortschritte: GNU-Projekt aktualisiert Hurd und Mach. In: Software::Distributionen. heise.de/ix, 18. Mai 2016, abgerufen am 19. Mai 2016.
  15. Tilman Wittenhorst: GNU Hurd 0.9 erschienen. In: iX. 20. Dezember 2016, abgerufen am 26. Februar 2018.
  16. GNU Hurd/news/2018-q4. GNU Hurd, abgerufen am 25. Januar 2023.
  17. Debian GNU/Hurd 2019 veröffentlicht, abgerufen am 14. August 2020