Zum Hauptinhalt Zur Navigation

9Front: Der unterschätzte Beinahe-Unix-Nachfolger

Ein Betriebssystem mit dem Namen des schlechtesten Films aller Zeiten gegen das erfolgreichste OS aller Zeiten: Nach 30 Jahren Entwicklungszeit hat Plan 9 Unix nicht abgelöst – im Gegenteil.
/ Christoph Reiter
65 Kommentare News folgen (öffnet im neuen Fenster)
"Hallo Welt!" auf 9Front (Bild: Screenshot Golem.de)
"Hallo Welt!" auf 9Front Bild: Screenshot Golem.de

Vor 30 Jahren begannen Entwickler der Bell Labs, ein Betriebssystem zu entwickeln, das Unix ablösen sollte. Sie benannten es nach dem schlechtesten Film aller Zeiten: Plan 9 (from Outer Space)(öffnet im neuen Fenster) . Heute entwickelt eine kleine Fangemeinde immer noch daran. Unix und seine Verwandtschaft in Form von GNU/Linux und Android sind erfolgreicher denn je, sein designierter Nachfolger dümpelt trotz überragender Netzwerkfähigkeiten in den Tiefen des Internets herum. Dabei ist das System eigentlich ziemlich interessant!

Wie es dazu kam

Plan 9 wurde in den 1980er Jahren von den Bell Laboratories entwickelt. Maßgeblich an der Entwicklung beteiligt waren Rob Pike, Ken Thompson und Dennis Ritchie, die bereits den Grundstein für Unix gelegt hatten und die Programmiersprache C entwickelten. Plan 9 weist in der Konzeption sehr viele Parallelen zu Unix auf, sollte es aber vor allem in Bezug auf die Netzwerk- und Grafikfähigkeiten verbessern.

Auf Benutzerebene unterscheiden sich Unix und Plan 9 deutlich. Durch die Kommerzialisierung von Unix und die damit einhergehenden restriktiven Lizenzen fehlte ein Betriebssystem als Forschungsplattform. Plan 9 füllte diese Lücke, legte den Status eines Forschungsobjekts allerdings nie ab. Mitte der 1990er Jahre wurde es von GNU/Linux verdrängt, das aufgrund seiner freien Lizenz leichter erhältlich und veränderbar war.

Alles ist ein Dateisystem

Plan 9 erweitert das Konzept "Alles ist ein Dateisystem" , das schon bei Unix in Grundzügen vorhanden war. Während es bei Unix und dem davon abgeleiteten Linux noch sogenannte IOCTL's, gerätespezifische Treiberaufrufe, gibt, werden bei Plan 9 alle Treiberfunktionen und Ressourcen im Dateisystem abgebildet. Die Grundlage dafür bildet das 9P-Protokoll(öffnet im neuen Fenster) .

Ein weiteres wichtiges Designkonzept von Plan 9 ist die Auslegung auf verteiltes Rechnen. Da alles im Dateisystem abgebildet wird, ist es möglich, Prozesse eines entfernten Rechners in das lokale Dateisystem zu mounten und mit ihnen zu interagieren, als ob sie lokale Prozesse wären. So wird beispielsweise jeder erreichbare Server als Ordnerstruktur im Dateisystem dargestellt.

Von Plan 9 zu 9Front

2011 begann eine Gruppe von Entwicklern , den Quellcode unabhängig von den inzwischen bei der Entwicklung inaktiven Bell Labs weiterzuentwickeln und gründete unter dem Motto "The front fell off" einen Fork namens 9Front. Sie arbeiten an 9Front seither meist in ihrer Freizeit als Hobby oder um sich mit der Entwicklung von Betriebssystemen abseits des Mainstreams auseinanderzusetzen. Die Community rund um 9Front dürfte ihrem Fork eine große Portion des Humors der ursprünglichen Entwickler mitgegeben haben, wie der Inhalt des wichtigsten Nachschlagewerkes, den " Frequently Questioned Answers(öffnet im neuen Fenster) ", sowie die Namen der Releases zeigen.

Spezielle Hardware oder virtualisiert

Um das System auszuprobieren, wurde das aktuelle Release "Please excuse me the outflow" heruntergeladen(öffnet im neuen Fenster) . Da 9Front offiziell nur ganz bestimmte Hardware unterstützt, lohnt es sich, vorher einen Blick in die Frequently Questioned Answers der 9Front-Hompage zu werfen. Dort sind alle unterstützten Geräte aufgelistet(öffnet im neuen Fenster) , unter anderem der Bastelrechner Raspberry Pi. Da dem Autor kein vollständig unterstütztes System zur Verfügung stand, wurde auf QEMU/KVM zurückgegriffen.

Die Installation geht mit Hilfe der FQA4(öffnet im neuen Fenster) und den sinnvoll gesetzten Standardeinstellungen einfach von der Hand. Wären nicht die für Linux-Nutzer seltsam anmutenden Gerätenamen wie /dev/sdD0/, man könnte das Setup von 9Front nicht von dem eines Arch Linux oder Gentoo unterscheiden. Die einzigen Schwierigkeiten ergaben sich im Zusammenhang mit GPT-Partitionstabellen und EFI, da 9Front mit QUEMU/KVM nicht startet, falls beim Setup eine GPT-Partitionstabelle ausgewählt wurde.

Ungewohnte Benutzeroberfläche

Nach dem ersten Neustart tut sich im ersten Augenblick nicht viel. Wenn man allerdings dem Bootloader mittels des Kommandos "boot" mitteilt, er möge das System starten, erscheint nach sehr kurzer Zeit der bereits von der Installation bekannte Bildschirm des Fenstermanagers Rio. Er wird bei einer Standardinstallation automatisch gestartet und ermöglicht ein komfortableres Arbeiten als mit der ebenfalls vorhandenen Textkonsole.

Rio unterscheidet sich in der Bedienung sehr stark von allen gängigen Fenstermanagern wie etwa denen von Windows, Mac OS X, KDE oder Gnome. Aber im Grunde stellt er wie alle anderen Fenstermanager den Programmen einen rechteckigen Bereich zur Verfügung, in dem Text oder Grafiken eingeblendet werden können.

Die Bedienung ist auf die Benutzung einer Drei-Tasten-Maus ausgelegt und geht nach einer, zugegebenermaßen etwas längeren, Eingewöhnungszeit recht flott von der Hand. Mit der rechten Maustaste wird ein Kontextmenü aufgerufen, das es ermöglicht, Fenster zu verschieben, die Größe zu ändern sowie Fenster zu öffnen und zu schließen. Die linke Maustaste aktiviert Fenster und ermöglicht es, Text zu markieren. Die mittlere Maustaste ruft ein programmspezifisches Kontextmenü auf, mit dem im Terminal Text kopiert, genannt "Snarf", und eingefügt werden kann.

Hallo Welt!

Die erste Herausforderung stellt das Erstellen einer Textdatei mit dem Editor und Dateimanager acme dar. Die Bedienung dieses Editors erfordert nur eine Handvoll Befehle, die kombiniert mit der Plan-9-Philosophie "Alles ist eine Datei" ein sehr mächtiges Werkzeug ergeben.

Um eine einfache Textdatei mit dem Inhalt "Hallo Welt!" zu erstellen, sind folgende Schritte nötig:

Texteditor mit dem Befehl acme starten.
Mit einem Klick auf "New" mit der mittleren Maustaste ein neues Unterfenster öffnen.
Den Text "Hallo Welt!" eingeben.
Mit einem Klick in die Namenszeile einen Dateinamen vergeben.
Die Datei mit einem Klick der mittleren Maustaste auf "Put" speichern.

Nun kann mit Hilfe des Terminals und cat, dem Befehl zum Ausgeben von Dateien, der Inhalt der Datei überprüft und auf das Terminal ausgegeben werden.

Ein Unix-Profi wird sofort die Terminalbefehle wie rm, ls, mv, touch, man und viele andere suchen, und auch finden. Die wichtigsten sind vorhanden und funktionieren in den Grundfunktionen wie ihre Unix-Pendants, verzichten aber stellenweise bewusst auf Zusatzfunktionen(öffnet im neuen Fenster) .

Hallo Welt, diesmal aber richtig!

Weiter geht es mit dem ersten selbst geschriebenen Programm auf einem unbekannten Betriebssystem. Der Weg zu einem Hallo-Welt-Programm führt zuerst wieder zum bereits bekannten Editor acme. Dort lässt sich der erste Code schreiben. Also schnell ein Hallo-Welt-Programm eingeben, gcc aufrufen und ... "directory entry not found". Doch keine so einfache Aufgabe, da 9Front den weit verbreiteten C-Compiler gcc nicht enthält. Zum Glück findet man in der Dokumentation schnell den richtigen C-Compiler namens 8c.

Der Anleitung kann ebenfalls entnommen werden, dass bei 9Front jeder Schritt im Kompiliervorgang extra ausgeführt werden muss. Das bedeutet: zuerst den Compiler mit 8c helloworld.c aufrufen, dann den Linker mit 8l helloworld.8 – und erst an diesem Punkt erhält man eine ausführbare Datei für 9Front.

Völlig losgelöst, weg mit den Altlasten

9Front unterstützt im Gegensatz zum Vorgänger Unix den Ansi-C-Standard nur optional über eine Zwischenschicht. Der Verzicht auf diese Abwärtskompatibilität ermöglicht es den Entwicklern, gänzlich neue Wege zu gehen.

Dem aufmerksamen Programmierer fällt beim Hallo-Welt-Programm sofort auf, dass anstelle von stdio.h bei 9Front die Header u.h und libc.h eingebunden werden. Der Header u.h muss dabei von allen Programmen eingebunden werden, da er alle Informationen über die verwendete Prozessorarchitektur enthält. In der Bibliothek libc.h sind die grundlegenden Funktionen des Betriebssystems sowie eine Reihe anderer nützlicher Funktionen zusammengefasst.

Damit hat man bereits eine Reihe mächtiger Werkzeuge zur Verfügung, wie zum Beispiel die vollständige Unterstützung für UTF-8, die bei anderen Betriebssystemen durchgängig mehr Aufwand erfordert.

Eine weitere Änderung gegenüber Unix ist die Abkehr von Fehlercodes. Während bei Unix bei jedem Programmaufruf mit einer Zahl angezeigt wird, ob das Programm erfolgreich beendet wurde, kann 9Front mit einer Zeichenkette über Erfolg oder Misserfolg des Programmaufrufs informieren. Dadurch kann dem Benutzer der Grund eines Fehlers viel einfacher und ohne, dass er in der Dokumentation nachschlagen muss, mitgeteilt werden.

Richtig praktisch ist, dass 9Front im Ordner /sys/doc/ sehr viel Dokumentation über das System und seine Bedienung mitliefert. Die dort vorhanden Post-Script-Dateien können mit dem Programm Page dargestellt werden.

Auch für Entspannung ist gesorgt

Obwohl Spiele sicher nicht der Hauptbestandteil eines Betriebssystems sind, ist auch bei 9Front für Unterhaltung gesorgt. So finden sich im Ordner /bin/games/ unter anderem ein Tetris-Klon namens 4s sowie 5s, eine Abwandlung davon, bei der die Blöcke aus fünf Quadraten zusammengesetzt sind. Zu den weiteren zur Verfügung stehenden Unterhaltungsmöglichkeiten zählen Mahjongg, eine optisch sehr gelungene Umsetzung des gleichnamigen Brettspiels sowie eine Portierung des Spieleklassikers Doom, bei dem allerdings aus rechtlichen Gründen einige Spieldateien erst aus dem Internet heruntergeladen werden müssen. Des weiteren sind die Emulatoren nes, snes und gba vorhanden. So können Spiele der gleichnamigen Nintendo-Spielekonsolen wiedergegeben werden.

Die vollständige Auflistung der vorhandenen Spiele, inklusive einer kurzen Beschreibung, kann über den Befehl man games aufgerufen werden.

Fast niemand benutzt 9Front

Wer verwendet 9Front eigentlich? Die Antwort lautet: fast niemand. Die einzigen Server, die während der Recherchen zu diesem Artikel unter 9Front liefen, hosten, wenig verwunderlich, die Webseiten von 9front.org(öffnet im neuen Fenster) und cat-v.org(öffnet im neuen Fenster) . Beides Webseiten, die sich intensiv mit Plan 9 und ähnlichen Betriebssystemen auseinandersetzen und von ebensolchen Leuten betrieben werden.

Trotz oder sogar wegen seiner immer noch revolutionären Konzepte im Kern des Betriebssystems ist es in Bedienung und Oberfläche in den 1990er Jahren steckengeblieben. Denn um die Bedienung zu verbessern und damit Büroarbeiten durchzuführen, müsste eine Vielzahl an Bibliotheken und Programmen portiert werden. Diese Portierungen sind aufgrund der von den verbreiteten Windows- und Unix-Systemen stark abweichenden Architektur sehr arbeits- und damit kostenintensiv. Damit wird sich 9Front in absehbarer Zeit wahrscheinlich nicht gegen die besser aussehende und zu bedienende Konkurrenz im Büro durchsetzen.

Server oder ähnliche Systeme ohne direkte Benutzerinteraktion sind wahrscheinlich die einzigen Systeme, auf denen der Einsatz von 9Front zurzeit sinnvoll ist. Durch das schlanke System und die sehr guten Netzwerkfunktionen wären auch Spezialanwendungen im Internet of Things denkbar.

Fazit

Den Plan-9- und 9Front-Entwicklern ist es durchaus gelungen, die Konzepte von Unix nochmals weiterzuentwickeln. Durch vollständige Netzwerktransparenz eröffnen sich für experimentierfreudige Programmierer sehr interessante Möglichkeiten, einen Rechnerverbund zu nutzen und sich dabei mit Distributed Computing auseinanderzusetzen.

Die Benutzeroberfläche beschränkt sich auf das Nötigste und ermöglicht durch die effiziente Nutzung aller drei Maustasten nach kurzer Einarbeitungszeit ein sehr schnelles Arbeiten. Da 9Front explizit nicht für Endbenutzer entwickelt wird, fehlen Werkzeuge für diese Zielgruppe fast gänzlich. So gibt es nur den minimalistischen Webbrowser Mothra, die typischen Office-Programme fehlen.

Beeindruckend ist die Reaktionszeit des Fenstermanagers, er reagiert auf alle Eingaben ohne Verzögerung. Design und Bedienungskonzept dürften allerdings von den meisten Benutzern als nicht mehr zeitgemäß empfunden werden.

Die hervorstechendste Eigenschaft ist das konsequent umgesetzte Konzept, alles im Dateisystem abzubilden. Ein Teil dieses Konzepts wurde auch von Linux übernommen. So haben etwa procfs zum Verwalten von Prozessen unter Linux und sysfs zum Konfigurieren des Linux-Kernels ihren Ursprung bei Plan 9.

Damit kommt 9Front seinem Ziel, alte Probleme zu vermeiden und Neuland zu betreten, sehr nahe.

Die Zielgruppe dieses Betriebssystems sind eindeutig Freunde exotischer Betriebssysteme und Computerfreaks. Der durchschnittliche Benutzer wird jedoch in Panik geraten, wenn sein bekanntes Windows oder OS X durch 9Front ersetzt wird.

Wer sich tiefer mit dem System auseinandersetzen möchte, findet eine umfassende Einführung unter fqa.9front.org(öffnet im neuen Fenster) .


Relevante Themen