ken thompson在老婆不在家的三周裏麵寫出了unix操作係統。
1966年碩士畢業之後,被貝爾實驗室多次邀請加入。
他和ge、mit一起開發multics操作係統,1969年因為過度設計而無法實現其宏大目標。
貝爾實驗室花不少錢推出,但是ken繼續找到一台pdp7機器,廢物迴收,設計了太空旅行遊戲。pdp7運行速度慢,他和dennis ritchie等人,重新設計文件係統,加快速度。
結果他第一周開始實現shell,第二周開始實現編輯器,第三周開始實現匯編器。
這三周剛好老婆帶孩子迴娘家,他完成了所有工作,在1969年寫出了操作係統unix。
而dennis ritchie發明c語言。然後用c語言重寫了unix。讓unix可以輕鬆的在各個遊戲之間移植。
公元1969年,貝爾實驗室的ken thompson和dennis ritchie正在設計一個史無前例的操作係統: unix
dennis兄,昨夜我一夜未眠,我感覺我們上了賊船了設計一個操作係統可真不容易啊你看看操作係統得管理多少設備鍵盤,鼠標,屏幕,打印機,光盤u盤,遊戲杆......
噓!天機不可泄漏,光盤,遊戲杆,u盤,幾十年後才能發明啊!
所以說上帝交給我們的任務不容易啊,得應對未來幾十年的變化。你想想,我們可以開發一個針對鍵盤讀寫的程序,還可以開發一個針對打印機讀寫的程序,可是光盤u盤現在都不存在,怎麽開發?
在昨晚夢裏,上帝好像說了一句話,我想不起來了隻記得抽象這倆字
抽象?這些多亂七八糟的設備,有什麽共同點?
你看啊,這些設備雖多,但共同點是都可以向它們寫點東西,或者可以從它們讀點東西。
一個東西,可讀可寫,那不就是我們上周開發完的文件嗎?
對對,老弟說得非常對我想起來了!上帝在夢裏給我說的就是:everything is a file!
我們再細化一下,文件就是個抽象的概念像個接口,其他的設備都是文件的實現。
沒錯,但是還有一個小問題,既然把這些設備當成了文件那總得像文件那樣給它們一個路徑名(path name)吧!
嗯,有道理,當這些設備注冊到操作係統的時候,操作係統就給它們分配一個像文件那樣的路徑,讓它們成為文件係統的一部分!
如此甚好,以後程序員可以像操作一個文件一樣來操作設備了:
它們都有一致的命名空間
它們都有一致的操作方法
(open,read,write,close)。
欽,等等!我們倆不是在用匯編開發操作係統嗎,你這是什麽編程語言?
哦,我忘了告訴你了,這是我私下裏開發的語言叫做c語言,可移植性比較好,用它來開發unix將來就可以移植到各種機器上去了。
老兄厲害啊,這c語言比匯編看起來舒服多了,敲完這行喝酒去!
1971年,ken休假期間迴到母校加州大學,開設課程,講解操作係統原理。一行行的給學生分析代碼。激發了很多學生對編程的熱情。unix在很多大學開始流行起來。
其中影響了bill joy。
1983年ken和dennis獲得圖靈機。
2000年ken從貝爾實驗室退休。
6年後63歲的他加入google,發明了go語言。
1966年碩士畢業之後,被貝爾實驗室多次邀請加入。
他和ge、mit一起開發multics操作係統,1969年因為過度設計而無法實現其宏大目標。
貝爾實驗室花不少錢推出,但是ken繼續找到一台pdp7機器,廢物迴收,設計了太空旅行遊戲。pdp7運行速度慢,他和dennis ritchie等人,重新設計文件係統,加快速度。
結果他第一周開始實現shell,第二周開始實現編輯器,第三周開始實現匯編器。
這三周剛好老婆帶孩子迴娘家,他完成了所有工作,在1969年寫出了操作係統unix。
而dennis ritchie發明c語言。然後用c語言重寫了unix。讓unix可以輕鬆的在各個遊戲之間移植。
公元1969年,貝爾實驗室的ken thompson和dennis ritchie正在設計一個史無前例的操作係統: unix
dennis兄,昨夜我一夜未眠,我感覺我們上了賊船了設計一個操作係統可真不容易啊你看看操作係統得管理多少設備鍵盤,鼠標,屏幕,打印機,光盤u盤,遊戲杆......
噓!天機不可泄漏,光盤,遊戲杆,u盤,幾十年後才能發明啊!
所以說上帝交給我們的任務不容易啊,得應對未來幾十年的變化。你想想,我們可以開發一個針對鍵盤讀寫的程序,還可以開發一個針對打印機讀寫的程序,可是光盤u盤現在都不存在,怎麽開發?
在昨晚夢裏,上帝好像說了一句話,我想不起來了隻記得抽象這倆字
抽象?這些多亂七八糟的設備,有什麽共同點?
你看啊,這些設備雖多,但共同點是都可以向它們寫點東西,或者可以從它們讀點東西。
一個東西,可讀可寫,那不就是我們上周開發完的文件嗎?
對對,老弟說得非常對我想起來了!上帝在夢裏給我說的就是:everything is a file!
我們再細化一下,文件就是個抽象的概念像個接口,其他的設備都是文件的實現。
沒錯,但是還有一個小問題,既然把這些設備當成了文件那總得像文件那樣給它們一個路徑名(path name)吧!
嗯,有道理,當這些設備注冊到操作係統的時候,操作係統就給它們分配一個像文件那樣的路徑,讓它們成為文件係統的一部分!
如此甚好,以後程序員可以像操作一個文件一樣來操作設備了:
它們都有一致的命名空間
它們都有一致的操作方法
(open,read,write,close)。
欽,等等!我們倆不是在用匯編開發操作係統嗎,你這是什麽編程語言?
哦,我忘了告訴你了,這是我私下裏開發的語言叫做c語言,可移植性比較好,用它來開發unix將來就可以移植到各種機器上去了。
老兄厲害啊,這c語言比匯編看起來舒服多了,敲完這行喝酒去!
1971年,ken休假期間迴到母校加州大學,開設課程,講解操作係統原理。一行行的給學生分析代碼。激發了很多學生對編程的熱情。unix在很多大學開始流行起來。
其中影響了bill joy。
1983年ken和dennis獲得圖靈機。
2000年ken從貝爾實驗室退休。
6年後63歲的他加入google,發明了go語言。