Plan 9

Plan 9
Logo
rio, de gebruikersinterface van Plan 9
rio, de gebruikersinterface van Plan 9
Ontwikkelaar(s) Bell Labs
OS-familie Unix (geen variant, wel afgeleid)
Voorganger Unix
Bronmodel Opensource
Uitgebracht 1992
Recentste uitgave 4e 
(2015)
Kerneltype Hybride kernel
Programmeertaal C, Assembleertaal, Shell script
Licentie(s) MIT
Status Inactief
Website http://p9f.org/
Portaal  Portaalicoon   Informatica

Plan 9 from Bell Labs is een gedistribueerd besturingssysteem, ontwikkeld door Bell Labs in New Jersey, als opvolger van UNIX. De eerste versies van Plan 9 werden ontworpen door (onder anderen) Ken Thompson, Rob Pike, Dave Presotto, and Phil Winterbottom.[1] De mascotte van Plan 9 heet Glenda[2], en de naam is afgeleid van de cultfilm Plan 9 from Outer Space.

Het doel van Plan 9 is om een netwerk van verschillende computers, te laten functioneren als één samenhangend systeem.

Architectuur

In grote lijnen bestaat Plan 9 uit een kernel, en een collectie servers, die zichzelf presenteren als bestandssystemen binnen een namespace[3]. Deze servers draaien niet noodzakelijk op dezelfde machine als de kernel. Maar kunnen via het 9P[4] protocol hun functionaliteit aanbieden. Elk proces heeft zijn eigen bewerkbare namespace, hierdoor kunnen twee processen totaal verschillende inzichten op het systeem hebben.

Een primair voorbeeld van een 9P server: Cwfs[5]. Deze server koppelt een opslag medium (zoals een harde schijf, of ssd), en stelt de data (via 9P) beschikbaar als een bestandssysteem. Hierdoor kunnen bestanden persistent gelezen en geschreven worden.

Devices

De Plan 9 kernel biedt toegang tot een aantal virtuele apparaten (devices).[6] Sommige devices bieden toegang tot een fysiek randapparaat, zoals een harde schijf, of toetsenbord; andere bieden systeem functionaliteit aan, zoals het beheren van processen[7], en netwerken[8]. Ook deze devices presenteren zichzelf als bestandssystemen.

Het is ook mogelijk om deze devices tussen computers te importeren en exporteren. Hierdoor kunnen randapparaten, en functionaliteiten; van een computer, gebruikt worden op de andere computer, en vice versa.

Union directories

Met zogenoemde union directories kunnen verschillende delen van de namespace, op een transparante manier, aan elkaar gebonden worden.[9]

Compilers

Plan 9 is primair geschreven in een dialect van C, die standaard meegeleverd wordt. Het is ook mogelijk een Go compiler te verkrijgen[10]; omdat twee van de originele Go auteurs (Ken Thompson en Rob Pike) ook de mede-auteurs zijn van Plan 9.

Versies

Plan 9 heeft vier officiële uitgaven gehad. Deze zijn sinds maart 2021 opnieuw gelicenseerd onder de opensource licentie van MIT. Deze versies zijn hier te verkrijgen.

Uitgaven
Editie Jaartal
1e 1992
2e 1995
3e 2000
4e 2002
4e, Finale 2015

Distributies & Varianten

Plan 9 heeft een aantal distributies en varianten die actief onderhouden worden.

Compatibiliteit met UNIX

Hoewel Plan 9 voortborduurt op concepten uit UNIX, is het geen UNIX variant. Plan 9 kan echter wel een POSIX-omgeving simuleren.

Bronnen

  1. (en) Plan 9 from Bell Labs: Overview.
  2. Glenda, the Plan 9 Bunny.
  3. (en) The Use of Name Spaces in Plan 9.
  4. (en) Introduction to the Plan 9 File Protocol, 9P.
  5. (en) Cwfs: Cached–worm file server.
  6. (en) Intro: Introduction to the Plan 9 devices.
  7. (en) Proc: Running processes.
  8. (en) Network protocols over IP.
  9. (en) Bind, mount, unmount: Change name space.
  10. (en) 9legacy: Downloads.