Aus Linux-Magazin 12/2005

Das Netzwerkbetriebssystem Plan 9

Linux hat seine Wurzeln in den berühmten Bell Labs von AT&T, wo das erste Unix entstand. Dessen Programmierer waren seitdem nicht faul und entwickelten das verteilte Betriebssystem Plan 9, das seit ein paar Jahren als freie Software verfügbar ist.

War früher nicht alles besser? Als noch nicht Hinz und Kunz Suse Linux installieren konnten, ohne irgendwelchen Schwierigkeiten zu begegnen. Als es schon ein Abenteuer war, eine grafische Oberfläche zum Laufen zu bekommen. Wer dieses Gefühl wieder erleben möchte, sollte einen Blick auf Plan 9 werfen [1]. Die Erfahrung erschöpft sich aber nicht in komplizierter Bedienung. Plan 9 implementiert interessante Konzepte moderner Betriebssysteme, die auch Linux beeinflusst haben und es wohl noch weiter tun werden.

Endlich frei

Im Jahr 1993 als proprietäres Produkt von AT&T angelegt, wurde die Lizenz von Plan 9 im Lauf der Jahre immer liberaler. 2003 gab die Firma das Projekt schließlich unter einer anerkannten Open-Source-Lizenz frei. Ein kommerzieller Ableger namens Inferno ist ebenfalls unter einer freien Lizenz erhältlich [2]. Mittlerweile liegt von Plan 9 die vierte Release (4th Edition) vor, die gegenüber der Vorgängerin grundlegende Änderungen erfahren hat. Mehr über den ungewöhnlichen Namen verrät der Kasten „Vom Film“.

Die Distribution steht in Form eines 65 MByte großen gepackten ISO-Image zur Verfügung, das sich als Live-CD und als Installationsmedium eignet. Wer Probleme mit dem Booten von CD hat, findet auf der Website auch einen Generator für zur Hardware passende Bootdisketten. Die Installation ist spartanisch, aber übersichtlich und ziemlich narrensicher (Abbildung 1). Nach jedem Schritt überprüft der Installer den aktuellen Stand und leitet zum nächsten weiter. Trotzdem lässt er den geübten Benutzer die einzelnen Installationsschritte auch gezielt anwählen. Ein Image mit Unterstützung des Vesa-Modus von Grafikkarten findet sich auf [3].

Wer sich nicht an einer richtigen Installation versuchen möchte, aber mehr Erfahrungen sammeln als mit einer Live-CD möglich, sollte es mit einer virtuellen Maschine versuchen, siehe Kasten „Plan 9 virtuell“. Interessierte können außerdem mit einer reinen Userspace-Installation die wichtigsten Plan-9-Tools ausprobieren [4].

Konsequenter als Unix

Grundkonzept von Plan 9 ist das eines verteilten Betriebssystems. Nicht wie in Unix, wo die Netzwerkfunktion über Mechanismen wie Remote Login und Netzdateisystem nachträglich aufgepfropft ist, sondern von Grund auf. So sind prinzipiell alle Ressourcen transparent in einem Plan-9-Netz verteilbar, sodass der Benutzer nicht mitbekommt, dass sie nicht lokal lagern. So kennt Plan 9 neben den verbreiteten Dateiservern auch Authentifizierungs- und CPU-Server. Das ermöglicht zum Beispiel die Implementierung von Grid-Systemen wie des 9grid, dessen deutscher Ableger 9grid.de auch Probe-Accounts anbietet.

Grundlage dafür ist eine konsequente Umsetzung des Unix-Paradigmas „Everything is a File“ (Alles ist eine Datei). Unix war durch nachträgliches Hinzufügen von Funktionalität mehr und mehr zu Ad-hoc-Änderungen gezwungen, die der reinen Lehre widersprechen. Ein Beispiel ist das unselige Socket-Interface, das andere Lese- und Schreibfunktionen verwendet als normale Dateien.

Plan 9 macht damit Schluss und stellt Systemschnittstellen als Dateien zur Verfügung, zum Beispiel »/net/tcp« und »/net/udp« als Netzwerk-Interfaces. Die meisten Systemdienste arbeiten dementsprechend nach dem Prinzip von Servern, die zur Interaktion wiederum Dateien anbieten.

So fehlt in Plan 9 auch das gewohnte FTP-Programm. Stattdessen mountet der Server »ftps« das Verzeichnis auf dem Server nach »/n/ftp«. Die Einbindung von CD-ROMs übernimmt der Server »9960fs«. Schließlich hat Plan 9 auch als eines der ersten Betriebssysteme das Proc-Dateisystem implementiert, das die Steuerung von Prozessen ebenfalls über Files ermöglicht.

Grundlage für jede Netzwerkfunktion ist das Plan-9-Dateiprotokoll 9P, das aus knapp 30 Protokoll-Messages besteht. Auch für Linux existiert eine Implementierung [5], die seit Version 2.6.14 fester Bestandteil des Kernels ist. Damit steht der Zusammenarbeit von Linux und Plan 9 nichts mehr im Weg.

Namespaces

Das puristische Dateikonzept treibt Plan 9 mit der Idee von so genannten Namespaces noch einen Schritt weiter. Das klassische Unix verwaltet alle Ressourcen in nur einem Namensraum, in dem zum Beispiel »/dev/tty1« immer dasselbe Terminal bezeichnet. In Plan 9 dagegen haben etwa Anwendungen ihren eigenen Namensraum, sodass »/dev/window« sich jeweils auf das eigene Fenster bezieht.

In diesem Zusammenhang stehen auch die Union-Mounts, die in Plan 9 ebenfalls die Verwaltung von Ressourcen wie Dateien und Verzeichnissen vereinfachen. Sie mounten mehrere Directories gemeinsam in eines. Damit wird es beispielsweise möglich, Verzeichnisse mit ausführbaren Programmen auf dem Fileserver in das lokale Verzeichnis »/bin« zu mounten – so fällt die bekannte Fummelei an der »PATH«-Variablen weg. Linux hat erst jüngst dieses Konzept mit dem Overlay-Dateisystem Union-FS übernommen [6].

Grafik mit Rio

Anders als X11 bei Unix ist die grafische Oberfläche direkt in Plan 9 integriert, was das Programmiermodell wesentlich vereinfacht. Das zugrunde liegende Modell orientiert sich an Niklaus Wirths Oberon [7], das wiederum Anleihen beim Cedar-System von Xerox macht. Es bietet ein einfaches Programmiermodell mit einem Datei-Interface und elementaren Operationen. Den Screenshot einer Anwendung erstellt einfach der Befehl »cat /dev/screen > Ausgabe«. Die Implementation von Rio ist dagegen eher trickreich: Es besteht aus nebenläufigen (concurrent) Prozessen und Threads, die sich gegenseitig aufrufen.

Rio verabschiedet das klassische zeilenorientierte Terminalmodell, das noch aus Zeiten stammt, in denen Drucker das Echo von Benutzereingaben tatsächlich zeilenweise ausgaben. Bei Linux findet sich dieses Erbe noch in jedem Terminalfenster vom Xterm bis zur KDE-Konsole. So ist die Eingabe von Befehlen an beliebigen Stellen im Fenster möglich: einfach den Befehl markieren und mit der Maus abschicken. Als avanciertes Fenstersystem macht es ohnehin ausgiebig Gebrauch von allen Maustasten.

Das Programm Acme ist eine ungewöhnliche Mischung aus Shell, Editor und Window-System. Es funktioniert nach dem beschriebenen Prinzip, erweitert die Terminalfenster aber noch um elementare Menüs und leitet Ausgaben in neue Unterfenster (Abbildung 2). Von diesem Editor existiert eine X11-Implementation namens Wily, die auf der mitgelieferten Bibliothek 9lib basiert [8].

Trotz seines nicht mehr ganz jugendlichen Alters beherrscht Plan 9 mit Rio auch mehrsprachige Programme, weil es von Grund auf Unicode-Zeichensätze benutzt. Als Encoding verwendet es UTF-8, das sogar eine Erfindung der Plan-9-Programmierer um Rob Pike ist [9].

Abbildung 1: Die so genannte grafische Installation zeigt unter dem textbasierten Installationsmenü die Systemlast und ein Log-Fenster. Die nötigen vier Partitionen schlägt das Tool selbst vor.

Abbildung 1: Die so genannte grafische Installation zeigt unter dem textbasierten Installationsmenü die Systemlast und ein Log-Fenster. Die nötigen vier Partitionen schlägt das Tool selbst vor.

Mit Sicherheit

Plan 9 kennt keinen Superuser Root und somit auch keine SUID-Programme, die Unix so viele Sicherheitsprobleme beschert haben. Wie bei Kerberos [10] schickt ein verteiltes Plan-9-System keine Passwörter übers Netz, sondern verschlüsselte Tickets. Um einen Benutzer anzulegen, aktiviert der Administrator die Konsole des Fileservers Fossil mit »con /srv/fscons« und gibt den Befehl »uname Benutzer Benutzer« ein. Der neue User wiederum initialisiert seine Umgebung beim ersten Einloggen mit »/sys/lib/newuser«.

Vom Film

Der Name des freien Netzbetriebssystems stammt aus dem Titel des Trash-Kultfilms „Plan 9 from Outer Space“ des genialen Hollywood-Dilettanten Ed Wood. Er wurde laut FAQ [12] in der Tradition der Bell Labs ausgesucht, „Namen zu vergeben, die Marketing-Leute zusammenzucken lassen“.

Auch andere Plan-9-Programme beziehen ihre Namen aus der Popkultur, so der Editor Acme von den Warner-Comics mit dem Roadrunner. Das alte Window-System hieß nach einem Fellini-Film 81â”2, was zu der unterhaltsamen Herausforderung führte, zum Aufruf das entsprechende Zeichen mit einer normalen Tastatur zu erzeugen. Hintergründe zur Namensgebung anderer Komponenten liefert ebenfalls die FAQ.

Natürlich bringt Plan 9 auch Entwicklungstools für die Programmiersprache C mit. Der Compiler auf der x86-Architektur heißt »8c«, der Linker »8l«, das Build-Programm »mk«. Um damit einen neuen Kernel zu kompilieren, wechselt der Sysop ins Verzeichnis »/sys/src/9/pc« und editiert das passende Konfigurationsfile, das je nach gewünschter Ausstattung anders heißt: im einfachsten Fall nur »pc«, »pcauth« für einen Authentifizierungsserver, »pcf« für einen Fossil-Fileserver und so fort. Den so konfigurierten Kernel übersetzt und installiert er mit »mk CONF=pcf install«. Zum Booten muss der Kernel in die 9fat-Bootpartition wandern, die der Befehl »9fat:« aktiviert. Dort liegt auch die Boot-Konfigurationsdatei »plan9.ini«.

Abbildung 2: Ein Plan-9-System im Einsatz. Hinter dem Maskottchen Glenda versteckt sich ein mehrfach geteiltes Fenster des Editors Acme, erkennbar an den Menüpunkten »New«, »Cut«, »Paste« und so fort.

Abbildung 2: Ein Plan-9-System im Einsatz. Hinter dem Maskottchen Glenda versteckt sich ein mehrfach geteiltes Fenster des Editors Acme, erkennbar an den Menüpunkten »New«, »Cut«, »Paste« und so fort.

Nicht alles Gold

Dokumentationen zu den Tools und zum Vorgehen finden sich in Manpages, die auch online verfügbar sind, und im Plan-9-Wiki. Leider hat sich bei der 4th Edition einiges geändert, sodass nicht alle Informationen auf dem letzten Stand sind. Es empfiehlt sich also, stets auf die Angabe der Version zu achten.

Allen tollen Konzepten zum Trotz ist auch Plan 9 nicht perfekt. So scrollen die Rio-Fenster 9term oft nicht richtig und zeigen den gerade relevanten Text nicht an. Acme zeigt solche Mängel weniger. Das ganze System ist auf eine grafische Benutzeroberfläche ausgerichtet, sodass viele Funktionen auf der Textkonsole nicht funktionieren, zum Beispiel das Abbrechen von Prozessen mit der [Entf]-Taste. Ein Problem ist auch die recht kleine Benutzer-Community Comp.os. Plan9, die zwar aktiv an der Weiterentwicklung arbeitet, aber nur über beschränkte Ressourcen verfügt.

Dass Plan 9 bisher keine große Verbreitung gefunden hat, liegt sicherlich auch an der früheren Lizenzpolitik, die eine freie Weitergabe verhinderte. Heute ist es für viele Entwickler freier Software wenig interessant, weil mit Linux ein Betriebssystem existiert, das zwar Unix-Ballast mit sich herumschleppt, aber ansonsten gut funktioniert – eine Sicht, die Open-Source-Fürsprecher Eric Raymond in seinem Online-Buch “The Art of Unix Programming” vertritt [11].

Plan 9 virtuell

Wer Plan 9 nicht gleich eine ganze (primäre) Partition opfern möchte, kann mit ihm auch in verschiedenen Emulatoren experimentieren. Einfach geht es mit VMware, für das auf der Plan-9-Site sogar ein fertiges Image liegt. Damit wird jede Installation überflüssig, einfach das Image herunterladen, in die Virtual Machine einbinden und booten. Allerdings läuft das Image nur mit VMware 4. Mit Version 5 funktioniert Plan 9 nach Angaben seiner Entwickler gar nicht.

Sie empfehlen stattdessen den freien PC-Emulator Qemu, der mit dem beschleunigenden, allerdings nicht freien Kernelmodul Kqemu fast so schnell läuft wie VMware. Qemu kann direkt mit dem heruntergeladene Plan-9-ISO-Image booten. Zuerst legt man mit dem Befehl »qemu-img« ein passendes Festplatten-Image an und bootet dann vom ISO:

qemu-img create plan9.img 2G
qemu -cdrom plan9.iso -boot d -hda plan9.img

Nach Abschluss der einige Stunden dauernden Installation bootet »qemu -boot c plan9.img« das neue System.

Alternativ gibt es bei [13] ein DVD-Image von Xenoppix, einer Knoppix-Variante, die den Virtual Machine Monitor Xen integriert und damit NetBSD und Plan 9 bootet.

Infos

[1] Plan 9: [http://www.cs.bell-labs.com/plan9distl]

[2] Inferno von Vita Nuova: [http://www.vitanuova.com]

[3] Vesa-Image: [http://www.9grid.de]

[4] Plan 9 from Userspace: [http://swtch.com/plan9port]

[5] V9FS für Linux: [http://v9fs.sourceforge.net]

[6] Artikel zu Union-FS und anderen Overlay-Dateisystemen: Linux-Magazin 10/04, S. 34 und 42

[7] Oberon: [http://www.oberon.ethz.ch]

[8] Acme-Clone Wily: [http://sf.net/projects/wily]

[9] Geschichte von UTF-8: [http://www.cl.cam.ac.uk/~mgk25/ucs/utf-8-history.txt]

[10] Thorsten Scherf, „Misstrauische Tickets“: Linux-Magazin 05/05, S. 32

[11] Eric Raymond über Plan 9: [http://www.faqs.org/docs/artu/plan9.html]

[12] Plan-9-FAQ: [http://www.cs.bell-labs.com/wiki/plan9/FAQ]

[13] Xenoppix: [http://unit.aist.go.jp/itri/knoppix/xen]

LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben