首頁 現(xiàn)實

數(shù)學(xué)心

第六百八十三章 貝爾實驗室的UNIX(一切都是文件)

數(shù)學(xué)心 蔡澤禹 1052 2024-05-01 15:11:48

  Ken Thompson在老婆不在家的三周里面寫出了UNIX操作系統(tǒng)。

  1966年碩士畢業(yè)之后,被貝爾實驗室多次邀請加入。

  他和GE、MIT一起開發(fā)Multics操作系統(tǒng),1969年因為過度設(shè)計而無法實現(xiàn)其宏大目標(biāo)。

  貝爾實驗室花不少錢推出,但是Ken繼續(xù)找到一臺PDP7機器,廢物回收,設(shè)計了太空旅行游戲。PDP7運行速度慢,他和Dennis Ritchie等人,重新設(shè)計文件系統(tǒng),加快速度。

  結(jié)果他第一周開始實現(xiàn)shell,第二周開始實現(xiàn)編輯器,第三周開始實現(xiàn)匯編器。

  這三周剛好老婆帶孩子回娘家,他完成了所有工作,在1969年寫出了操作系統(tǒng)Unix。

  而Dennis Ritchie發(fā)明c語言。然后用c語言重寫了UNIX。讓UNIX可以輕松的在各個游戲之間移植。

  公元1969年,貝爾實驗室的Ken Thompson和Dennis Ritchie正在設(shè)計一個史無前例的操作系統(tǒng): Unix

  Dennis兄,昨夜我一夜未眠,我感覺我們上了賊船了設(shè)計一個操作系統(tǒng)可真不容易啊你看看操作系統(tǒng)得管理多少設(shè)備鍵盤,鼠標(biāo),屏幕,打印機,光盤U盤,游戲桿......

  噓!天機不可泄漏,光盤,游戲桿,U盤,幾十年后才能發(fā)明啊!

  所以說上帝交給我們的任務(wù)不容易啊,得應(yīng)對未來幾十年的變化。你想想,我們可以開發(fā)一個針對鍵盤讀寫的程序,還可以開發(fā)一個針對打印機讀寫的程序,可是光盤U盤現(xiàn)在都不存在,怎么開發(fā)?

  在昨晚夢里,上帝好像說了一句話,我想不起來了只記得抽象這倆字

  抽象?這些多亂七八糟的設(shè)備,有什么共同點?

  你看啊,這些設(shè)備雖多,但共同點是都可以向它們寫點東西,或者可以從它們讀點東西。

  一個東西,可讀可寫,那不就是我們上周開發(fā)完的文件嗎?

  對對,老弟說得非常對我想起來了!上帝在夢里給我說的就是:Everything is a file!

  我們再細(xì)化一下,文件就是個抽象的概念像個接口,其他的設(shè)備都是文件的實現(xiàn)。

  沒錯,但是還有一個小問題,既然把這些設(shè)備當(dāng)成了文件那總得像文件那樣給它們一個路徑名(Path name)吧!

  嗯,有道理,當(dāng)這些設(shè)備注冊到操作系統(tǒng)的時候,操作系統(tǒng)就給它們分配一個像文件那樣的路徑,讓它們成為文件系統(tǒng)的一部分!

  如此甚好,以后程序員可以像操作一個文件一樣來操作設(shè)備了:

  它們都有一致的命名空間

  它們都有一致的操作方法

  (open,read,write,close)。

  欽,等等!我們倆不是在用匯編開發(fā)操作系統(tǒng)嗎,你這是什么編程語言?

  哦,我忘了告訴你了,這是我私下里開發(fā)的語言叫做C語言,可移植性比較好,用它來開發(fā)Unix將來就可以移植到各種機器上去了。

  老兄厲害啊,這C語言比匯編看起來舒服多了,敲完這行喝酒去!

  1971年,Ken休假期間回到母校加州大學(xué),開設(shè)課程,講解操作系統(tǒng)原理。一行行的給學(xué)生分析代碼。激發(fā)了很多學(xué)生對編程的熱情。Unix在很多大學(xué)開始流行起來。

  其中影響了Bill Joy。

  1983年Ken和Dennis獲得圖靈機。

  2000年Ken從貝爾實驗室退休。

  6年后63歲的他加入Google,發(fā)明了go語言。

按 “鍵盤左鍵←” 返回上一章  按 “鍵盤右鍵→” 進(jìn)入下一章  按 “空格鍵” 向下滾動
目錄
目錄
設(shè)置
設(shè)置
書架
加入書架
書頁
返回書頁
指南