Bell Labs'tan Plan 9 - Plan 9 from Bell Labs

Bell Labs'tan Plan 9
Glenda bunny maskot plan 9 from bell black.jpg
Glenda, Plan 9 maskotu, çizen Renée Fransız[1]
Bell Labs'den Plan 9 (Kurulum) .png
Plan 9 Kurulumu
GeliştiriciBell Laboratuvarları
YazılmışLehçesi ANSI C
Çalışma durumuBilinmeyen
Kaynak modelAçık kaynak
İlk sürüm1992; 28 yıl önce (1992) (üniversiteler) / 1995; 25 yıl önce (1995) (kamuoyu)
En son sürümDördüncü Baskı / 10 Ocak 2015; 5 yıl önce (2015-01-10)[2]
Pazarlama hedefiİşletim sistemleri araştırması, ağ bağlantılı ortamlar, genel amaçlı kullanım
Uygunİngilizce
Güncelleme yöntemikopya
Platformlarx86 / Vx32, x86-64, MIPS, Aralık Alfa, SPARC, PowerPC, KOL
Çekirdek tipHibrit çekirdek
Tarafından etkilenmişAraştırma Unix, Cambridge Dağıtık Hesaplama Sistemi[3]
Varsayılan Kullanıcı arayüzüRio / rc
LisansLucent Public License veya GPLv2[4]
tarafından başarıldıCehennem
Diğer türevler ve çatallar
Resmi internet sitesi9p.io/ plan9/

Bell Labs'tan Plan 9 bir dağıtılmış işletim sistemi Bilgisayar Bilimi Araştırma Merkezi'nden (CSRC) kaynaklanmaktadır: Bell Laboratuvarları 1980'lerin ortalarında ve UNIX kavramlar ilk olarak 1960'ların sonunda orada geliştirildi. Son resmi sürüm 2015'in başlarında yapıldı.

Plan 9 kapsamında, UNIX'ler her şey bir dosyadır metafor, yaygın bir ağ merkezli dosya sistemi, ve imleç adresli, terminal tabanlı G / Ç kalbinde UNIX benzeri işletim sistemleri bir ile değiştirilir pencere sistemi ve grafiksel kullanıcı arayüzü imleç adresleme olmadan rc Plan 9 kabuk, metin tabanlıdır.

İsim Bell Labs'tan Plan 9 bir referanstır Ed Wood 1959 kült bilimkurgu Z filmi Dış Uzaydan Plan 9.[5] (Projenin maskotu "Glenda, Plan 9 Tavşanı", muhtemelen Wood'un filmine bir göndermedir. Glen veya Glenda.) Sistem, işletim sistemi araştırmacıları ve meraklıları tarafından kullanılmaya ve geliştirilmeye devam etmektedir.[6][7]

Tarih

Bell Labs'ın Plan 9'u, 1980'lerin sonlarından itibaren geliştirildi.[7] Bell Labs'deki Bilgisayar Bilimi Araştırma Merkezi üyeleri tarafından, orijinal olarak geliştiren aynı grup Unix ve C programlama dili.[8] Plan 9 ekibi başlangıçta Rob Pike, Ken Thompson, Dave Presotto ve Phil Winterbottom'un desteğiyle Dennis Ritchie Hesaplama Teknikleri Araştırma Departmanı başkanı olarak. Yıllar içinde, birçok önemli geliştirici projeye katkıda bulundu. Brian Kernighan, Tom Duff, Doug McIlroy, Bjarne Stroustrup ve Bruce Ellis.[9]

Plan 9, Bell Labs'ın işletim sistemleri araştırması için birincil platformu olarak Unix'in yerini aldı. Orijinal Unix modelinde, sistemin kullanımını ve programlanmasını kolaylaştıran, özellikle dağıtılmış çok kullanıcılı ortamlar. Birkaç yıllık geliştirme ve dahili kullanımdan sonra, Bell Labs, işletim sistemini 1992'de üniversitelere gönderdi. Üç yıl sonra, Plan 9, kitap yayıncısı aracılığıyla AT&T tarafından ticari tarafların kullanımına sunuldu. Harcourt Brace. 350 dolara mal olan kaynak lisansları ile AT&T, büyük ölçüde bilgisayar pazarı yerine gömülü sistemler pazarını hedefledi. Ritchie, diğer işletim sistemlerinin ne kadar yerleşik hale geldiği göz önüne alındığında, geliştiricilerin "fazla yer değiştirme" beklemediklerini belirtti.[10]

1996'nın başlarında, Plan 9 projesi AT&T tarafından lehine "arka plana atıldı" Cehennem rakip olması amaçlanmıştır Sun Microsystems ' Java platformu.[11]1990'ların sonunda, Bell Labs'ın yeni sahibi Lucent Technologies proje için ticari desteği bıraktı ve 2000 yılında, üçüncü bir sürüm bir açık kaynak lisansı. Yeni bir dördüncü sürüm ücretsiz yazılım lisans 2002 yılında gerçekleşti.[12]

Mevcut ve eski dahil bir kullanıcı ve geliştirme topluluğu Bell Laboratuvarları personel, şeklinde küçük günlük yayınlar üretti ISO görüntüleri. Bell Labs geliştirmeye ev sahipliği yaptı.[13] Geliştirme kaynak ağacına, 9P ve HTTP protokoller ve mevcut kurulumları güncellemek için kullanılır.[14] ISO'lara dahil edilen işletim sisteminin resmi bileşenlerine ek olarak, Bell Labs ayrıca harici olarak geliştirilmiş uygulama ve araçların bir havuzunu barındırır.[15]

Gibi Bell Laboratuvarları son yıllarda daha sonraki projelere geçti, resmi Plan 9 sisteminin geliştirilmesi durdu. Sistem için resmi olmayan geliştirme, aktif katılımcıların aylık derlemeler ve yeni işlevler sağladığı 9 ön çatalda devam ediyor. Şimdiye kadar, 9front çatal sistemi sağladı Kablosuz internet sürücüler, Ses sürücüleri, USB destek ve yerleşik oyun emülatörü, diğer özelliklerle birlikte.[16] Diğer yeni Plan 9'dan ilham alan işletim sistemleri arasında Harvey OS bulunmaktadır[17] ve Jehanne OS.[18]

TarihSerbest bırakmakYorum Yap
1992Plan 9 1. baskıBell Labs tarafından üniversitelerde yayınlandı
1995Plan 9 2. baskıBell Labs tarafından ticari olmayan amaçlarla yayınlandı[19]
2000Plan 9 3. baskı. (Brezilya)Lucent Technologies tarafından bir açık kaynak lisansı altında yayınlandı
2002Plan 9 4. baskıLucent Technologies tarafından yeni bir ücretsiz yazılım lisansı altında yayınlandı

Tasarım konseptleri

Bell Labs'ın 9 numaralı planı, Quakers: yaşamın basitliği, özellikle de konuşmanın açıklığı için dikkat çeken 'İç Işık' üzerindeki vurgusuyla ayırt edilir. Quaker'lar gibi Plan 9 da din değiştirmiyor.

—Sape J. Mullender, Pierre G. Jansen.
Gerçek İşletim Sisteminde Gerçek Zaman[20]

Plan 9 bir dağıtılmış işletim sistemi, bir ağ oluşturmak için tasarlanmıştır heterojen ve coğrafi olarak ayrılmış bilgisayarlar tek bir sistem olarak işlev görür.[21] Tipik bir Plan 9 kurulumunda, kullanıcılar pencere sistemini çalıştıran terminallerde çalışır. Rio ve yoğun bilgi işlem gerektiren işlemlerin üstesinden gelen CPU sunucularına erişirler. Kalıcı veri depolama, dosya sunucuları ve arşiv depolama olarak görev yapan ek ağ ana bilgisayarları tarafından sağlanır.[22]

Tasarımcıları şunu belirtiyor:

[t] Sistemin temelleri iki fikir üzerine inşa edilmiştir: süreç başına isim alanı ve basit bir mesaj odaklı dosya sistemi protokolü.

— Turna balığı et al.[23]

İlk fikir, çoğu işletim sisteminin aksine, süreçler (çalışan programlar) her birinin kendi ad alanı, diğer işletim sistemlerinin dosya sistemi olarak adlandırdığı şeye karşılık gelir; tek bir yol adı, farklı işlemler için farklı kaynaklara başvurabilir. Bu kurulumun potansiyel karmaşıklığı, ortak kaynaklar için bir dizi geleneksel konum tarafından kontrol edilir.[24][25]

İkinci fikir, işlemlerin diğer işlemlerin ad alanında görünen sanal dosyalar sağlayarak hizmetlerini diğer işlemlere sunabileceği anlamına gelir. müşteri işlemin böyle bir dosyadaki girdi / çıktı arası iletişim iki süreç arasında. Bu şekilde Plan 9, Unix kavramını genelleştirir. dosya sistemi bilgi işlem kaynaklarına erişimin merkezi noktası olarak. Unix'in fikrini taşır. cihaz dosyaları çevresel cihazlara erişim sağlamak için (fareler, çıkarılabilir medya vb.) ve binmek dosya sistemleri fiziksel olarak farklı dosya sistemlerinde hiyerarşik bir ad alanına yerleşir, ancak standartlaştırılmış bir protokol konuşan ve hizmetlerini ad alanının bir parçası olarak ele alan bir sunucu programına bağlantı kurma olasılığını ekler.

Örneğin, 8½ olarak adlandırılan orijinal pencere sistemi bu olasılıkları aşağıdaki gibi kullandı. Plan 9, üç sözde dosya aracılığıyla bir terminal üzerindeki kullanıcı arayüzünü temsil eder: farefare hareketleri ve düğme tıklamaları hakkında bildirim almak için bir program tarafından okunabilen, Eksilerimetin girişi / çıkışı gerçekleştirmek için kullanılabilen ve bitblt, grafik işlemlerini gerçekleştiren yazı (bkz. biraz yıldırım ). Pencere sistemi bu aygıtları çoğaltır: içinde bazı programları çalıştırmak için yeni bir pencere oluştururken, önce içinde yeni bir ad alanı kurar. fare, Eksileri ve bitblt kendisinin erişebildiği gerçek cihaz dosyalarını gizleyerek kendisine bağlanır. Böylece pencere sistemi, programdan tüm girdi ve çıktı komutlarını alır ve bunları, çıktıları gerçek ekran cihazına göndererek ve o anda odaklanmış olan programa klavye ve fare girdisini vererek uygun şekilde işler.[22] Programın, doğrudan işletim sisteminin aygıt sürücüleriyle mi yoksa pencere sistemiyle mi iletişim kurduğunu bilmesine gerek yoktur; yalnızca ad alanının ayarlandığını varsaymak zorundadır, böylece bu özel dosyalar girdi türünü sağlar ve beklediği türdeki iletileri kabul eder.

Plan 9'un dağıtılmış çalışması, işlem başına ad alanlarına da dayanır ve istemci ve sunucu süreçlerinin makineler arasında az önce belirtildiği gibi iletişim kurmasına izin verir. Örneğin, İşlemci command bir hesaplama sunucusunda uzak bir oturum başlatır. Komut, kullanıcının terminal cihazları da dahil olmak üzere yerel ad alanının bir bölümünü dışa aktarır (fare, Eksileri, bitblt), sunucuya, böylece uzak programlar terminalin faresini, klavyesini ve ekranını kullanarak, uzaktan oturum açma ve paylaşılan bir ağ dosya sistemini birleştirerek girdi / çıktı gerçekleştirebilir.[22][23]

9P protokolü

Diğer programlara dosya olarak hizmet sağlamak isteyen tüm programlar, 9P adı verilen birleşik bir protokol konuşur. Diğer sistemlerle karşılaştırıldığında bu, özel programlama arayüzleri. 9P, genel, orta agnostik, bayt odaklı bir sunucu ile bir istemci arasında iletilen iletileri sağlayan protokol.[26] Protokol, hem kullanıcı arayüzü hem de ağ dahil olmak üzere süreçlere, programlara ve verilere başvurmak ve iletişim kurmak için kullanılır.[27] 4. baskının yayınlanmasıyla birlikte değiştirildi ve 9P2000 olarak yeniden adlandırıldı.[12]

Diğer birçok işletim sisteminin aksine, Plan 9 özel uygulama programlama arayüzleri (gibi Berkeley soketleri, X kaynakları veya ioctl cihazlara erişmek için).[26] Bunun yerine, Plan 9 aygıt sürücüleri, donanıma sıradan dosyadan erişilebilmesi için denetim arayüzlerini bir dosya sistemi olarak uygular. giriş çıkış operasyonlar okumak ve yazmak. Sonuç olarak, cihazın ağ üzerinden paylaşılması, karşılık gelen dizin ağacının hedef makineye monte edilmesiyle gerçekleştirilebilir.[5]

Birlik dizinleri ve ad alanları

Plan 9, kullanıcının dosyaları toplamasına izin verir ( isimler) tek bir konumdaki farklı dizin ağaçlarından. Sonuç Birlik dizin temeldeki dizinlerin birleştirilmesi gibi davranır (birleştirme sırası kontrol edilebilir); kurucu dizinler aynı ada sahip dosyalar içeriyorsa, birleşim dizininin bir listesi (ls veya lc) sadece yinelenen isimleri bildirecektir.[28] Tek bir yol adının çözümlemesi yukarıdan aşağıya gerçekleştirilir: eğer dizinler üst ve alt birleşmiş sen ile üst önce sonra Adın gösterir üst / isim eğer varsa alt / isim sadece varsa ve üst / isim mevcut değilve yoksa dosya yok. Alt dizinlerin yinelemeli birleşimi yapılmaz, bu nedenle üst / alt dizin var, içindeki dosyalar alt / alt dizin sendika aracılığıyla erişilemez.[29]

Kullanılarak bir birleşim dizini oluşturulabilir. bağlamak komut:

; bağlama / kol / bin / bin; bağlama -a / acme / bin / arm / bin; bağlama -b / usr / alice / bin / bin

Yukarıdaki örnekte, / kol / bin monte edilir /çöp Kutusuiçeriği / kol / bin önceki içeriğini değiştirmek /çöp Kutusu. Acme 's çöp Kutusu dizin daha sonra birleşim kurulur /çöp Kutusuve Alice'in kişisel çöp Kutusu dizin daha önce birleşimlidir. Kimden bir dosya istendiğinde /çöp Kutusuönce aranır / usr / alice / bin, daha sonra / kol / binve sonra sonunda / acme / bin / kol.

Ayrı işlem ad alanları böylece bir arama yolu kabukta. Unix kabuklarında, bir komut verildiğinde programları aramak için bir dizin listesi olduğunda, Plan 9 kabuğu yalnızca dizine bakar. /çöp Kutusu; komut ekleme, birkaç dizini tek bir /çöp Kutusu.[22]

Ayrıca, çekirdek her işlem için ayrı bağlama tabloları tutabilir,[20] ve böylece her işleme kendi dosya sistemini sağlayabilir ad alanı. İşlemlerin ad alanları bağımsız olarak oluşturulabilir ve kullanıcı, heterojen ad alanlarına sahip programlarla aynı anda çalışabilir.[23] Ad alanları, aşağıdakilere benzer yalıtılmış bir ortam oluşturmak için kullanılabilir. chroot ama daha güvenli bir şekilde.[26]

Plan 9'un sendika rehberi mimarisinden ilham alındı 4.4 BSD ve Linux birlik dosya sistemi uygulamalar,[28] BSD birleşim birleştirme tesisinin geliştiricileri, Plan 9'daki dizinlerin yinelemeli olmayan bir şekilde birleştirilmesini "genel amaçlı kullanım için çok kısıtlayıcı" bulmasına rağmen.[29]

Özel sanal dosya sistemleri

/ proc

İle listeleme işlemleri dizinin içeriğini listeleme (ls, lc) komutu[30] içinde / proc

Sistem çağrıları yapmak yerine süreç yönetimi Plan 9 şunları sağlar: / proc dosya sistemi. Her biri süreç sıradan dosya IO sistem çağrıları tarafından işlenebilen bilgi ve kontrol dosyalarını içeren bir dizin olarak görünür.[31]

Dosya sistemi yaklaşımı, Plan 9 süreçlerinin aşağıdaki gibi basit dosya yönetimi araçlarıyla yönetilmesine olanak tanır: ls ve kedi; ancak işlemler dosya olarak kopyalanamaz ve taşınamaz.[3]

/ağ

Plan 9'da özel sistem çağrıları veya ioctls ağ yığınına veya ağ donanımına erişmek için. Bunun yerine /ağ dosya sistemi kullanılmaktadır. Ağ bağlantıları, dosyaları kontrol etmek için kontrol mesajlarının okunması ve yazılmasıyla kontrol edilir. Aşağıdaki gibi alt dizinler / net / tcp ve / net / udp kendi protokollerine arayüz olarak kullanılır.[3]

Unicode

Yönetimin karmaşıklığını azaltmak için karakter kodlamaları Plan 9 kullanımları Unicode sistem genelinde. İlk Unicode uygulaması ISO 10646. Ken Thompson UTF-8'i icat etti. yerli Plan 9'da kodlama. Sistemin tamamı 1992'de genel kullanıma dönüştürüldü.[32] UTF-8, geleneksel ile geriye dönük uyumluluğu korur boş sonlu dizeler, daha güvenilir bilgi işlemeyi ve çok dilli dize verilerinin Unix boruları birden çok süreç arasında. Tüm kültürler ve bölgeler için karakterlerle tek bir UTF-8 kodlaması kullanmak, kod kümeleri arasında geçiş yapma ihtiyacını ortadan kaldırır.[33]

Tasarım konseptlerinin birleştirilmesi

Kendi başlarına ilginç olsalar da, Plan 9'un tasarım konseptlerinin bir araya getirildiğinde en faydalı olacağı düşünülüyordu. Örneğin, bir ağ adresi çevirisi (NAT) sunucusu, bir birleşim dizini oluşturulabilir, yönlendirici 's /ağ kendine ait dizin ağacı /ağ. Benzer şekilde, bir sanal özel ağ (VPN) bir birleşim dizini üzerine bindirilerek uygulanabilir a /ağ uzaktan hiyerarşi ağ geçidi, genel internet üzerinden güvenli 9P kullanarak. İle bir sendika rehberi /ağ hiyerarşi ve filtreler şu amaçlarla kullanılabilir: kum havuzu güvenilmeyen bir uygulama veya bir güvenlik duvarı.[26] Aynı şekilde, dağıtılmış bir bilgi işlem ağı, bir birleşim dizini ile oluşturulabilir. / proc uzak ana bilgisayarlardan gelen hiyerarşiler, yerelmiş gibi onlarla etkileşim kurmaya izin verir.

Birlikte kullanıldığında, bu özellikler, mevcut hiyerarşik ad sistemini yeniden kullanarak karmaşık bir dağıtılmış bilgi işlem ortamının birleştirilmesine izin verir.[3]

Plan 9 için Yazılım

Sistemin tasarımının bir yararı olarak, Plan 9'daki çoğu görev kullanılarak gerçekleştirilebilir. ls, kedi, grep, cp ve rm ile birlikte yardımcı programlar rc kabuk (varsayılan Plan 9 kabuğu).

Factotum bir kimlik doğrulama ve anahtar yönetimi Plan 9 için sunucu. Diğer programlar adına kimlik doğrulamasını, gizli anahtarlar ve uygulama ayrıntılarının yalnızca Factotum tarafından bilinmesi gerekir.[34]

Grafik programlar

Plan 9 çalışıyor acme ve rc

Aksine Unix Plan 9, grafikler düşünülerek tasarlandı.[27] Önyüklemeden sonra, Plan 9 terminali Rio kullanıcının yeni pencere görüntüleme oluşturabileceği pencereleme sistemi rc.[35] Bu kabuktan çağrılan grafik programları, onun penceresinde onun yerini alır.

tesisatçı sağlar arası iletişim sistem genelinde hiper bağlantıya izin veren mekanizma.

Sam ve acme Plan 9'un metin editörleridir.[36]

Depolama sistemi

Plan 9, Kfs, Paq, Cwfs, ŞİŞMAN, ve Fosil dosya sistemleri. Sonuncusu, Bell Laboratuvarlarında özellikle Plan 9 için tasarlandı ve anlık görüntü depolama özelliği sağlar. Doğrudan bir sabit sürücü ile kullanılabilir veya Venti, bir arşiv dosya sistemi ve kalıcı veri depolama sistemi.

Yazılım geliştirme

Plan 9 için dağıtım paketi, özel derleyici varyantlarını ve programlama dillerini içerir ve bir pencereleme ile birlikte özel bir kitaplık seti sağlar Kullanıcı arayüzü Plan 9'a özgü sistem.[37] Sistemin büyük kısmı C lehçesiyle yazılmıştır (ANSI C bazı uzantılar ve bazı diğer özellikler dışarıda bırakılarak). Bu dil için derleyiciler taşınabilirlik göz önünde bulundurularak özel olarak oluşturuldu; yazarlarına göre, "hızlı derler, yavaş yükler ve orta kalitede nesne kodu üretirler".[38]

Bir eşzamanlı programlama dili aranan Alef ilk iki sürümde mevcuttu, ancak daha sonra bakım nedenleriyle kaldırıldı ve yerine bir iş parçacığı Kitaplık için C.[39][40]

Unix uyumluluğu

Plan 9'un Unix kavramlarının daha ileri bir gelişimi olması beklenirken, önceden var olan Unix yazılımıyla uyumluluk hiçbir zaman projenin hedefi olmadı. Birçok Komut satırı Plan 9'un yardımcı programları, Unix benzerlerinin adlarını paylaşır, ancak farklı şekilde çalışır.[30]

Plan 9 destekleyebilir POSIX uygulamalar ve taklit edebilir Berkeley soket arayüzü içinden ANSI / POSIX Ortamı (APE) uygulayan arayüz yakın ANSI C ve POSIX, bazı yaygın uzantılarla (yerel Plan 9 C arayüzleri hiçbir standarda uymuyor). Ayrıca, POSIX uyumlu bir kabuk içerir. APE'nin yazarları, APE'nin X Pencere Sistemi (X11) Plan 9'a, ancak X11'i göndermeseler de "çünkü onu düzgün bir şekilde desteklemek çok büyük bir iştir".[41] Bazı Linux ikili dosyaları, bir "linuxemu" (Linux emülatörü) uygulaması yardımıyla kullanılabilir; ancak hala devam eden bir çalışmadır.[42] Tersi, vx32 sanal makine, biraz değiştirilmiş bir Plan 9 çekirdeğinin, değiştirilmemiş Plan 9 programlarını destekleyen, Linux'ta bir kullanıcı işlemi olarak çalışmasını sağlar.[43]

Resepsiyon

Çağdaş işletim sistemleriyle karşılaştırma

1991'de Plan 9'un tasarımcıları, sistemlerini boyut açısından doksanların başındaki diğer işletim sistemleriyle karşılaştırarak, minimum ("çok kullanışlı olmasa da") bir sürümün kaynak kodunun boyutunun beşte birinden daha küçük olduğunu gösterdi. Mach mikro çekirdek herhangi bir aygıt sürücüsü olmadan (5899 veya 4622 Kod satırları Plan 9 için metriğe bağlı olarak 25530 satır). Tam çekirdek 18000 satır kod içeriyordu.[22] (2006 sayımına göre, çekirdek o zamanlar yaklaşık 150.000 satırdı, ancak bu, 4,8 milyondan fazla satırla karşılaştırıldı. Linux.[26])

Ticari Unix dünyasının yanı sıra işletim sistemleri araştırma topluluğu içinde, Plan 9 tasarım çabasıyla eşzamanlı olarak dağıtılmış bilgi işlem ve uzaktan dosya sistemi erişimi sağlamaya yönelik diğer girişimler gerçekleştirildi. Bunlar şunları içeriyordu Ağ Dosya Sistemi ve ilişkili vnode mimari geliştirildi Sun Microsystems ve Unix modelinden daha radikal sapmalar, örneğin Sprite İşletim sistemi Kaliforniya Üniversitesi, Berkeley. Sprite geliştiricisi Brent Welch, SunOS vnode mimarisinin Plan 9'un yetenekleri ile karşılaştırıldığında sınırlı olduğunu, çünkü önceden var olmasına rağmen uzaktan cihaz erişimini ve uzaktan süreçler arası iletişimi temiz bir şekilde desteklemediğine dikkat çekiyor. UNIX alan soketleri ("aslında kullanıcı düzeyindeki sunucuları adlandırmak için kullanılabilir") vnode mimarisiyle entegre edilmiştir.[24]

"Her şey bir dosyadır" ın bir eleştirisi, Plan 9'un metinsel mesaj tasarımı, bu paradigmanın kısıtlılıklarına işaret etti. daktilo Sun'ın arayüzleri nesne yönelimli işletim sistemi, İlkbahar:

Plan 9, her şeyi bir dosya gibi görünecek şekilde sınırlar. Çoğu durumda gerçek arayüz tipi, bir dosya tanımlayıcısına yazılması ve buradan okunması gereken mesajların protokolünü içerir. Bunu belirtmek ve belgelemek zordur ve herhangi bir otomatik tür denetimi tüm, çalışma zamanındaki dosya hataları dışında. (...) Bir sürecin örtük kök bağlamına göre [A] yol adı, sadece bir hizmeti adlandırmanın yolu. Bir adın bir nesneye bağlanması, yalnızca nesneye yeni adla aynı bağlamda mevcut bir ad verilerek yapılabilir. Bu nedenle, arayüz referansları basitçe olumsuz süreçler arasında aktarılabilir, ağlar arasında çok daha az. Bunun yerine, iletişim, hataya eğilimli ve ölçeklenmeyen kurallara dayanmalıdır.

— Roscoe; orijinalde vurgu.[44]

Plan 9, Sprite ve üçüncü bir çağdaş dağıtılmış araştırma işletim sisteminin daha sonra geriye dönük bir karşılaştırması, Amip, bulundu

[Amoeba ve Sprite] oluşturdukları ortamlar, işletim sistemi içinde sıkı bir şekilde birleştirildiğinden, harici hizmetlerle iletişimi zorlaştırır. Bu tür sistemler, UNIX modelinden radikal bir şekilde ayrılmaktan muzdariptir ve bu da zaten mevcut olan yazılımın platforma taşınmasını engellemektedir (...). Geliştiricilerin eksikliği, çok küçük desteklenen donanım yelpazesi ve Plan 9 ile karşılaştırıldığında bile küçük olan kullanıcı tabanı, bu sistemlerin benimsenmesini önemli ölçüde yavaşlatmıştır (...). Geriye dönüp bakıldığında, Plan 9, geliştiricilerin ilgisini çekmeyi başaran ve bugüne kadar hayatta kalmasını garanti edecek kadar uzun süre ticari projelerde kullanılabilen, o zamandan beri dağıtılan tek araştırma işletim sistemiydi.

— Mirtchovski, Simmonds ve Minnich[45]

Etki

Wmii X pencere yöneticisi esinlendi acme Plan 9 projesinden bir metin editörü.[46]

Plan 9, Unix'in bütünleşik bir konseptinin - her sistem arayüzünün bir dizi dosya olarak temsil edilebileceğini - modern bir dağıtılmış sistemde başarıyla uygulanabileceğini gösterdi.[35] Unicode'un UTF-8 karakter kodlaması gibi Plan 9'daki bazı özellikler, diğer işletim sistemlerinde uygulanmıştır. Linux gibi Unix benzeri işletim sistemleri Plan 9'un dosya sistemi olan 9P'yi uygulamış ve şu özellikleri benimsemiştir: Rfork, Plan 9'un süreç oluşturma mekanizması.[47] Ek olarak Kullanıcı Alanından Plan 9, sam ve acme editörleri de dahil olmak üzere Plan 9'un uygulamalarının ve araçlarının birçoğu Unix ve Linux sistemlerine taşındı ve belli bir düzeyde popülerlik kazandı. Birkaç proje, GNU Linux çekirdeğini Plan 9 işletim sistemi programları ile çevreleyen işletim sistemi programları.[48][49] 9wm pencere yöneticisi esinlendi Plan 9'un eski pencereleme sistemi;[50] Wmii ayrıca Plan 9'dan da büyük ölçüde etkilenir.[46]Bilgisayar bilimi araştırmalarında Plan 9, bir ızgara hesaplama platform[51][45] ve araştırma için bir araç olarak Her yerde bilgi işlem olmadan ara yazılım.[52]Ticarette Plan 9 temel alır Coraid Ancak Plan 9, Unix'e hiçbir zaman popülerlik açısından yaklaşmamış ve öncelikle bir araştırma aracı olmuştur:

[I] Plan 9, Unix'te atasını yerinden edecek kadar zorlayıcı bir gelişme olmanın gerisinde kaldığı için başarısız gibi görünüyor. Plan 9 ile karşılaştırıldığında, Unix gıcırdıyor ve çatırdıyor ve bariz pas lekelerine sahip, ancak işi konumunu korumak için yeterince iyi yapıyor. Burada hırslı sistem mimarları için bir ders var: Daha iyi bir çözümün en tehlikeli düşmanı, yeterince iyi olan mevcut bir kod tabanıdır.

Plan 9'un düşük düzeyde benimsenmesine katkıda bulunan diğer faktörler arasında ticari yedekleme eksikliği, düşük sayıda son kullanıcı uygulaması ve aygıt sürücüleri.[35][36]

Plan 9 savunucuları ve geliştiricileri, benimsenmesini engelleyen sorunların çözüldüğünü, dağıtılmış bir sistem, geliştirme ortamı ve araştırma platformu olarak orijinal hedeflerine ulaşıldığını ve ılımlı ancak artan popülariteye sahip olduğunu iddia ediyor.[kaynak belirtilmeli ] Cehennem barındırılan yetenekleri sayesinde, Plan 9 teknolojilerini heterojen hesaplama ızgaralarının barındırılan bir parçası olarak diğer sistemlere getirmek için bir araç olmuştur.[53][54][55]

9atom ve 9front dahil olmak üzere Plan 9'u genişletmek için çeşitli projeler çalışıyor. Bunlar çatallar ek ile artırma Planı 9 donanım sürücüleri Upas'ın geliştirilmiş bir sürümü de dahil olmak üzere yazılım e-posta sistem, Git derleyici, Mercurial sürüm kontrol sistemi destek ve diğer programlar.[7][56] Plan 9 taşınan için Ahududu Pi tek kartlı bilgisayar.[57][58] Harvey projesi, özel Plan 9 C derleyicisini şununla değiştirmeye çalışıyor: GCC gibi modern geliştirme araçlarından yararlanmak için GitHub ve Örtünme ve geliştirmeyi hızlandırın.[59]

Türevler ve çatallar

Cehennem Plan 9'un soyundan geliyor ve özellikle cihazlar ve Styx / 9P2000 protokolü çevresinde birçok tasarım konseptini ve hatta kaynak kodunu çekirdekte paylaşıyor.Inferno, Bell Labs'ın Unix mirasını Plan 9 ile paylaşıyor ve Unix felsefesi. Inferno'daki komut satırı araçlarının çoğu, şu dile çevrilen Plan 9 araçlarıydı. Limbo.

  • 9atom[60] 386 ekleyerek Plan 9 dağıtımını artırır PAE kernel, bir amd64 cpu ve terminal kernel, nupas, extra pc hardware support, IL and Ken's fs.
  • 9ön[61] Plan 9'un bir çatalı. Bell Labs içindeki özel geliştirme kaynaklarının eksikliğini gidermeye başladı ve çeşitli düzeltmeler ve iyileştirmeler biriktirdi.
  • 9 miras[62] alternatif bir dağıtımdır. Mevcut Plan 9 dağıtımına dayalı bir dizi yama içerir.
  • Akaros[63] çok çekirdekli mimariler ve büyük ölçekli SMP sistemleri için tasarlanmıştır.
  • Harvey OS[64] Plan 9 kodunu gcc ve clang ile birlikte çalıştırma çabasıdır.
  • JehanneOS[65] Plan 9'dan türetilen deneysel bir işletim sistemidir. Kullanıcı alanı ve modülleri çoğunlukla 9front'tan, derleme sistemi Harvey OS'den ve çekirdeği, Plan9-9k 64-bit Plan9 çekirdeği.
  • NIX[66] çok çekirdekli sistemler ve bulut bilişimi hedefleyen bir Plan9 çatalı.

Lisans

Dördüncü baskının Nisan 2002'de yayınlanmasından itibaren,[12] Bell Labs'ın Plan 9'un tam kaynak kodu şu adresten ücretsiz olarak edinilebilir: Lucent Public License 1.02, bir açık kaynak lisansı tarafından Açık Kaynak Girişimi (OSI), ücretsiz yazılım tarafından lisans Özgür Yazılım Vakfı ve geçer Debian Özgür Yazılım Yönergeleri.[26]

Şubat 2014'te California Üniversitesi, Berkeley, mevcut Plan 9 tarafından yetkilendirildi Telif hakkı sahibiAlcatel-Lucent - daha önce Lucent Public License, Version 1.02 tarafından yönetilen tüm Plan 9 yazılımlarını, GNU Genel Kamu Lisansı, Versiyon 2.[67]

Ayrıca bakınız

Referanslar

  1. ^ Lucent Technologies (2006). "Glenda, Plan 9 Tavşanı". Alındı 2008-12-02.
  2. ^ "plan9checksums". Bell Laboratuvarları. Arşivlenen orijinal 2017-06-01 tarihinde. Alındı 2019-07-25. 10 Ocak Cmt 04:04:55 EST 2015 ... plan9.iso.bz2
  3. ^ a b c d Pike, R.; Presotto, D .; Dorward, S .; Flandrena, B .; Thompson, K.; Trickey, H .; Winterbottom, P. "Bell Labs'tan Plan 9". Bell Laboratuvarları. Lucent Technologies. Alındı 2016-02-26.
  4. ^ http://akaros.cs.berkeley.edu/files/Plan9License
  5. ^ a b c Raymond, Eric S. (2003-09-17). "Plan 9: Geleceğin Olduğu Yol". UNIX Programlama Sanatı. Addison-Wesley. ISBN  0-13-142901-9. Alındı 2007-05-07.
  6. ^ Robertson, James (2011-07-16). "Plan 9 Çatallı, 9 Önden Devam Ediyor". OSNews. Alındı 2011-12-31.
  7. ^ a b c "9atom". Alındı 2011-11-11.
  8. ^ "UNIX sisteminin mucitlerinden Bell Labs'tan Plan 9 geliyor" (Basın bülteni). Lucent Technologies. 1995-07-18. Arşivlenen orijinal 2006-02-09 tarihinde.
  9. ^ McIlroy Doug (Mart 1995). "Önsöz". Bell Laboratuvarları (2. baskı). Lucent Technologies. Alındı 2016-02-26.
  10. ^ Lee, Yvonne L. (24 Temmuz 1995). "AT&T Bell Labs, gömülü sistemler için Plan 9 OS gönderiyor". InfoWorld.
  11. ^ Pontin, Jason (19 Şubat 1996). "AT&T, Java rakibi için planlarını açıkladı". InfoWorld. s. 3.
  12. ^ a b c Loli-Queru, Eugenia (2002-04-29). "Bell Labs, Plan 9'un Yeni Sürümünü Yayınladı". OSNews. Alındı 2011-12-31.
  13. ^ "Nasıl katkıda bulunulur?". Bell Laboratuvarları. Lucent Technologies. Alındı 2011-11-30.
  14. ^ "Güncel kalmak". Bell Laboratuvarları. Lucent Technologies. Alındı 2019-07-24.
  15. ^ "Plan 9 - Ek Yazılım". 2009. Alındı 2016-03-06.
  16. ^ "FQA 1 - 9front'a Giriş". fqa.9front.org. Alındı 2018-02-15.
  17. ^ "Harvey OS". harvey-os.org. Alındı 2018-02-15.
  18. ^ "Jehanne". jehanne.io. Alındı 2018-02-15.
  19. ^ "İlk yayının halka duyurulması". 9 hayran. 1995-07-16. Arşivlenen orijinal 2008-07-06 tarihinde.
  20. ^ a b Mullender, Sape J .; Jansen, Pierre G. (2004-02-26). "Gerçek İşletim Sisteminde Gerçek Zamanlı". Herbert, Andrew J .; Spärck Jones, Karen (eds.). Bilgisayar sistemleri: teori, teknoloji ve uygulamalar: Roger Needham'a bir övgü. Springer Science + Business Media. s. 211. ISBN  978-0-387-20170-2. Alındı 2011-12-24.
  21. ^ Hancock Brian (2003). "Unix'i Yeniden Keşfetmek: Plan 9 işletim sistemine giriş". Kütüphane Hi Tech. MCB YUKARI. 21 (4): 471–76. doi:10.1108/07378830310509772.
  22. ^ a b c d e Presotto, Dave; Pike, Rob; Thompson, Ken; Trickey, Howard. Plan 9, Dağıtılmış Bir Sistem. Proc. İlkbahar 1991 EurOpen Konferansı. CiteSeerX  10.1.1.41.9192.
  23. ^ a b c Pike, R.; Presotto, D .; Thompson, K.; Trickey, H .; Winterbottom, P. "Plan 9'da İsim Alanlarının Kullanımı". Bell Laboratuvarları. Alındı 2016-02-26.
  24. ^ a b Welch Brent (1994). "Üç dağıtılmış dosya sistemi mimarisinin karşılaştırması: Vnode, Sprite ve Plan 9". Hesaplama Sistemleri. 7 (2): 175–199. CiteSeerX  10.1.1.46.2817.
  25. ^ ad alanı (4) – Plan 9 Programcı El Kitabı, Cilt 1
  26. ^ a b c d e f Pereira, Uriel M. (2006). Unix Spirit Özgürleştirildi: Bell Labs'tan Plan 9 (AVI ). FOSDEM. Alındı 2011-12-02. Lay özeti (PDF).
  27. ^ a b Minnich Ron (2005). "Neden Plan 9 henüz ölmedi ve bundan ne öğrenebiliriz?" (PDF). Los Alamos Ulusal Laboratuvarı. Arşivlenen orijinal (PDF) 2016-02-25 tarihinde. Alındı 2016-02-26.
  28. ^ a b Valerie Aurora (2009-03-25). "Union dosya sistemleri: Uygulamalar, bölüm I". LWN.net. Alındı 2011-12-05.
  29. ^ a b Pendry, Jan-Simon; McKusick, Marshall Kirk (1995). 4.4BSD-Lite'da Union Mounts. Proc. Kış USENIX Conf.
  30. ^ a b "Plan 9 komut çevirisine UNIX". Bell Laboratuvarları. Lucent Technologies. Alındı 2011-12-02.
  31. ^ Ballesteros, Francisco J. (2007-09-28). "Bell Labs'tan Plan 9 kullanarak işletim sistemi soyutlamalarına giriş" (PDF). Universidad Rey Juan Carlos. Arşivlenen orijinal (PDF) 2010-09-22 tarihinde.
  32. ^ Pike, Rob (2003-04-30). "UTF-8 Geçmişi". Alındı 2006-04-27.
  33. ^ Lunde Ken (Ocak 1999). CJKV bilgi işleme. O'Reilly Media. s.466. ISBN  978-1-56592-224-2. Alındı 2011-12-23.
  34. ^ Cox, R .; Grosse, E .; Pike, R.; Presotto, D .; Quinlan, S. "Plan 9'da Güvenlik". Bell Laboratuvarları. Lucent Technologies. Alındı 2016-02-26.
  35. ^ a b c Hudson, Andrew (2006-07-19). "Plan 9 İşletim Sisteminin İncelenmesi". OSNews. Alındı 2011-12-31.
  36. ^ a b "Russ Cox ile röportaj". Kurulum. Bunu kullanır. 2011-04-09. Alındı 2012-01-01.
  37. ^ Dixon, Çubuk (2004). Açık kaynak yazılım yasası. Artech Evi. s. 213. ISBN  978-1-58053-719-3. Alındı 2011-12-25.
  38. ^ Thompson, Ken (Şubat 1992). "Yeni bir C Derleyicisi" (PDF). Avustralya UNIX Sistemleri Kullanıcı Grubu Bülteni. Kensington, AU: AUUG. 13 (1): 31–41. ISSN  1035-7521. Alındı 2011-12-25.
  39. ^ Pike, Rob. "Rio: Eşzamanlı Pencere Sisteminin Tasarımı" (PDF). Alındı 8 Mart 2013.
  40. ^ iplik (2) – Plan 9 Programcı El Kitabı, Cilt 1
  41. ^ Trickey, Howard. "APE - ANSI / POSIX Ortamı". Bell Laboratuvarları. Lucent Technologies. Alındı 2016-02-26.
  42. ^ "Linux emülasyonu". Bell Laboratuvarları. Lucent Technologies. Alındı 2016-02-26.
  43. ^ Ford, Bryan; Cox, Russ (2008). Vx32: x86'da Hafif, Kullanıcı Düzeyinde Sandboxing. USENIX Yıllık Tech. Conf. s. 293–306. CiteSeerX  10.1.1.212.9353.
  44. ^ Roscoe, Timothy (1995). Çoklu Hizmet İşletim Sisteminin Yapısı (PDF) (Doktora). Cambridge Üniversitesi. s. 22–23.
  45. ^ a b Mirtchovski, Andrey; Simmonds, Rob; Minnich Ron (2004). Plan 9 - şebeke hesaplamasına entegre bir yaklaşım. Proc. 18. Uluslararası Paralel ve Dağıtık İşleme Semp. IEEE. CiteSeerX  10.1.1.97.122.
  46. ^ a b "pencere yöneticisi geliştirildi 2". suckless.org. Arşivlenen orijinal 2011-12-31 tarihinde. Alındı 2012-01-02. [wmii], 9p dosya sistemi arabirimine sahiptir ve klasik ve döşeme (acme benzeri) pencere yönetimini destekler.
  47. ^ Torvalds, Linus (1999). "Linux kenarı". Açık Kaynaklar: Açık Kaynak Devriminden Sesler. O'Reilly. ISBN  1-56592-582-3.
  48. ^ "Glendix: Plan 9'un güzelliğini Linux'a getiriyor". Alındı 2011-12-01.
  49. ^ "Gentoo'dan Plan 9: Plan 9 Gentoo ile Buluşuyor". Gentoo Linux. Arşivlenen orijinal 2012-12-20 tarihinde. Alındı 2011-12-01.
  50. ^ "9wm Pencere Yöneticisi". 9wm. Alındı 2012-01-02. 9wm, X'in getirdiği kısıtlamalar dahilinde Plan 9 pencere yöneticisi 8-1 / 2'yi mümkün olduğunca taklit etmeye çalışan bir X pencere yöneticisidir.
  51. ^ "9grid". Bell Laboratuvarları. Lucent Technologies. Arşivlenen orijinal 2006-03-14 tarihinde. Alındı 2006-03-28.
  52. ^ Ballesteros, Francisco J .; Guardiola, Gorka; Soriano, Enrique; Leal Algara, Katia (2005). Geleneksel sistemler, yaygın uygulamalar için iyi çalışabilir. Bir örnek olay incelemesi: Bell Labs'ın Plan 9'u her yerde bulunur. IEEE Uluslararası Konf. Yaygın Bilgi İşlem ve İletişim üzerine. CiteSeerX  10.1.1.109.8131.
  53. ^ "Vita Nuova, Evotec OAI'ye Cehennem Şebekesi Sağlıyor" (PDF) (Basın bülteni). Vita Nuova. 2004-05-18. Alındı 2006-03-28.
  54. ^ "Rutgers Üniversite Kitaplıkları Inferno Data Grid'i Kuruyor" (PDF) (Basın bülteni). Vita Nuova. 2004-05-12. Alındı 2006-03-28.
  55. ^ "York Üniversitesi Biyoloji Bölümü, Vita Nuova'nın Inferno Data Grid'ini kurdu" (PDF) (Basın bülteni). Vita Nuova. 2004-05-04. Alındı 2006-03-28.
  56. ^ "plan9front - ön düştü". Alındı 2011-12-01.
  57. ^ Hayward, David (2013-05-09). "Raspberry Pi işletim sistemleri: 5 incelendi ve derecelendirildi". TechRadar. Arşivlenen orijinal 7 Haziran 2013 tarihinde. Alındı 2014-04-20.
  58. ^ "Raspberry Pi'ye Plan 9 nasıl kurulur". eLinux. Alındı 2014-11-16.
  59. ^ Jurado, Álvaro; Fernández, Rafael; du Colombier, David; Minnich, Ron; Nyrhinen, Aki; Floren, John. Harvey (PDF). USENIX ATC BOF oturumu.
  60. ^ "9atom".
  61. ^ "9FRONT.ORG PLANI DÜŞTÜ".
  62. ^ "9 miras".
  63. ^ http://akaros.cs.berkeley.edu
  64. ^ "Harvey OS".
  65. ^ "JehanneOS".
  66. ^ "NIX".
  67. ^ Sharwood, Simon (2014-02-14). "Plan 9, Lucent lisans alanından taşınıyor". Kayıt. Alındı 2014-04-20.

Dış bağlantılar