GNU HURD: Veränderte Visionen und verworfene Versprechen

HURD sollte der Kernel des GNU-Betriebssystems werden – mit revolutionären Konzepten, die dem Anwender mehr Sicherheit, Flexibilität und Freiheit bringen. Nur materialisieren konnte sich die Vision nie so richtig.

In Pocket speichern vorlesen Druckansicht 128 Kommentare lesen
Lesezeit: 15 Min.
Von
  • Dr. Oliver Diedrich
Inhaltsverzeichnis

Die Arbeiten am GNU-Betriebssystem begannen 1984 und waren bereits sieben oder acht Jahre im Gange, als Linux die Bühne betrat. „Wenn der GNU-Kernel im vergangenen Frühling fertig gewesen wäre,“ so Linus Torvalds in einer Nachricht an Andy Tanenbaum vom Januar 1992, „dann hätte ich mein Projekt gar nicht erst gestartet. Aber er war es nicht und ist es immer noch nicht.“

Torvalds hatte den monolithischen Linux-Kernel mit dem GNU-Toolset gebaut und Linux nahm die Stelle im Herzen des GNU-Betriebssystems ein, die eigentlich HURD einnehmen sollte . Die Entscheidung für einen monolithischen Kernel war zwar nicht die optimale Lösung, bot aber letztlich den schnellsten Weg zu einem funktionierenden System. Außerdem konnten die Linux-Entwickler von der vorhandenen GNU-Toolchain profitieren.

Ted Ts‘o, einer der frühen Linux-Entwickler, sah es damals auf der Mailingliste comp.os.minix ganz pragmatisch: „Linux ist da und GNU nicht. Und Leute haben wesentlich länger am HURD gearbeitet als Linus an Linux.“

HURD blieb aber Gesprächsthema und stand im Mittelpunkt vieler Pläne. Die praktische Arbeit am Kernel wurde jedoch zu häufig von geänderten Visionen und verschwundenen Versprechen unterbrochen. Während die Linux-Entwickler ihre Fehler mit Workarounds in den Griff bekamen, wollten es die HURD-Architekten gleich richtig machen. In ihrer endlosen Suche nach dem perfekten Kernel schienen sie jedoch die Sicht auf die Versprechen von HURD aus dem Auge verloren zu haben.

GNU-Gründer Richard Stallman

Richard Stallman erinnert sich daran, dass die Leute, als er das GNU-Projekt im September 1983 ins Leben rief, kopfschüttelnd sagten: „Da hast du dir aber was vorgenommen. Du kannst unmöglich ein komplettes System wie Unix auf die Beine stellen. Schön wäre es natürlich, aber eigentlich ist es ein hoffnungsloses Unterfangen.“

Seine stoische Antwort war aber, dass er es trotzdem machen wollte: „Hier spiele ich meine Stärken aus. Ich kann sehr gut sehr stur sein und alle möglichen Gründe ignorieren, wieso ich meine Ziele anpassen sollte. Gründe, die andere Leute in die Knie zwingen würden.“

Um freie Software hatten sich damals noch nicht, so wie heute, Communities gebildet, und die Kernideen waren noch neu und unerprobt. In diesen Anfangstagen stand Stallman oft isoliert da, wie er in seiner Geschichte des GNU-Projekts feststellt:

„Bei einem Großteil meiner Arbeit war ich unsicher, ob ich es überhaupt schaffe. Und bei dem, was ich zustande gebracht hatte, war ich unsicher, ob es für meine Ziele reicht. Aber versucht habe ich es trotzdem, denn es stand außer mir niemand zwischen dem Feind und meiner Stadt. Zu meiner eigenen Überraschung war ich manchmal erfolgreich.“

Bevor ein Kernel entstehen konnte, mussten erst einmal die Komponenten geschrieben werden, die einen Kernel überhaupt möglich machten – die Editoren und Compiler, bash, make, autoconf, emacs, gcc und viele andere Tools. Der Verkauf der Software deckte die Kosten für das Schreiben der anderen Teile. Deren Entwicklungsgeschichte und die Hindernisse, denen Stallman unterwegs begegnete – insbesondere bei der Entwicklung von GNU Emacs –, führten zu einem verhärteten philosophischen Konzept hinter freier Software und zu ihrer Einkapselung in die GPL, die Stallman 1989 veröffentlichte. Bis dahin hatten auch die verschiedenen Teile des Puzzles – die Werkzeuge, Tools und die Philosophie der freien Software – ihren Platz eingenommen. Das letzte Stück sollte der Kernel werden.

Anfangs reichte es, dass der Kernel frei sein würde, denn das GNU-Projekt verfügte gar nicht über genug Ressourcen, alle Software komplett selbst zu schreiben. In dem Moment, als ein Compiler benötigt wurde, versuchte Stallman also, einen bereits existierenden zu finden.

„Kurz vor Beginn des GNU-Projekts“, schrieb Stallman später, „hörte ich vom Free University Compiler Kit, auch bekannt als VUCK (das niederländische Wort für "frei" schreibt sich mit einem "V") ...“

„Ich schrieb an den Autor mit der Bitte, die Software im GNU-Projekt verwenden zu dürfen. Er antwortete jedoch spöttisch mit dem Hinweis, die Universität sei zwar frei, der Compiler jedoch nicht. Da entschied ich mich dafür, dass mein erstes GNU-Programm ein mehrsprachiger Multiplattform-Compiler sein würde. Das wurde der spätere gcc.“

Das Konzept für GNU/HURD entstand auf ähnliche Art und Weise. Zuerst schaute sich Stallman nach einem fertigen Kernel aus der Public Domain um und landete bei Trix, einem an Stallmans Heimstätte MIT entwickelten Netzwerkbetriebssystem.

Im GNU-Manifesto von Anfang 1984 schreibt Stallman, dass „ein erster Kernel [Trix] existiert, aber noch viel mehr Features nötig sind, um Unix zu emulieren. Wenn der Kernel und der Compiler fertig sind, wird man ein GNU-System vertreiben können, das als Basis für die Softwareentwicklung dienen kann.“

Im Dezember hatte Stallmans Free Software Foundation (FSF) mit den notwendigen Änderungen am Trix-Kernel angefangen. Ein halbes Jahr später jedoch war die FSF mit Professor Rashid von der Carnegie-Mellon-Universität über eine mögliche Zusammenarbeit bei der Entwicklung des Mach-Kernels im Gespräch. Stallman interessierte sich für die technischen Vorteile eines Mikrokernels und das Mach-Projekt schien für sein Vorhaben gut zu passen. Trotzdem kam die Arbeit nur schleppend voran und auch die GNU-Toolchain war noch nicht fertig.

Erst drei Jahre später, im „Gnusletter“ vom Januar 1990, gab die FSF zu, dass sie „gerade keine Kernelarbeit“ mache. Die Begründung im Newsletter: „Es ist wenig sinnvoll, jetzt ein eigenes Kernelprojekt zu starten, während wir immer noch hoffen, auf Mach aufsetzen zu können.“