Plan 9
Plan 9 | |
---|---|
Kehittäjä | Bell Labs |
Ohjelmointikielet | C[1][2][3] |
Julkaistu | 1992 |
Viimeisin vakaa versio | |
Suoritintuki | ARM, x86, x86-64, MIPS, Alpha, SPARC, PowerPC |
Käyttöliittymä | rio / rc |
Lähdekoodimalli | avoin lähdekoodi |
Lisenssi | GPLv2 |
Aiheesta muualla | |
Verkkosivusto |
Plan 9 on Bell Labsin kehittämä hajautettu käyttöjärjestelmä, jonka kehitys aloitettiin 1980-luvun lopulla.[4] Alkuperäiset suunnittelijat ja kehittäjät ovat Ken Thompson, Rob Pike, Dave Presotto, ja Phil Winterbottom.[4]
Käyttöjärjestelmän kehittäjiä ovat useat samat henkilöt jotka kehittivät Unix-käyttöjärjestelmän.[4] Käyttöjärjestelmä on kehitetty tutkimuskäyttöön.[4]
Historia
[muokkaa | muokkaa wikitekstiä]Ensimmäinen julkaisu toimitettiin vuonna 1992 yliopistoille.[4] Toinen julkaisu vuonna 1995 oli saatavilla kaupallisen lisenssin alla.[4] Kolmas julkaisu vuonna 2000 on avoimen lähdekoodin lisenssillä.[4] Neljäs julkaisu vuonna 2002 on uudella vapaan ohjelmiston lisenssillä.[4]
Helmikuussa 2014 käyttöjärjestelmä on julkaistu uudelleen GNU GPLv2 -lisenssillä.[5]
Maaliskuussa 2021 Bell Labsin omistaja Nokia siirsi tekijänoikeudet Plan 9 Foundationille.[6] Siirron myötä lähdekoodit tulivat MIT-lisenssille.[7]
Suoritintuki
[muokkaa | muokkaa wikitekstiä]Käyttöjärjestelmä tukee ARM, x86, x86-64, MIPS, Alpha, SPARC ja PowerPC suorittimia.[1][4]
Myös NeXTstation (Motorola 68000 -sarja) ja BeBox tietokoneita on tuettu varhaisissa versioissa.[4][8][9]
9P protokolla
[muokkaa | muokkaa wikitekstiä]9P protokolla on kehitetty vähentämään erikoistarkoitukseen tehtyjä ohjelmointirajapintoja.
9P protokolla tarjoaa useimmat ominaisuudet tiedostojärjestelmän kaltaisena rajapintana palvelin- ja asiakassovelluksien välillä.[1]
Protokolla mahdollistaa tiedostojärjestelmien etäkäytön Network File Systemin (NFS) tapaan (ks. hajautettu levyjärjestelmä).[10]
Linux-ydin tukee protokollaa.[11][10]
Protokollan määritelmästä on luonnos sen standardoimiseksi.[12]
Yhdistelmähakemistot
[muokkaa | muokkaa wikitekstiä]Yksi Plan 9 ominaisuuksista on tiedostojärjestelmä, joka sallii muodostaa yhdistelmähakemistoja, joissa saman hakemiston alla näkyy käyttäjälle useiden muiden sijaintien sisältö.
Linux sisältää nykyään vastaavan mekanismin nimellä overlayfs.[13]
Nimiavaruudet
[muokkaa | muokkaa wikitekstiä]Nimiavaruudet (engl. namespace) mahdollistavat käyttäjäkohtaiset näkymät tiedostojärjestelmään.[1]
Vastaavanlainen ominaisuus on lisätty Linux ytimeen versiossa 3.8 (ks. Linux-nimiavaruudet).[14]
Fossil
[muokkaa | muokkaa wikitekstiä]Fossil on Plan 9:lle tehty tiedostojen arkistopalvelin, joka tyypillisesti pitää perinteistä tiedostojärjestelmää paikallisella levyllä ja säännöllisesti arkistoi tilannekuvia Venti-palvelimelle.[15]
Unicode
[muokkaa | muokkaa wikitekstiä]Käyttöjärjestelmä käyttää kauttaaltaan Unicoden UTF-8 merkistökoodausta, joka kehitettiin Plan 9:ää varten.[4][16][17]
Graafiset sovellukset
[muokkaa | muokkaa wikitekstiä]Plan 9 kehitettiin käytettäväksi graafisella käyttöliittymällä.
Käyttöliittymänä toimii rio ikkunointijärjestelmä, joka korvasi aikaisemman 8½ ikkunointijärjestelmän.[1]
Ikkunointijärjestelmän on toteutettava yhtä aikaa kolmea asiaa ilmeisimpien lisäksi:[18]
- järjestelmärajapinta (laitteistokäsittely)
- ohjelmarajapinta (ikkunoiden hallinta)
- käyttöliittymä (hiiri, näppäimistö, valikot..)
Rio on epätavallinen ikkunointijärjestelmien keskuudessa koska se on toteutettu tiedostopalvelimena.[18] Plan 9:ssä lähes kaikki on tiedostopalveluina tai ainakin esitetty sellaisena.[18]
Ohjelmointi
[muokkaa | muokkaa wikitekstiä]Plan 9 on ohjelmoitu C-kielen muunnoksella, jossa on eräitä eroavaisuuksia ANSI C -standardiin verrattuna.[2][3]
Osa Plan 9:stä on ohjelmoitu C-kielen kaltaisella rinnakkaisohjelmointiin tarkoitetulla Alef -kielellä. Alefin käyttö on kuitenkin jäänyt vähäiseksi vuoden 1995 toisen julkaisun jälkeen.[19][20]
Kritiikki
[muokkaa | muokkaa wikitekstiä]Plan 9:n "everything is a file" -konseptia on kritisoitu koska tyyppijärjestelmä on ajonaikainen eikä helposti määriteltävissä tai dokumentoitavissa.[21]
Lähteet
[muokkaa | muokkaa wikitekstiä]- ↑ a b c d e Plan 9 operating-system.org. Viitattu 14.2.2017.
- ↑ a b Gagliardi, Pietro: C Programming in Plan 9 from Bell Labs doc.cat-v.org. Viitattu 15.2.2017.
- ↑ a b Pike, Rob: How to Use the Plan 9 C Compiler plan9.bell-labs.com. Viitattu 15.2.2017.[vanhentunut linkki]
- ↑ a b c d e f g h i j k Plan 9 from Bell Labs plan9.bell-labs.com. Arkistoitu Viitattu 14.2.2017.
- ↑ Plan 9 moves out from Lucent licence space The Register. Viitattu 14.2.2017.
- ↑ Plan 9 from Bell Labs in Cyberspace! Nokia Bell Labs. Viitattu 23.3.2021.
- ↑ Transfer of Plan 9 to the Plan 9 Foundation 9fans. Viitattu 23.3.2021.
- ↑ Other hardware plan9.bell-labs.com. Arkistoitu 5.2.2015. Viitattu 14.2.2017.
- ↑ Pike, Rob: How to Use the Plan 9 C Compiler plan9.bell-labs.com. Arkistoitu 5.2.2015. Viitattu 20.2.2017.
- ↑ a b A filesystem from Plan 9 space lwn.net. Viitattu 15.2.2017.
- ↑ v9fs: Plan 9 Resource Sharing for Linux kernel.org. Viitattu 15.2.2017.
- ↑ Plan 9 Remote Resource Protocol ericvh.github.io. Viitattu 15.2.2017.
- ↑ The Overlay Filesystem windsock.io. Arkistoitu 14.2.2017. Viitattu 14.2.2017.
- ↑ Namespaces in operation, part 5: User namespaces lwn.net. Viitattu 14.2.2017.
- ↑ Fossil, an Archival File Server (PDF) scs.stanford.edu. Viitattu 11.7.2021. (englanniksi)
- ↑ Hudson, Andrew: Investigating the Plan 9 Operating System OS News. Viitattu 14.2.2017.
- ↑ Pike, Rob: UTF-8 history cl.cam.ac.uk. Viitattu 14.2.2017.
- ↑ a b c Rob Pike: Rio: Design of a Concurrent Window System (PDF) doc.cat-v.org. 4.2.2000. Viitattu 27.3.2021. (englanniksi)
- ↑ Plan 9 from Bell Labs plan9.bell-labs.com. Arkistoitu 5.2.2015. Viitattu 15.2.2017.
- ↑ Winterbottom, Phil: Alef Language Reference Manual doc.cat-v.org. Viitattu 15.2.2017.
- ↑ Roscoe, Timothy: The Structure of a Multi-Service Operating System people.inf.ethz.ch. Viitattu 20.2.2017.