1987 bestämde sig Bell för att ersätta den Unix de själva utvecklat eftersom den inte längre motsvarade de krav som ställdes.
Under tiden hade det inom Bell utvecklats en intern Unix som så småningom blivit "the 10th edition". Målet med Plan 9 var nu att göra något som var bättre än "the 10th edition", men som samtidigt skulle se ut på traditionellt Unix-system. Därav kommer det sig att många vanliga Unix-verktyg är återimplementerade i Plan 9 och en Unix-hacker känner snabbt igen sig i Plan 9. Plan 9 skulle också bli ett distribuerat operativsystem.
Man utvecklade ursprungligen Plan 9 för datorer med processor <= 68020 och <= 8 MB komihåg. Därför är kärnan väldigt liten, ungefär 60 KB för en 68020 -- med tjänster för filsystem inkluderat! Då kärnan är väldigt liten har man valt att låta varje processor ha en kopia av kärnan. Det finns inga lättviktsprocesser och inga riktiga trådar i Plan 9.
I ett Plan 9 system finns det tre entiteter:
Terminalerna är typiskt ganska enkla, men dock mer avancerade än en vanlig textterminal. De ligger någonstans mellan en arbetsstation och en vanlig terminal: de kör editorer och fönstersystem men inga tunga tillämpningar.
CPU-servrarna används för mer krävande tilämpningar, såsom kompileringar.
Filservrarna har alla filer och program. Kommunikationslänken mellan CPU- och filservrar är typiskt ganska snabb. På filservrarna körs inga användarprogram alls. Det går visserligen att logga in på en filserver men endast på en console. På så vis når man en fysisk säkerhet för filservern. Ytterligare en fördel är att backupper kan tas på alla användares filer, något som kanske inte alltid händer ifall man har möjlighet att spara filer på sin egen dator eller arbetsstation.
I Plan 9 är allt filer.
Det skulle inte gå att låta alla datorer skulle montera alla andras filsystem. Därför kan man låta varje process få en egen namnrymd. Man kan tala om vilka filer som ska synas, var roten ligger o.s.v. Processens namnrymd ärvs av alla barn till processen.
Man kan även montera en union av olika filsystem på samma monteringsplats i biblioteksträdet och på något sätt specificera en prioritetsordning mellan dem.
Säkerheten i Plan 9 fungerar ungefär som med kerberos. Man skriver lösenordet endast en gång. Därefter får man biljetter av en signaturserver för att kunna logga in på andra ställen. På så vis skickas aldrig några lösenord i klartext genom nätverket, till skillnad från t.ex. en vanlig telnet under Unix.
Endast vid ftp skickas lösenordet oskyddat över nätet, men det finns ett par olika lösningar på det problemet.
Naturligtvis skickas lösenordet i klartext också när man via gateways tar sig till externa system, som t.ex. kör Unix. Då använder man ju vanligen en telnetsession av klassiskt snitt om inte annat ordnats.
Plan 9 finns att ladda hem från nätet (se nedan). Här är några av de verktyg och program som följer med:
mgr
. Filmkännare känner genast igen att
8 ½
är en Fellinifilm precis som namnet på operativsystemet
anspelar på
en annan film.
Någon person som var närvarande från Skövde via ett
videokonferensssytem påpekade att likheten med mgr
är
kanske inte så konstig om man betänker att mgr
är
skrivet av Bellcore som senare, efter företagsdelning, blev
bl.a. Bell Laboratories som ju har skrivit 8 ½.
Acme
. Ett verktyg som är filebrowser, editor och
nästan emacs i ett. Texten i Acme kan användas på olika sätt; som
filnamn, som kommando, som text. Musknapparna (en Plan 9-mus har
alltid 3 knappar) har här en mängd olika funktioner beroende på
vilken knapp man trycker på och vilken omgivning som gäller. På så
vis kan man öppna en fil genom att klicka på ett filnamnet med en
viss knapp medan samma knapp gör något annat med en text.
När man så klickar på felutskrift från make öppnar man den fil som innehåller felet på den raden som felet är på! Och detta får man "på köpet", eftersom det slumpar sig så, att utdatat från kompilatorn är en korrekt adress till en rad i en fil, t.ex. foo.c:17. Naturligtvis öppnas inte filen om den redan är öppen. Då placeras i stället muspekaren i rätt fönster.
Swap
. Swappern följer inte med distributionen som
man får från nätet. Eftersom Plan 9 är minnessnålt behövs den för
det mesta inte, utom då man kör Mothra
.
Mothra
. En spartansk WWW-bläddrare som äter minne
och kan visa bilder. Markören blir en mediterande figur i
lotusställning och namnet anspelar på meditation och väntan, en
inte helt ovanlig företeelse då man surfar på nätet.
Alef
. Alef är ett C-likt, lite objektorienterat
språk för Plan 9. Det kan hantera parallella "nästantrådar".
I Plan 9 skriver man inte fönsterprogram genom att ha en eventloop. Istället har man en tråd om för varje event som kan komma.
mk
. Make.
rc
. Skalet, mer C än vad csh någonsin varit! Det
finns även ett skal som heter es
.
Bell har valt att göra likadant som med Unix (vilket är dumt, säger Mikael). De säljer inte Plan 9. Istället litar de på att "någon annan" ska göra det. Precis som med Unix kan man bara köpa källkodslicenser för dyra pengar från AT&T.
Man köpa källkoden på en CD för $350. Den finns för en mängd olika arkitekturer såsom:
Om man köpt källkodsdistibutionen får man använda den privat eller inom organisationen för forskning och utbildning.
Vad man inte får göra är att sälja något program som man länkat med ett Plan 9-bibliotek eller som överhuvudtaget är utvecklat i Plan 9. Det går heller inte att släppa källkod man själv skrivit som litar på att det finns en Plan 9-miljö att kompilera i till andra än licensägare utan att bryta mot lagen.
Vill man utveckla program kommerciellt får man köpa Plan 9-källkoden för $200 000. Avsikten är att AT&T ska sälja till storföretag som sedan kan sälja användarlicenser av Plan 9 för ett betydligt lägre pris.
Q: Användare i filsystemet... hur fungerar det?
A: who
använder det,
(who
finns inte med i demodistributionen).
Q: Finns det fler verktyg i demodistributionen?
Kompilatorer?
A: Det finns C, Alef, assembler, länkare
(förståss) och två debuggrar: db
och acid
.
Q: Hur lätt är det att porta Unixprogram?
A: Om programmet följer POSIX-standarden ska det
vara enkelt att porta. Det finns även BSD-bibliotek med t.ex. sockets
som man kan länka med.
Härvid följde en demonstration av Plan 9 på den dator som Mikael
tagit med sig. Han startade fönstersystemet, ändrade lite i namnrymden
för en process så att den trodde att något visst fönster var /dev/cons
och startade fönstersystemet på nytt i det fönstret. Han demostrerade
även Acme
och datorn lämnades sedan till nyfikna
åskådare.
För den som vill prova hur fönsterhanteraren i Plan 9 känns så
finns en sådan på Lysator som man kan köra på
X-windows. (/usr/local/bin/9wm
)
En gratis demodistribution för PC finns på ftp://plan9.att.com/. (4 diskar) Prova även http://plan9.att.com/. Mikael Cardell kan nås på mkc@bull.se.
Ture Pålsson påpekade att man måste vara lite försiktig när man ska installera den ifall man kör Linux. Det är viktigt att den första partitionen på hårddisken är en DOS-partition. I annat fall kan installationsprogrammet glatt skriva över Linuxpartitionen. Läs mer om problemen här.
Det rekommenderas varmt att ta en backup på disken innan du börjar
leka. Läs för övrigt noga igenom install.html
och
errata.html
före installationen.
"Intrycket av det här är att det är så kraftfullt att det är livsfarligt", tyckte Daniel Johansson efter föredraget.