“C語言之父”40年前搞的Plan 9操作系統下放給開發者社區

2021年3月31日09:51:31 發表評論 3,685 ℃

Plan 9操作系統?沒聽說過….

但事實是,連Linux、Windows都得叫它一聲“老大哥”!

沒錯,這套40年前由“C語言之父”開發的操作系統,如今仍然在深刻影響著LinuxWindows

最新消息的消息是,擁有Plan 9版權的美國貝爾實驗室,剛剛宣布下放版權給開發者社區。

就是說,Plan 9這個在幕后默默影響行業40年的分布式操作系統,要正式“復活”了。

Plan 9系統是干什么的?

大名鼎鼎的貝爾實驗室,是C語言,以及Linux系統的前身Unix誕生地。

當然,這里也誕生了晶體管、激光器、太陽能電池、發光二極管、數字交換機 、通信衛星、電子數字計算機、蜂窩移動通信設備、長途電視傳送、仿真語言、有聲電影、立體聲錄音等等重大發明。

而Unix和C語言核心開發者,大家肯定不陌生,Ken Thompson和Dennis Ritchie,都是如雷貫耳的big name,且都獲得因為這兩項成就獲得圖靈獎。

但是外界鮮有人知的是,他倆80年代在貝爾實驗室還開發了另外一套操作系統Plan 9。

其實,Plan 9一開始并不是這個系統的名字,只是這個項目的代號,名字來源于電影史上因為“爛到極致”而備受追捧的科幻片《外星9號計劃》。

看來,C語言之父們,也是骨灰級科幻影迷~

之后,貝爾實驗室因為種種原因停止了對這個項目的投資,早期研發工作完成后,這個項目就擱置了起來,“Plan 9”漸漸就變成了這個系統的名字。

為什么要開發這樣一套系統?當時,Ken和Dannis意識到,分布式的數據存儲調用方式日后會成為主流,所以需要做一套簡潔優雅實用的系統來服務這種需求。

Plan 9的開發,沒有依賴任何Unix已有的基礎,而是完全另起爐灶。

以當時的眼光來看,Plan 9十分先進超前,模式與傳統操作系統完全不同。

Plan 9的結構是一個松散耦合的服務集合,這些服務可能被托管在不同的機器上。

設計的關鍵概念是每個進程的名稱空間:即服務可以映射到固定的本地名稱上,因此,即使當前的服務被提供相同功能的其他服務所取代,使用這些服務的程序也不用改變。

Plan 9是真正的分布式操作系統,而不僅僅是集成了幾個Unix功能這么簡單。你可以毫不費力地在網絡上的多臺主機上執行任何程序,可以使用網絡上任何主機的任何資源,包括文件、進程、圖形、網絡、磁盤。

如果Linux也能這樣工作,那么就沒人需要Kubernetes了。

通俗的說,如果Unix或Linux中 “一切都是文件”,那么Plan 9則是 “一切都是網絡文件系統”。

如果你有一臺筆記本和一臺臺式機,而連接了打印機的卻只有臺式機,那使用筆記本能不能直接打印?

在Linux中,你必須設置CUPS,打開網絡端口,下載驅動程序,設置兩臺機器都能和打印機通信。

而在在Plan 9中,你的筆記本電腦只需要通過網絡打開桌面的打印機文件就可以打印了。

Plan 9到底有多先進?盡管他本身被貝爾實驗室雪藏起來,但是,Plan 9中的很多經典設計和思路,一直沿用至今。

Linux、Windows、5G,都借鑒Plan 9

Eric S. Raymond在他的著作中分析了為何Plan 9最終下馬。

他認為,Plan 9最后會失敗單純只是因為它的完善程度不夠大。當時,雖然Unix看來破破爛爛又有明顯缺失,但是它還是能把工作完成,這就足以保住它的地位了。

開創性的Plan 9最終沒能“起飛”,但它的創新卻被許多商業操作系統所采用。

比如,Linux中廣泛普及的通過文件系統提供操作系統服務的概念就出自Plan 9。

此外,Plan 9極簡主義窗口系統設計已經被無數系統借鑒,包括Windows:

“C語言之父”40年前搞的Plan 9操作系統下放給開發者社區

而今天在瀏覽器中普遍使用的UTF-8字符編碼,最初就是為Plan 9發明的,并在Plan 9中首次實現。

Plan 9的分布式設計也在諾基亞-貝爾實驗室的項目中得以延續,比如World Wide Streams,這套流處理程序今天部署在地理上相隔甚遠的多個5G邊緣云和核心云的計算節點上。

可以說,今天流行的微服務架構,早在幾十年前,Plan 9就已經提出了。

從這個角度來看,Plan 9其實從來沒有真正“隱退”過。

幾十年來,一直有民間的愛好者自發組成社區對Plan 9進行開發,而最近,貝爾實驗室則官宣完全“復活”Plan 9,直接將版權下放給開發者社區。

Plan 9復活后要做什么?

獲得貝爾實驗室官方認可的開發者社區,名字叫Plan 9基金會,是愛好者們自下而上組織起來的,2020年9月剛剛成立。

基金會的主頁上,只寫明了將來會致力于Plan 9的開發和應用,具體的工作計劃還沒有出臺。

而貝爾實驗室對于Plan 9能日后能發揮多大作用似乎也沒有把握。

他們在官方聲明中說:

貝爾實驗室十分支持開源社區,而Plan 9可能使全球軟件開發社區受益。

誰知道呢,也許Plan 9會成為新興的分布式云基礎設施的一部分,支撐著即將到來的工業革命。

好吧,看來貝爾實驗室打算徹底“放生”Plan 9。

只是不知道,假如日后Plan 9真的能成氣候,變成有巨大影響力的操作系統,貝爾實驗室會不會后悔今天的決定呢?

Plan 9的開發者之一,同時也是C語言最主要的發明者Dennis Ritchie,是一個十分傳奇的計算機科學家。

有多傳奇?在一眾計算機大佬中,他是獨一份沒有博士學位的。

并且,他是出于一個“十分任性”的原因,自己放棄了博士學位。

關于Dennis Ritchie

丹尼斯·里奇(1941年9月9日-2011年10月12日),C語言之父,UNIX之父。曾擔任朗訊科技公司貝爾實驗室下屬的計算機科學研究中心系統軟件研究部的主任一職。

1978年與布萊恩·科爾尼干(Brian W. Kernighan)一起出版了名著《C程序設計語言(The C Programming Language)》。此書已翻譯成多種語言,被譽為c語言的圣經。2011年10月12日(北京時間為10月13日),丹尼斯·里奇去世,享年70歲。

從二十世紀七十年代起,他的工作得到了很多計算機組織的公認和表彰,如:美國計算機協會(ACM)授予的系統及語言杰出論文獎(1974);電氣和電子工程師協會(IEEE)的 Emmanuel Piore 獎(1982);貝爾實驗室特別人員獎(1983);美國計算機協會(ACM)的圖靈獎(1983); NEC公司的基金獎(1989);電氣和電子工程師協會(IEEE)的優秀獎章;漢明勛章(1990);計算機先驅獎 (1994);計算機歷史博物館研究員 (1997) ;哈羅德·潘德獎(2003);日本獎 (2011);

丹尼斯·里奇,全名丹尼斯·麥卡利斯泰爾·里奇。美國計算機科學家,對C語言和其他編程語言、Multics和Unix等操作系統的發展做出了巨大貢獻。

里奇在哈佛大學學習物理學和應用數學畢業,1967年他進入貝爾實驗室,是朗訊技術公司系統軟件研究部門的領導人。

1983年他與肯·湯普森一起獲得了圖靈獎。理由是他們“研究發展了通用的操作系統理論,尤其是實現了UNIX操作系統”。

1999年兩人為發展C語言和Unix操作系統一起獲得了美國國家技術獎章。在里奇的成長歷程中,有兩個人對他的影響最大,一個是他父親,而另一個是他的摯友,同為UNIX發明人的肯·湯普森。尤其是后者。 有人問過丹尼斯,他的偶像是誰,不論在計算機領域還是其他領域?他說:我不是在英雄熏陶下成長起來的。

很顯然,對我職業生涯影響最大的人物是肯·湯普森。UNIX大部分是他的工作,同樣也是C語言的前輩,同樣Plan 9系統的大部分工作也是他做的。并且在這期間Ken做了第一個計算機象棋大師。

丹尼斯·里奇獲得學士學位并且獲得哈佛大學更高的學位,在那里以肄業生資格學習物理,以研究生資格學習應用數學。

這時候,一個偶然的機會改變了他一生的選擇。里奇這樣描述他的轉變,當他聽取一些非課程類的計算機講座后(大約1960年),開始對計算機著迷,并選擇了一學期正規(介紹性的)課程。

第一部分是模擬計算機,后面是關于打孔卡片設備的,然后是關于真正的數字式計算機的,并為Univac I號機準備了一個程序。當時他是一個主修物理學的學生,但是更加著迷于計算機處理的理論和實際問題。

因此,他的畢業論文大部分是理論方面的(遞歸函數的層次),但是也開始投入更大精力到實踐方面。作為助教為同一個介紹性課程的后續版本工作了三年——不過那時計算機已經成了IBM7049。 1968年獲得數學博士,而論文正是上面的《遞歸函數的的層次》。

1967年加入貝爾實驗室,他的父親阿利斯泰爾·里奇(Alistair E. Ritchie)在那里有長時間的工作經歷,他的父親對晶體管電路類的東西很有研究,正是由于父親的影響,也使得他走上了科學研究之路。不久后,加入了Multics項目,那時由貝爾實驗室、麻省理工學院和通用電器三家的合作項目。

里奇負責多道處理機的BCPL語言和GE650的編譯器,它們都是屬于GECOS系統的。同樣的,他也寫了ALTRAN語言的代數編譯器,那是用于符號計算機的一種語言和系統。

【騰訊云】云服務器、云數據庫、COS、CDN、短信等云產品特惠熱賣中

發表評論

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: