Open Source im professionellen Einsatz

Debian GNU/Hurd: Stand der Entwicklung

Hört Hurd

Hurd als freies Betriebssystem geht auf eine Idee von Richard Stallman zurück, die viel älter als Linux ist. Von Debian herausgegeben, können erfahrene Anwender heute die hier beschriebenen interessanten Designkonzepte selbst studieren.

Im Jahr 1998 startete Marcus Brinkmann eine Portierung der Debian-Distribution auf Hurd. Auf diese Weise entkam Hurd auch aus Sicht der Anwender dem reinen Experimentalstadium. Seither ist eine Unmenge von Programmen portiert worden und man konnte auch gleich viele Bugs in Hurd korrigieren. Aktuell füllt Debian GNU/Hurd schon vier CDs. Das System ist bislang aber nur für Unix/Linux-erfahrene Anwender betreibbar; und vom produktiven Einsatz sollten auch die tunlichst absehen. Wer in dieses Raster passt, findet am Ende des Beitrags praktische Hinweise, um Hurd auf dem eigenen PC einen Platz zu reservieren.

Was ist so interessant an diesem freien Betriebssystem? Das Ziel des GNU/ Hurd-Projekts ist es von Anfang an, die Software so weit wie möglich frei von künstlichen Einschränkungen zu halten. GNU-Software schneidet zum Beispiel im Gegensatz zu ihren Unix-Pendants die Eingabezeilen nicht nach einer willkürlichen Anzahl Zeichen ab.

Bei Hurd beschränkt sich das Prinzip von Uneingeschränktheit nicht nur auf die Details der Implementierung, sondern ist nach den jeweils aktuellen Erkenntnissen der Entwickler im Design der Software verwurzelt.

Hurd ist mehr als nur ein Redesign von Unix

Im Wesentlichen ist Hurd eine Sammlung von Daemons, die gemeinsam die Funktionalität bereitstellen, die in traditionellen Systemen der Kernel übernimmt. Die Hurd-Entwickler bezeichnen Daemons auch als Server, da sie auch normalen Benutzerprogrammen ihre Dienste anbieten. Beispielsweise gibt es einen Server für das Ext-2-Dateisystem, einen für den IP-Netzwerk-Stack und einen, der für die Posix-Prozessverwaltung zuständig ist.

Nur die Treiber, die direkt die Hardware ansprechen, sowie einige grundlegende Mechanismen befinden sich noch im Hurd-Kernel. Gegenwärtig wird hierbei eine von den Hurd-Entwicklern angepasste Version des Mach-Mikrokernels (siehe[4]) eingesetzt.

Wo Unix-artige Systeme - wie auch Linux - Systemaufrufe einsetzen, senden Hurd-Prozesse eine Nachricht an einen Server, der diese verarbeitet und das Resultat als Nachricht zurücksendet (siehe Abbildung 1). Für das Nachrichten-Handling zeichnet die Standardbibliothek Glibc verantwortlich. Ein Benutzerprozess braucht sich damit um den Unterschied nicht zu kümmern. Untereinander kommunizieren die Hurd-Server auch über Nachrichten - zumeist direkt, aber auch per Glibc.

Abbildung 1: Ein Vergleich des grundlegenden Aufbaus von Linux und Hurd. Auf der einen Seite ein monolithischer Kernel, auf der anderen mehrere Server und der Mach-Mikrokernel.

Abbildung 1: Ein Vergleich des grundlegenden Aufbaus von Linux und Hurd. Auf der einen Seite ein monolithischer Kernel, auf der anderen mehrere Server und der Mach-Mikrokernel.

Die Server im Userspace bringen mehr Freiheit

Server sind bei GNU/Hurd gewöhnliche Prozesse: Jeder Benutzer hat das Recht sie zu starten. Das verschafft Usern die Gelegenheit, ihre eigene Umgebung zu bauen ohne dabei die Sicherheit des Gesamtsystems zu gefährden. Diese kleine Welt kann wie eine Posix-Umgebung aussehen oder auch vollkommen anders oder eine Mischung aus eigenen und Posix-Komponenten enthalten. Im Regelfall wird man so weit aber gar nicht gehen, sondern lediglich einige Dinge zur Standardumgebung hinzufügen.

Üblich passiert dies mit dem Dateisystem als Namensraum: Man befestigt einen Server an einem Punkt im Dateisystem, der dort seine Dienste anbietet. (Das ähnelt dem Mounten eines Dateisystems unter Linux.) In diesem speziellen Zusammenhang bezeichnen die Hurd-Entwickler einen solchen Server auch als Übersetzer (Translator). Die Funktionalität der Übersetzer ist nicht auf solche Dateisystem-ähnlichen Gebilde beschränkt, sondern könnte auch auf den gängigen Posix-Systemen undenkbare Features liefern.

Durch diese Kombination aus Flexibilität und Kompatibilität entsteht ein System, das aufregende Neuerungen bietet, ohne dass seine Anwender auf Vorzüge wie die Paketverwaltung von Debian-Linux oder die Auswahl an Software verzichten müssen. Dass das nicht blanke Theorie ist, wird in den folgenden Abschnitten die Funktionalität einiger Hurd-Übersetzer exemplarisch zeigen.

Abbildung 2: Charakteristische GNU/Hurd-Kommandos - gepaart mit dem Beweis, dass X11 mit Hurd läuft.

Abbildung 2: Charakteristische GNU/Hurd-Kommandos - gepaart mit dem Beweis, dass X11 mit Hurd läuft.

Diesen Artikel als PDF kaufen

Als digitales Abo

Als PDF im Abo bestellen

comments powered by Disqus

Ausgabe 07/2013

Preis € 6,40

Insecurity Bulletin

Insecurity Bulletin

Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...

Linux-Magazin auf Facebook