Login
Newsletter
Werbung

Mo, 27. November 2000, 00:00

Einführung in Hurd

Dieser Text stellt eine einfache Einführung in das GNU/Hurd OS und dessen Konzepte dar. Desweiteren versucht er Interesse für das System und die Entwicklung zu wecken.

Gnu Hurd

Vorwort

Einige Leute mögen sich vielleicht fragen: "Hurd? Was ist das?", dabei handelt es sich dabei um ein sehr wichtiges und interessantes Projekt, welchem eigentlich viel zu wenig Aufmerksamkeit geschenkt wird.

Kurz gesagt: Hurd ist der Kernel des GNU Betriebssystems. Die Entwicklung von Hurd geht relativ langsam voran. Ein Grund dafür ist mit Sicherheit der geringe Bekanntheitsgrad. Dies mindert aber nicht das Potenzial, welches in den Konzepten von Hurd steckt.

Dieser Artikel soll ein wenig dazu beitragen, dass Hurd bekannter wird und sich demzufolge mehr Hacker an dem Projekt beteiligen.

Techniken und Konzepte von Hurd

1984 hat sich das GNU-Projekt zum Ziel gesetzt, ein freies, Unix-kompatibles System zu entwickeln - aber eben nur ein Unix-kompatibles, keinen Unix-Klon. Daher ist auch die Technik völlig anders die von »traditionellen Unicen«.

Hurd selbst ist sehr modular und ist genau genommen nur eine Sammlung von Programmen ("Translatoren") und Bibliotheken, die auf einem Microkernel laufen, um eine Unix-ähnliche Umgebung zu bieten. Zur Zeit ist GNUmach, eine Mach4-Implementation, der von Hurd verwendete Microkernel. Es wird allerdings überlegt, den Hurd auf einen völlig anderen Microkernel, wie z.B. den L4, zu portieren. Ein Microkernel ist ein Kernel, der mehr oder weniger nur das Nötigste beinhaltet (Task-, Ressourcen-, Thread-Verwaltung, Inter-Process Communication, etc.) und den Rest Userspace-Programmen überläßt. Hurd implementiert all die Dinge wie z.B. Dateisysteme und Netzwerkprotokolle im Userspace, die bei monolithischen Kernels, wie auch Linux einer ist, im Kernelspace laufen. Im Zuge einer möglichen Portierung auf einen anderen Microkernel werden vielleicht auch noch die Gerätetreiber aus dem Microkernel extrahiert und in den Userspace verlagert. Diese Trennung wäre auch deswegen erforderlich, da L4 keine Gerätetreiber mitbringt und darauf ausgelegt ist, dass sie im Userspace realisiert werden.

Hurd ist ein sog. "Multi-Server"-OS. Dies bedeutet, dass das System in viele logische Blöcke, sog. "Server", eingeteilt ist, wobei jeder dieser Server klar definierte Interfaces hat. Diese Interfaces werden in den *.defs-Dateien definiert. Die GNU C Library verwendet nun diese Server, um die Unix System Calls bereit zu stellen. Durch diese Modularität wird eine Flexibilität erreicht, durch die sich Teile des Systems "on-the-fly" austauschen und erweitern lassen können. Diese einzelnen "Server" werden in Hurd als "Translatoren" implementiert, welche eine zentrale Rolle spielen.

Ein Translator ist ein Programm, welches zwischen den Inhalt einer Datei (oder eines Verzeichnisses) und den Benutzer gelegt wird. Wird nun versucht, auf den Inhalt der Datei oder des Verzeichnisses zuzugreifen, wird der Translator ausgeführt; der Benutzer kommuniziert also mit dem Translator. Hinter diesem simpel erscheinenden Konzept verbergen sich erstaunliche Möglichkeiten. Mit Translatoren sind in Hurd z.B. Dateisystemtreiber und auch Netzwerkprotokolle implementiert.

So gibt es den Translator /hurd/ext2fs, mit dem man Dateisysteme in das System einbinden kann, oder auch den Translator /hurd/ftpfs, der es einem erlaubt, entfernte FTP-Server in das System einzubinden und so als ganz normales Verzeichnis erscheinen zu lassen.

Bei den Translatoren wird auch noch differenziert zwischen aktiven und passiven. Der Unterschied besteht darin, daß passive Translatoren erst dann gestartet werden, wenn auch versucht wird, auf sie zuzugreifen. Desweiteren bleiben passive Translatoren zwischen Neustarts des Systems beständig. Dadurch kann man z.B. einmal alle Dateisysteme per passivem Translator in das System einbinden und muß sie nicht in eine /etc/fstab eintragen - das System merkt es sich einfach. Auch läßt sich so mit einem einzigen Befehl, nämlich durch Installieren des /hurd/pfinet-Translators, das Netzwerk einrichten. Aktive Translatoren dagegen werden sofort gestartet, unabhängig davon, ob sie gebraucht werden oder nicht, und bleiben zwischen Neustarts nicht bestehen. Das Installieren von Translatoren mit dem Befehl settrans erfordert keine privilegierten Rechte; die Translatoren laufen mit den Rechten der Datei oder des Verzeichnisses, an die sie gebunden werden.

Derzeitiger Entwicklungsstand

Auch wenn die Hurd-Homepage ein anderes Bild vermitteln mag, da sie nicht gerade aktuell ist und auch das letzte Hurd-Release (0.2) 1997 stattfand, befindet sich Hurd in aktiver Entwicklung. Zentren dieser Entwicklung stellen die Mailinglisten wie debian-hurd und bug-hurd dar. GNU/Hurd- und Debian-Entwickler arbeiten zusammen an einer Debian GNU/Hurd-Distribution. Daher profitiert dieses System auch schon von der leistungsfähigen Debian-Paketverwaltung dpkg.

In letzter Zeit sind in der Hurd-Entwicklung einige interessante Erfolge zu vermerken. Z.B. hat Marcus Brinkmann erfolgreich XFree86 3.3.6 und auch XFree86 4.0 portiert.

GNU/Hurd installieren

Ein GNU/Hurd-System zu installieren, ist nicht schwer. Es gibt zwei übliche Wege:

  • Man entpackt einen großen Tarball auf eine leere Partition
  • Man läßt die sog. "Cross-Installation" von Skripten und mit den einzelnen .deb Paketen durchführen. Bei dieser Methode kommt gleich die Debian-Paketverwaltung dpkg zum Tragen.

Die Installation wird in anderen Dokumenten, wie dem Easy Guide oder den Installations-Hinweisen von Debian ausführlich beschrieben, daher werde ich hier nicht näher darauf eingehen.

Und wie kann ich helfen?

Software entsteht nicht von alleine, sie muß entwickelt werden. Freie Software wird auch nicht von »irgendwelchen Entwicklern« hinter einer Tür entwickelt, von denen man ein Release erwartet; freie Software wird von der Community entwickelt, von uns allen. Man kann auf verschiedene Arten etwas zur Entwicklung beitragen; durch Installieren, Testen und Verwenden des Systems, durch schreiben von Code, durch Fixen von Bugs, durch Portieren von Software, durch Schreiben von Dokumentation, und, und, und... Es gibt viel zu tun. :)

Auch hat man hier die Chance, bei der Entwicklung eines neuen und innovativen Betriebssystems dabei zu sein - ist das nicht cool? :)

Hier einige Mailinglisten:

Auch kann man in #hurd @ OpenProjects (z.B. irc.openprojects.net) einige Leute antreffen; #hurd.de @ IRCnet (z.B. irc.freenet.de) ist dagegen noch ausbaufähig. ;)

Nachwort

Hiermit möchte ich mich bei allen Leuten bedanken, die mir Feedback für diesen Artikel gegeben haben. Auch danke an blackbro und Harzilein aus dem IRC, die sich diesen Text angetan haben: ;)

Ich hoffe, daß ich euch mit diesem Artikel den Hurd etwas näher bringen konnte und damit Interesse für die Entwicklung geweckt habe.

Kommentare (Insgesamt: 0 )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung