Unix最初受到Multics計畫的啟發。Multics是由麻省理工學院,AT&T貝爾實驗室和通用電氣合作進行的作業系統專案,被設計執行在GE-645大型主機上,但是由於整個目標過於龐大,糅合了太多的特性,Multics雖然發行了一些產品,但是效能都很低,AT&T最終撤出了投入Multics專案的資源,中止這項合作計畫。 貝爾實驗室最初參與Multics計畫的部門為計算機技術研發部門(Computing Techniques Research Department),部門主管為道格拉斯·麥克羅伊,其下的工程師,原有丹尼斯·里奇、布萊恩·柯林漢、道格拉斯·麥克羅伊、麥克·列斯克(Mike Lesk)與喬伊·歐桑納(Joe Ossanna)等人,為了Multics計畫,他們又召募了肯·湯普遜加入其中。肯·湯普遜進入Multics計畫不久,計畫就中止了,但因為機器仍然保留在貝爾實驗室,他繼續在GE-645上開發軟體。肯·湯普遜在GE-645上,寫出了一個模擬器,可以讓一個檔案系統與記憶體分頁機制運作起來。他同時也寫了一個程式語言Bon,編寫了一個太空旅行遊戲。經過實際執行後,他發現遊戲速度很慢而且耗費昂貴,每次執行會花費75美元。在GE-645被搬走後,肯·湯普遜在實驗室中尋找沒人使用的機器,找到了幾台PDP-7。丹尼斯·里奇的幫助下,湯普遜用PDP-7的組合語言重寫了這個遊戲,並使其在DEC PDP-7上執行起來。這次經歷加上Multics專案的經驗,促使湯普遜開始在DEC PDP-7上研究如何開發作業系統

1969年,肯·湯普遜提議在PDP-7上開發一個新的階層式作業系統的計畫。Multics的原有成員,加上Rudd Canady,都投入這個計畫。肯·湯普遜發現要編寫驅動程式來驅動檔案系統,進行測試,並不容易,於是開發了一個殼層(shell)與一些驅動程式,做出一個作業系統的雛形。在團隊合作下,Multics的許多功能都被採納,重新實作,最終做出了一個分時多工作業系統,成為第一版UNIX。因為Multics來自「MULTiplexed Information and Computing System」的縮寫,在1970年,那部PDP-7卻只能支援兩個使用者,彼得·紐曼(Peter G. Neumann)戲稱他們的系統其實是:「UNiplexed Information and Computing System」,縮寫為「UNICS」。於是這個專案被稱為UnICS(Uniplexed Information and Computing System)。 因為PDP-7的效能不佳,肯·湯普遜與丹尼斯·里奇決定把第一版UNIX移植到PDP-11/20的機器上,開發第二版UNIX。在效能提升後,真正可以提供多人同時使用,布萊恩·柯林漢提議將它的名稱改為UNIX。 第一版UNIX是用PDP-7組合語言編寫的,一些應用是由叫做B語言的解釋型語言和組合語言混合編寫的。在進行系統編程時不夠強大,所以湯普遜和里奇對其進行了改造,並於1971年共同發明了C語言。

1973年湯普遜和里奇用C語言重寫了Unix,形成第三版UNIX。在當時,為了實作最高效率,系統程式都是由組合語言編寫,所以湯普遜和里奇此舉是極具大膽創新和革命意義的。用C語言編寫的Unix代碼簡潔緊湊、易移植、易讀、易修改,為此後Unix的發展奠定了堅實基礎。

創作者介紹
創作者 qiqichoi 的頭像
qiqichoi

qiqichoi的部落格

qiqichoi 發表在 痞客邦 留言(0) 人氣()