Plan 9操作系統(tǒng)?沒聽說過….
但事實是,連Linux、Windows都得叫它一聲“老大哥”!
沒錯,這套40年前由“C語言之父”開發(fā)的操作系統(tǒng),如今仍然在深刻影響著Linux、Windows。
最新消息的消息是,擁有Plan 9版權(quán)的美國貝爾實驗室,剛剛宣布下放版權(quán)給開發(fā)者社區(qū)。
就是說,Plan 9這個在幕后默默影響行業(yè)40年的分布式操作系統(tǒng),要正式“復(fù)活”了。
Plan 9系統(tǒng)是干什么的?
大名鼎鼎的貝爾實驗室,是C語言,以及Linux系統(tǒng)的前身Unix誕生地。
當(dāng)然,這里也誕生了晶體管、激光器、太陽能電池、發(fā)光二極管、數(shù)字交換機 、通信衛(wèi)星、電子數(shù)字計算機、蜂窩移動通信設(shè)備、長途電視傳送、仿真語言、有聲電影、立體聲錄音等等重大發(fā)明。
而Unix和C語言核心開發(fā)者,大家肯定不陌生,Ken Thompson和Dennis Ritchie,都是如雷貫耳的big name,且都獲得因為這兩項成就獲得圖靈獎。
但是外界鮮有人知的是,他倆80年代在貝爾實驗室還開發(fā)了另外一套操作系統(tǒng)Plan 9。
其實,Plan 9一開始并不是這個系統(tǒng)的名字,只是這個項目的代號,名字來源于電影史上因為“爛到極致”而備受追捧的科幻片《外星9號計劃》。
看來,C語言之父們,也是骨灰級科幻影迷~
之后,貝爾實驗室因為種種原因停止了對這個項目的投資,早期研發(fā)工作完成后,這個項目就擱置了起來,“Plan 9”漸漸就變成了這個系統(tǒng)的名字。
為什么要開發(fā)這樣一套系統(tǒng)?當(dāng)時,Ken和Dannis意識到,分布式的數(shù)據(jù)存儲調(diào)用方式日后會成為主流,所以需要做一套簡潔優(yōu)雅實用的系統(tǒng)來服務(wù)這種需求。
Plan 9的開發(fā),沒有依賴任何Unix已有的基礎(chǔ),而是完全另起爐灶。
以當(dāng)時的眼光來看,Plan 9十分先進超前,模式與傳統(tǒng)操作系統(tǒng)完全不同。
Plan 9的結(jié)構(gòu)是一個松散耦合的服務(wù)集合,這些服務(wù)可能被托管在不同的機器上。
設(shè)計的關(guān)鍵概念是每個進程的名稱空間:即服務(wù)可以映射到固定的本地名稱上,因此,即使當(dāng)前的服務(wù)被提供相同功能的其他服務(wù)所取代,使用這些服務(wù)的程序也不用改變。
Plan 9是真正的分布式操作系統(tǒng),而不僅僅是集成了幾個Unix功能這么簡單。你可以毫不費力地在網(wǎng)絡(luò)上的多臺主機上執(zhí)行任何程序,可以使用網(wǎng)絡(luò)上任何主機的任何資源,包括文件、進程、圖形、網(wǎng)絡(luò)、磁盤。
如果Linux也能這樣工作,那么就沒人需要Kubernetes了。
通俗的說,如果Unix或Linux中 “一切都是文件”,那么Plan 9則是 “一切都是網(wǎng)絡(luò)文件系統(tǒng)”。
如果你有一臺筆記本和一臺臺式機,而連接了打印機的卻只有臺式機,那使用筆記本能不能直接打???
在Linux中,你必須設(shè)置CUPS,打開網(wǎng)絡(luò)端口,下載驅(qū)動程序,設(shè)置兩臺機器都能和打印機通信。
而在在Plan 9中,你的筆記本電腦只需要通過網(wǎng)絡(luò)打開桌面的打印機文件就可以打印了。
Plan 9到底有多先進?盡管他本身被貝爾實驗室雪藏起來,但是,Plan 9中的很多經(jīng)典設(shè)計和思路,一直沿用至今。
Linux、Windows、5G,都借鑒Plan 9
Eric S. Raymond在他的著作中分析了為何Plan 9最終下馬。
他認(rèn)為,Plan 9最后會失敗單純只是因為它的完善程度不夠大。當(dāng)時,雖然Unix看來破破爛爛又有明顯缺失,但是它還是能把工作完成,這就足以保住它的地位了。
開創(chuàng)性的Plan 9最終沒能“起飛”,但它的創(chuàng)新卻被許多商業(yè)操作系統(tǒng)所采用。
比如,Linux中廣泛普及的通過文件系統(tǒng)提供操作系統(tǒng)服務(wù)的概念就出自Plan 9。
此外,Plan 9極簡主義窗口系統(tǒng)設(shè)計已經(jīng)被無數(shù)系統(tǒng)借鑒,包括Windows:
而今天在瀏覽器中普遍使用的UTF-8字符編碼,最初就是為Plan 9發(fā)明的,并在Plan 9中首次實現(xiàn)。
Plan 9的分布式設(shè)計也在諾基亞-貝爾實驗室的項目中得以延續(xù),比如World Wide Streams,這套流處理程序今天部署在地理上相隔甚遠(yuǎn)的多個5G邊緣云和核心云的計算節(jié)點上。
可以說,今天流行的微服務(wù)架構(gòu),早在幾十年前,Plan 9就已經(jīng)提出了。
從這個角度來看,Plan 9其實從來沒有真正“隱退”過。
幾十年來,一直有民間的愛好者自發(fā)組成社區(qū)對Plan 9進行開發(fā),而最近,貝爾實驗室則官宣完全“復(fù)活”Plan 9,直接將版權(quán)下放給開發(fā)者社區(qū)。
Plan 9復(fù)活后要做什么?
獲得貝爾實驗室官方認(rèn)可的開發(fā)者社區(qū),名字叫Plan 9基金會,是愛好者們自下而上組織起來的,2020年9月剛剛成立。
基金會的主頁上,只寫明了將來會致力于Plan 9的開發(fā)和應(yīng)用,具體的工作計劃還沒有出臺。
而貝爾實驗室對于Plan 9能日后能發(fā)揮多大作用似乎也沒有把握。
他們在官方聲明中說:
貝爾實驗室十分支持開源社區(qū),而Plan 9可能使全球軟件開發(fā)社區(qū)受益。
誰知道呢,也許Plan 9會成為新興的分布式云基礎(chǔ)設(shè)施的一部分,支撐著即將到來的工業(yè)革命。
好吧,看來貝爾實驗室打算徹底“放生”Plan 9。
只是不知道,假如日后Plan 9真的能成氣候,變成有巨大影響力的操作系統(tǒng),貝爾實驗室會不會后悔今天的決定呢?
Plan 9的開發(fā)者之一,同時也是C語言最主要的發(fā)明者Dennis Ritchie,是一個十分傳奇的計算機科學(xué)家。
有多傳奇?在一眾計算機大佬中,他是獨一份沒有博士學(xué)位的。
并且,他是出于一個“十分任性”的原因,自己放棄了博士學(xué)位。
關(guān)于Dennis Ritchie
丹尼斯·里奇(1941年9月9日-2011年10月12日),C語言之父,UNIX之父。曾擔(dān)任朗訊科技公司貝爾實驗室下屬的計算機科學(xué)研究中心系統(tǒng)軟件研究部的主任一職。
1978年與布萊恩·科爾尼干(Brian W. Kernighan)一起出版了名著《C程序設(shè)計語言(The C Programming Language)》。此書已翻譯成多種語言,被譽為c語言的圣經(jīng)。2011年10月12日(北京時間為10月13日),丹尼斯·里奇去世,享年70歲。
從二十世紀(jì)七十年代起,他的工作得到了很多計算機組織的公認(rèn)和表彰,如:美國計算機協(xié)會(ACM)授予的系統(tǒng)及語言杰出論文獎(1974);電氣和電子工程師協(xié)會(IEEE)的 Emmanuel Piore 獎(1982);貝爾實驗室特別人員獎(1983);美國計算機協(xié)會(ACM)的圖靈獎(1983); NEC公司的基金獎(1989);電氣和電子工程師協(xié)會(IEEE)的優(yōu)秀獎?wù)?;漢明勛章(1990);計算機先驅(qū)獎 (1994);計算機歷史博物館研究員 (1997) ;哈羅德·潘德獎(2003);日本獎 (2011);
丹尼斯·里奇,全名丹尼斯·麥卡利斯泰爾·里奇。美國計算機科學(xué)家,對C語言和其他編程語言、Multics和Unix等操作系統(tǒng)的發(fā)展做出了巨大貢獻。
里奇在哈佛大學(xué)學(xué)習(xí)物理學(xué)和應(yīng)用數(shù)學(xué)畢業(yè),1967年他進入貝爾實驗室,是朗訊技術(shù)公司系統(tǒng)軟件研究部門的領(lǐng)導(dǎo)人。
1983年他與肯·湯普森一起獲得了圖靈獎。理由是他們“研究發(fā)展了通用的操作系統(tǒng)理論,尤其是實現(xiàn)了UNIX操作系統(tǒng)”。
1999年兩人為發(fā)展C語言和Unix操作系統(tǒng)一起獲得了美國國家技術(shù)獎?wù)?。在里奇的成長歷程中,有兩個人對他的影響最大,一個是他父親,而另一個是他的摯友,同為UNIX發(fā)明人的肯·湯普森。尤其是后者。 有人問過丹尼斯,他的偶像是誰,不論在計算機領(lǐng)域還是其他領(lǐng)域?他說:我不是在英雄熏陶下成長起來的。
很顯然,對我職業(yè)生涯影響最大的人物是肯·湯普森。UNIX大部分是他的工作,同樣也是C語言的前輩,同樣Plan 9系統(tǒng)的大部分工作也是他做的。并且在這期間Ken做了第一個計算機象棋大師。
丹尼斯·里奇獲得學(xué)士學(xué)位并且獲得哈佛大學(xué)更高的學(xué)位,在那里以肄業(yè)生資格學(xué)習(xí)物理,以研究生資格學(xué)習(xí)應(yīng)用數(shù)學(xué)。
這時候,一個偶然的機會改變了他一生的選擇。里奇這樣描述他的轉(zhuǎn)變,當(dāng)他聽取一些非課程類的計算機講座后(大約1960年),開始對計算機著迷,并選擇了一學(xué)期正規(guī)(介紹性的)課程。
第一部分是模擬計算機,后面是關(guān)于打孔卡片設(shè)備的,然后是關(guān)于真正的數(shù)字式計算機的,并為Univac I號機準(zhǔn)備了一個程序。當(dāng)時他是一個主修物理學(xué)的學(xué)生,但是更加著迷于計算機處理的理論和實際問題。
因此,他的畢業(yè)論文大部分是理論方面的(遞歸函數(shù)的層次),但是也開始投入更大精力到實踐方面。作為助教為同一個介紹性課程的后續(xù)版本工作了三年——不過那時計算機已經(jīng)成了IBM7049。 1968年獲得數(shù)學(xué)博士,而論文正是上面的《遞歸函數(shù)的的層次》。
1967年加入貝爾實驗室,他的父親阿利斯泰爾·里奇(Alistair E. Ritchie)在那里有長時間的工作經(jīng)歷,他的父親對晶體管電路類的東西很有研究,正是由于父親的影響,也使得他走上了科學(xué)研究之路。不久后,加入了Multics項目,那時由貝爾實驗室、麻省理工學(xué)院和通用電器三家的合作項目。
里奇負(fù)責(zé)多道處理機的BCPL語言和GE650的編譯器,它們都是屬于GECOS系統(tǒng)的。同樣的,他也寫了ALTRAN語言的代數(shù)編譯器,那是用于符號計算機的一種語言和系統(tǒng)。