Der Unix-Nachfolger Plan 9

Das Betriebssystem 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 nicht Hinz und Kunz Suse Linux installieren konnten, ohne auf große Schwierigkeiten zu stoßen. Als es schon ein Abenteuer war, überhaupt 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".

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 8½, 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.

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].

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 2Gqemu -cdrom plan9.iso -boot d -hda plan9.img

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

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.

Ähnliche Artikel

comments powered by Disqus

Artikel der Woche

Eigene Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Google+

Ausgabe /2019