Plan 9, Linux und ein Rasberry Pi
Carsten Strotmann,
linuxkistchen.de
März 2013
Plan 9
Ein Betriebssystem für x86, x86-64, MIPS, DEC Alpha, SPARC, PowerPC, ARM
Unicibus ipsis Unicior
Entwickelt in den Bell Labs
als Weiterentwicklung von Unix
Personen
Rob Pike, Ken Thompson, Dave Presotto, Phil Winterbottom, Dennis Ritchie
Brian Kernighan, Tom Duff, Doug McIlroy, Bjarne Stroustrup, Bruce Ellis
Zeit
198x-1992: nicht öffendliche Entwicklung innerhalb der Bell Labs
1992-2002: öffendliche Versionen unter nicht-freier Lizenz
2002-heute: Weiterentwicklung unter Open-Source Lizenz (Lucent Public License)
Warum?
frühes Unix 197x - "alles ist eine Datei"
Unix Weiterentwicklug 1980-1989
X (vom V-Betriebssystem)
TCP/IP
ein Mix aus verschiedenen Design-Stilen
kleine Demo
Demo time - Plan 9 auf einem Rasberry Pi
Plan 9 Innovationen
Unicode (UTF-8)
/proc Dateisystem
Union mounts (union directories)
9P Protokoll
Plan 9 "nativ" nutzen
auf dem Rasberry Pi
auf SheevaPlug Geräten
auf "x86" PCs
Plan 9 "emuliert"
qemu/KVM, VirtualBox, VMWare ...
Plan 9 ISO
9Front (bleeding edge Plan 9)
Anleitung für
VirtualBox
,
QEMU
VirtualBox Disk Image mit Plan 9
9vx API Emulationsschicht (Linux, FreeBSD, MacOS X), 32bit
Original Quellen
aktuellere Version
noch eine Demo
Plan 9/9Front unter Linux mit 9vx
Plan 9 "userland" aka Plan9Port
Plan 9 from User Space
Plan 9 Tools von Russ Cox
für Linux, xBSD, MacOS X
acme, plumber,
drawterm
...
Inferno
Inferno ist ein verteiltes Betriebssystem basierend auf Plan 9
sehr kompakt (läuft am 1 MB Hauptspeicher)
Programme sind in "Limbo" geschrieben und werden als Bytecode ausgeführt (ähnlich wie Java)
Inferno ist heute unter einer Open Source Lizenz verfügbar und läuft auch "hosted" unter Linux, xBSD, MacOS X und Windows
Inferno Demo
Inferno "hosted" unter Linux
Bild: Inferno auf dem "One Laptop per Child"
Ein naher Verwanter
die Programmiersprace "go" wurde von Mitgliedern des original Plan 9 Teams entwickelt
9P
Einfaches Netzwerk-Protokoll
attach - Verbindung einrichten
clone - Verbindung kopieren
clunk - Verbindung aufgeben
walk - Pfadkomponente suchen
stat - Attribute eines Objekts
wstat - Attribute ändern
create - Objekt erzeugen
remove - Objekt löschen
open - Zugriffsart prüfen
read - lesen
write - schreiben
Vorteile von 9P
Anwendungen können Dienste (Resourcen) über 9P anbieten
Konsumenten (Benutzer oder andere Anwendungen) können die Dienste über das Datei-Interface benutzen
keine "Library-Bindings" notwendig, nur Datei-IO
9P Dienste können über das Netzwerk "gemounted" werden
9p unter Linux
9p Kernel Modul
WMII Window Manager
QEMU virtio
Distributed IO Daemon - diod
Plan9Port
Equinox Desktop Environment - EDE (geplant)
9P FUSE Modul
Usermode 9FS Server u9fs
Demo Window Manager Improved improved (wmii)
Eigene Anwendungen mit 9P ausstatten
9P Funktionen sind verfügbar für
Python
Ruby
LISP/Scheme
C/C++
Java
Haskell/Occalm
Perl
PHP
...
Plan 9 Quellen
original Plan 9 von Bell Labs
9Front - Plan 9 "fork"
9legacy - Plan 9 mit aktuellen Patches
9atom - Plan 9 mit 386 PAE kernel, amd64 cpu und terminal kernel, nupas, extra pc hardware support, IL und Ken's fs
Bücher
Das Netzbetriebssystem Plan9
Introduction to OS Abstractions Using Plan 9 from Bell Labs
Videos
Plan 9 demo
A tour of the ACME Editor
Plan 9 Operating System for the Raspberry Pi
Plan 9 Links
Plan 9 Tipps
Plan 9 mit OpenBSD Unix
Plan 9 Newbie Guide PDF
Plan 9 Dokumentation
cat-v.org