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

Ä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