Hopp til innhold

Plan 9

Fra Wikipedia, den frie encyklopedi
Plan 9
Installasjon av Plan 9 i grafisk modus
Utvikler(e)Bell Labs
Nyeste versjonFourth Edition (stabil versjon; 2002)[1]
StatusIkke aktiv
Plattformx86-arkitektur, x86_64, MIPS, DEC Alpha, PowerPC, SPARC, A32, A64, ARM
Skrevet iC
Skrivebordsmiljø, Rio
Avledede systemer9front, Plan B, Inferno, 9base, Plan 9 from User Space
LisensLucent Public License, GPLv2, MIT-lisensen[2]
Nettstedhttps://p9f.org
ForgjengerForsknings-Unix, Cambridge Distributed Computing System
EfterfølgerInferno

Plan 9 fra Bell Laboratories, også bare kalt Plan 9, er et Unix-liknende distribuert sanntids operativsystem som ble utviklet av Computing Sciences Research Center ved Bell Laboratories fra midten av 1980-årene frem til 29. april 2002. Det var en direkte etterkommer av Unix, og ble utviklet i samme forskningsgruppe; det var også påvirket av Cambridge Distributed Computing System som ble utviklet ved University of Cambridge i 1980-årene. Plan 9 utvidet prinsippene i Unix med grafiske terminaler i et nettverksmiljø.[3] Det presenterte alle systemressurser, deriblant filer, nettverksforbindelser og periferiutstyr gjennom filsystemet, i stedet for å bruke spesielle grensesnitt som tilfellet er i Unix. En felles nettverksprotokoll (9P) bandt datamaskinene sammen i et nettverk, og sørget for deling av alle ressursene.

Plan 9 benyttet en såkalt hybridkjerne. Dette er en mellomting mellom en mikrokjerne og en monolittisk kjerne. Nesten alle operativsystemtjenester kjørte i kjerneområdet og ikke brukerområdet, slik at ytelsen ikke ble svekket av at man måtte sende meldinger mellom kjerneområdet og brukerområdet, slik tilfelle er i mikrokjerner. Som brukergrensesnitt benyttet Plan 9 i begynnelsen vindussystemet , men gikk senere over til å bruke vindussystemet Rio. Plan 9 var implementert ved hjelp av en dialekt av ANSI C eller C89. Programmeringsspråket Alef, som var laget for parallelle beregninger, fulgte også med de to første versjonene av Plan 9, sammen med et eget programvarebibliotek, men ble forkastet i versjon 3.

Navnet Plan 9 refererer til Ed Woods science fiction lavbudsjettsfilm kultfilm Plan 9 from Outer Space.[3] «Glenda» var operativsystemets maskot, og var en referanse til Ed Woods lavbudsjettfilm Glen or Glenda.

Systemet blir fortsatt brukt og utviklet av forskere og personer på hobbybasis.[4][5] Første versjon ble lansert 5. september 1992, og siste utgave er versjon 4 fra 29. april 2002. I 2002 ble kildekoden frigitt som åpen kildekode under GNU General Public License versjon 2 og Lucent Public License. I februar 2014 ble University of California, Berkeley tildelt rettighetene av Alcatel-Lucent til å lansere all Plan 9 programvare som tidligere ble omfattet av Lucent Public License.

Flere operativsystemer er utgått fra Plan 9, hvorav Inferno er det mest kjente. Andre derivater er 9atom, 9front, 9legacy, Akaros, Harvey OS og Plan B.

Plan 9 fra Bell Laboratories ble opprinnelig utviklet, fra midten av 1980-årene, av medlemmer av Computing Science Research Center ved Bell Laboratories. Dette var den samme gruppen som opprinnelig utviklet operativsystemet Unix såvel som programmeringsspråkene C og C++.[6] Utviklingsteamet ble i begynnelsen ledet av Rob Pike, Ken Thompson, David L. Presotto, Howard Trickey, Sean Dorward, Bob Flandrena og Phil Winterbottom, med støtte fra Dennis Ritchie som leder av Computing Techniques Research Department. I løpet av årene har mange kjente utviklere bidratt til prosjektet, deriblant Brian Kernighan, Tom Duff, Doug McIlroy, Bjarne Stroustrup og Bruce Ellis.[7]

Navnet Plan 9 refererer til Ed Woods science fiction lavbudsjettsfilm kultfilm Plan 9 from Outer Space.[3] «Glenda» var operativsystemets maskot, og var en referanse til Ed Woods lavbudsjettfilm Glen or Glenda.

Plan 9 erstattet Unix som den primære plattform for forskning innenfor operativsystemer ved Bell Laboratories. Det var således en direkte etterkommer av Unix, og ble utviklet i samme forskningsgruppe. Plan 9 var et Unix-liknende operativsystem; det utvidet prinsippene i Unix med grafiske terminaler i et nettverksmiljø.[3] I motsetning til Unix, som er et sentralisert operativsystem, var Plan 9 et distribuert operativsystem. Det ble foretatt flere forandringer i den opprinnelige Unix-modellen som forenklet bruken og programmeringen av systemet, blant annet innenfor flerbrukermiljøer. Flere av disse ideene var hentet fra Cambridge Distributed Computing System som ble utviklet ved University of Cambridgelokalnettet Cambridge Ring i 1980-årene. Etter flere år med utvikling og intern bruk, ble Plan 9 lansert av Bell Laboratories for bruk på universiteter den 5. september 1992. Tre år senere, den 16. juli 1995, ble Plan 9 gjort tilgjengelig for kommersielle aktører av AT&T, via bokutgiveren Harcourt Brace. Lisensen til kildekoden kostet $350, og AT&T satset dermed på innebygde systemer, i stedet for det generelle datamaskinmarkedet. Dennis Ritchie kommenterte at programvareutviklere ikke forventet noen særlig forskyvning i markedet, på grunn av utbredelsen til andre operativsystemer.[8]

I februar 1996 reduserte AT&T sitt fokus på Plan 9 til fordel for det nye distribuerte operativsystemet Inferno. Hensikten var å konkurrere med Javaplattformen fra Sun Microsystems.[9] På slutten av 1990-tallet hadde Bell Laboratories nye eier, Lucent Technologies, avsluttet sin kommersielle støtte for prosjektet. Den 7. juni 2000 ble den tredje utgaven av Plan 9 distribuert under en åpen kildekode-lisens, og 29. april 2002 kom fjerde utgave under en ny lisens som gjorde Plan 9 til fri og åpen programvare.[10]

Et nytt brukernettverk, som inkluderte daværende og tidligere personell fra Bell Laboratories, produserte daglig mindre oppdateringer i form av ISO-bilder. Bell Laboratories var vertsskap for brukernettverket.[11] Kildekoden til utviklingstreet er tilgjengelig over nettverk ved hjelp av nettverksprotokollene 9P og HTTP, som brukes til å oppdatere eksisterende installasjoner.[12] I tillegg til de offisielle komponentene som er inkludert i ISO-filene, er Bell Laboratories også vert for et programvarelager med eksternt utviklede applikasjoner og programmeringsverktøy.[13]

Dato Versjon Utgiver Kommentar
5. september 1992 1. utgave Bell Laboratories Utgitt for bruk på universiteter
16. juli 1995 2. utgave Bell Laboratories Utgitt for ikke-kommersiell bruk[14]
7. juni 2000 3. utgave («Brazil») Lucent Technologies Utgitt under en åpen kildekode-lisens
29. april 2002 4. utgave Lucent Technologies Utgitt under en ny fri programvarelisens

Oppbygning

[rediger | rediger kilde]

Plan 9 fra Bell Laboratories er liksom kvekerne: distingvert gjennom sin vekt på det «indre lyset», kjent for sin enkle levemåte, spesielt i sin klarhet i talen. Liksom kvekerne, driver ikke Plan 9 misjonering.

—Sape J. Mullender, Pierre G. Janson.
Real Time in a Real Operating System[15]

Plan 9 er et distribuert operativsystem, konstruert for å gjøre at et nettverk av heterogene og geografisk adskilte datamaskiner fungerer som et enkelt system.[16] I en typisk Plan 9-installasjon, arbeider brukerne på terminaler som kjører vindussystemet rio, og de aksesserer tjenere som håndterer krevende beregningsprosesser. Permanent datalagring blir besørget av ekstra nettverksverter som fungerer som filtjenere og arkivlagring.[17]

De som konstruerte systemet sa at:[18]

Grunnlaget for systemet er bygd på to ideer: Et navnerom per-prosess og en enkel meldingsorientert filsystemprotokoll.

Pike et al.

Det første betyr at hver enkelt prosess (kjørende program), ulikt de fleste operativsystemer, har sitt eget navnerom. Alle systemressurser, deriblant filer, nettverksforbindelser og periferiutstyr presenteres gjennom filsystemet, og et navn på en path refererer en ressurs, men hvilken ressurs det er varierer med ulike prosesser. Den potensielle kompleksitet med dette oppsettet, er kontrollert av en mengde konvensjonelle lokaliseringer av vanlige ressurser.[19][18]

Den andre ideen innebærer at prosesser kan tilby tjenester til andre prosesser gjennom virtuelle filer som opptrer i den andre prosessens navnerom. Klientens inn- og utmating av en slik fil blir en interprosesskommunikasjon mellom to prosesser. På denne måten generaliserer Plan 9 prinsippet om filsystemet som det sentrale punkt for tilgang til datamaskinens ressurser. Det bygger videre på Unix-ideen om bruk av utstyrsfiler for å få tilgang til periferienheter som datamus, ytre enheter, og lignende, og muligheten til å mounte filsystemer som ligger på adskilte maskiner inn i et navnerom som utgjør et helt hierarki av filsystemer og muligheten til å mounte en forbindelse med et tjenerprogram via en standardisert protokoll og behandle dets tjenester som en del av navnerommet.

Det opprinnelige vindussystemet til Plan 9, , utnyttet disse mulighetene på følgende måte. Brukergrensesnittet representeres på en terminal ved hjelp av tre pseudofiler: mouse, som kan bli lest av et program for å informeres om musbevegelser og klikk på musknappen, cons, som kan bruker til å utføre innmating og utmating av tekst, og bitblt som utløser utføring av grafiske operasjoner (bit blit). Vindussystemet foretar en multipleksing mellom disse. Når et nytt vindu skapes for å kjøre et program inne i det, opprettes det først et nytt navnerom hvor mouse, cons og bitblt er forbundet med vindussystemet, og skjuler den aktuelle utstyrsfilen som det selv har tilgang til. Vindussystemet mottar således alle kommandoer om innmating og utmating fra programmet og håndterer disse ved å sende en beskjed om utmatning til den aktuelle utstyrsfil (skjermen) og ved å gi et program tilgang til innmatning via tastatur og mus.[17] Programmet behøver ikke vite om hvorvidt det kommuniserer direkte med operativsystemets utstyrsdrivere eller med vidnussystemet. Det trenger bare vite at dets navnerom er satt opp, slik at disse spesielle filer sørger for den innmatning og utmatning som det forventer.

Plan 9 sine distribuerte operasjoner baserer seg likeledes på et navnerom per prosess, og tillater klient- og tjenerprosesser å kommunisere mellom maskiner på den måte som nettopp er beskrevet. Kommandoen cpu starter for eksempel en sesjon fra annen datamaskin på en tjener. Kommandoen eksporterer deler av sitt lokale navnerom, inkludert brukerterminalens utstyrsfiler (mouse, cons, bitblt) til tjeneren, slik at programmer fra en annen datamaskin kan utføre inn- og utmatning ved å bruke terminalens mus, tastatur og skjerm, og kombinere effektene av fjerninnlogging og et delt filsystem i nettverket.[17][18]

9P protokollen

[rediger | rediger kilde]

Utdypende artikkel: 9P (nettverksprotokoll)

Referanser

[rediger | rediger kilde]
  1. ^ https://9p.io/plan9/about.html; besøksdato: 3. juli 2020.
  2. ^ https://p9f.org/about.html.
  3. ^ a b c d Raymond 2003
  4. ^ Robertson 2011
  5. ^ «9atom». Arkivert fra originalen 26. juli 2013. Besøkt 11. november 2011. 
  6. ^ Lucent 1995
  7. ^ McIlroy 1995
  8. ^ Lee 1995
  9. ^ Pontin 1996, side 3
  10. ^ Loli-Queru 2002
  11. ^ Lucent 2010
  12. ^ Lucent 2006
  13. ^ Lucent 2009
  14. ^ «Announcement of the first release to general public». 9 fans. 16. juli 1995. Arkivert fra originalen 6. juli 2008.  «Arkivert kopi». Arkivert fra originalen 6. juli 2008. Besøkt 3. desember 2016. 
  15. ^ Mullender, Sape J.; Janson, Pierre G. (26. februar 2004). «Real Time in a Real Operating System». I Herbert, Andrew J.; Spärck Jones, Karen. Computer systems: theory, technology, and applications: a tribute to Roger Needham. Springer Science+Business Media. s. 211. ISBN 978-0-387-20170-2. Besøkt 24. desember 2011. 
  16. ^ Hancock, Brian (2003). «Reinventing Unix: an introduction to the Plan 9 operating system». Library Hi Tech. MCB UP. 21 (4): 471–76. doi:10.1108/07378830310509772. 
  17. ^ a b c Plan 9, A Distributed System. Proc. Spring 1991 EurOpen Conference. 
  18. ^ a b c Pike, R.; Presotto, D.; Thompson, K.; Trickey, H.; Winterbottom, P. "The Use of Name Spaces in Plan 9". Bell Labs. Besøkt 2016-02-26.
  19. ^ Welch, Brent (1994). «A comparison of three distributed file system architectures: Vnode, Sprite, and Plan 9». Computing Systems. 7 (2): 175–199. 

Litteratur

[rediger | rediger kilde]

Eksterne lenker

[rediger | rediger kilde]