# Plan 9 (Betriebssystem)

Plan 9 from Bell Labs ist ein Betriebssystem, das in den späten 1980er Jahren von den Bell Laboratories entwickelt wurde, die zuvor bereits Unix entwickelt hatten. Es gilt als Versuch, das Prinzip Everything is a file konsequent umzusetzen. Benannt ist es nach dem „schlechtesten US-Film aller Zeiten“ Plan 9 from Outer Space (1959) von Ed Wood, in dem die Außerirdischen Tote wieder zum Leben erwecken (es finden sich in Plan 9 weitere Anspielungen auf das Werk von Ed Wood, z. B. das Maskottchen Glenda, das auf den Film Glen or Glenda (1953) zurückzuführen ist).
Plan 9 ist als Plattform für Forschungsprojekte in den Bereichen (Unix-)Betriebssysteme und Netzwerke einsetzbar.
2011 spaltete eine Gruppe von Plan-9-Entwicklern aus Unzufriedenheit mit der Entwicklung unter dem Motto „The Front fell off“ einen Fork des Systems unter dem Namen Plan 9 Front ab.

## Merkmale und Aufbau

Ein fertig installierbares System existiert zurzeit nur für die x86-Architektur („i386“ und amd64) und Arm, im Speziellen gibt es auch ein SD-Karten-Abbild für den Raspberry Pi. Zusätzlich gibt es Portierungen auf die Prozessorarchitekturen m68k (spezifisch: 68020 und 68040), MIPS, Alpha, 32-Bit-PowerPC und SPARC, wobei jedoch nicht jedes Computersystem gleich gut unterstützt wird. Verschiedene Versionen von Plan 9 laufen u. a. auf der NeXTstation, der MIPS Magnum 3000 (eine Workstation), dem SGI Challenge M (ein Server) und dem iPAQ Pocket PC (hier Bitsy genannt). Für weitere Architekturen, darunter Intel i960 und AMD 29240, wurde zwar der Compiler portiert, es gibt jedoch kein lauffähiges Betriebssystem. Zusätzlich existiert eine Portierung auf die virtuelle Maschine Xen. Das System ist in einem Dialekt von ISO-C geschrieben und unterstützt UTF-8 (Unicode). Für eine optimale Bedienung ist eine Drei-Tasten-Maus erforderlich. Plan 9 enthält u. a. das Fenstersystem rio, den Editor sam, eine Art Fenster-/Dateimanager namens acme und den Kommandozeileninterpreter rc. Eine Reihe Softwarepakete wie Perl, Python und TeX wurden portiert und sind separat erhältlich.
Die Entwickler wollen mit Plan 9 eine Antwort auf die Frage „Was versucht Unix wirklich zu erreichen?“ geben. In einem Satz lautet diese Antwort:
    Repräsentiere alle Ressourcen als Dateien, ohne zwischen lokalen und nicht-lokalen Objekten zu unterscheiden.
Das Konzept der Datei wurde dahingehend erweitert, dass alle Ressourcen (Dateien, Bildschirme, Benutzer, Computer usw.) einen Namen haben und wie Dateien angesprochen werden. Es gibt ein Standardprotokoll namens 9P, um diese Ressourcen anzusprechen. Weiterhin werden alle Dateisystem­hierarchien in einer einzigen großen Hierarchie zusammengefasst. Konkrete Beispiele für die Auswirkungen dieser Grundsätze: Erreichbare Server sind Teil des Dateisystems, laufende Programme sind Teil des Dateisystems usw.
Dieses zugrundeliegende Konzept hat kaum in die gängigen Betriebssysteme Einzug gehalten, da einige radikale Modifikationen an der Softwarearchitektur erforderlich sind. Eine Ausnahme ist die Aufnahme des /proc-Dateisystems in Linux und andere Betriebssysteme, welches allen Programmen eine einheitliche und meist abwärtskompatible Zugriffsmöglichkeit auf Daten, wie z. B. Zahl der laufenden Prozesse, Systemauslastung, Zahl der Netzwerkverbindungen usw. erlaubt – alles über die herkömmliche Dateisystemschnittstelle. Die Idee „Alles ist eine Datei“ wird unter Linux in den virtuellen Dateisystemen sysfs und configfs weitergetragen.

## Geschichte

An der Entwicklung von Plan 9 haben eine Reihe namhafter Personen mitgewirkt, darunter Ken Thompson, der zeitweilig Leiter des Projekts war und an den ersten Versionen von Unix sowie der Entwicklung der Programmiersprache C beteiligt war.
* Die interne Entwicklung begann 1987.
* Der produktive Einsatz an den Bell Labs fand ab 1989 statt.
* Plan 9 from Bell Labs First Edition erschien 1993 und wurde ausschließlich an Universitäten weitergegeben.
* Plan 9 from Bell Labs Second Edition erschien 1995 und konnte für $ 350 käuflich erworben werden.
* Plan 9 from Bell Labs Third Edition (Brazil) erschien am 7. Juni 2000 unter der eigens erstellten Plan-9-Lizenz.
* Plan 9 from Bell Labs Fourth Edition erschien im April 2002 und brachte grundlegende Änderungen mit sich. Unter anderem wurden 9P komplett überarbeitet (zum Beispiel durch die Einführung langer Dateinamen), fossil (ein neues Dateisystem) und venti (ein Backupserver) dem System hinzugefügt und die Installationsroutine wesentlich verbessert. Ab dieser Version ist Plan 9 Open Source gemäß OSI und freie Software nach der Definition der Free Software Foundation.
Im Februar 2014 wurde Plan 9, bis dahin unter der Lucent Public License stehend, zusätzlich unter der GPL lizenziert. Im März 2021 wurden die Urheberrechte über Plan 9 von Bell Labs an die Plan 9 Foundation übertragen, welche daraufhin den Quellcode unter eine MIT-Lizenz stellte.

## Abspaltungen und Abkömmlinge

* 9front ist eine Abspaltung von Plan 9, die intensiver gewartet wird.
* Harvey ist eine Abspaltung, die auf die AMD64-Architektur spezialisiert ist und eine Unterstützung für die C-Compiler GCC und Clang einführt, um das Portieren vorhandener Anwendungen zu vereinfachen.
* Das zum Teil auf Harvey basierende Jehanne (Version von archive.org, Originalwebsite war ab spätestens 2023-11 übernommen durch Dritte) verbessert die Kompatibilität von Plan 9 mit dem Portable Operating System Interface.
* Plan 9 from User Space ist eine Sammlung von vielen Plan-9-Programmen, die auf andere Betriebssysteme portiert wurden.
* Inferno wurde von den Bell Labs eigenständig entwickelt. Es kombiniert sehr viele Konzepte von Plan 9 mit einer in das Betriebssystem integrierten virtuellen Maschine, die die Ausführung auf unterschiedlichen Architekturen ermöglicht. Node 9 ist wiederum eine Abspaltung, die diese virtuelle Maschine durch die von LuaJIT ersetzt.
* 9vx läuft auf einer Virtualisierungsschicht durch vx32-Sandboxing.