彭民德:《電子計算60年》 (16) UNIX強勢走來

彭民德發表於2016-08-05

麻省理工學院(MIT)在IBM OS/360之後,研製了一個分時作業系統CTSS,之後它與貝爾實驗室和通用電氣公司GE,決定聯合開發一種“公用計算機服務系統”,即能夠同時支援數百名分時使用者的一種機器,以滿足整個波士頓所有使用者的計算需求。該系統被叫做MULTICS。它提出了計算機領域的許多新概念,比如保護環概念、檔案的多級目錄結構、多級反饋佇列的CPU排程等,該系統幾乎完全用高階語言PL/1編寫,約30萬行程式碼。在作業系統歷史上有重大影響。但是其研製難度卻超出了所有人的預料。貝爾實驗室和通用電氣後來都先後退出了。

貝爾實驗室的肯•湯普森(Ken Thompson)退出MULTICS後,1970年在一臺廢棄的PDP-7上開發了一個簡化的、單使用者的、用匯編語言寫的MULTICS,讓這臺機器得以重新運轉起來。因為其尺寸小,布萊恩•柯尼漢(Brian Kernighan)等人將這個系統笑稱為UNICS,後來叫UNIX。丹尼斯•裡奇(Dennis Ritchie)及其團隊的加入,使UNIX有條件配置到當時最好的PDP-11/45和PDP-11/70機型上。湯普森曾試圖用他的一種高階語言“B語言”改寫,但沒有達到預期目標。裡奇幫助湯普森改進了B語言,起名為C。他們用C語言重寫UNIX後,取得了極大成功。UNIX有核心小,可靠性高,採用流式邏輯結構的層次檔案系統以及很方便使用的多種檔案操作,有功能強大又很好用的Shell。Shell的管道和重定向功能,使得開發所有程式可以只讀寫標準輸入輸出。UNIX還有用高階語言書寫,便於閱讀和移植等突出特點。1974年,裡奇和湯普森發表了一篇UNIX里程碑式的論文“UNIX分時系統”(Ken Thompson & Dennis Ritchie:The UNIX Time-Sharing System,中譯本見《計算機研究與發展》編輯部編 1984 (內部交流))而震動業界。高校紛紛找他們索要UNIX原始碼,因當時AT&T無銷售計算機資格,就免費向一些索要者贈送吧。此後UNIX取代PDP-11機原有作業系統,PDP機也成了當時主流機型。1978年,科尼漢和裡奇發表了C語言標誌性著作The C Programming Language(《程式設計語言C》),使C語言也隨之流行起來。湯普森有UNIX之父的譽稱。後來湯普森和裡奇由於開發UNIX和C語言而獲得1983年圖靈獎,這是作業系統領域的第一個圖靈獎。兩人還先後獲得其它許多獎項,湯普森也成了美國科學院和工程院兩院院士。

國際計算機世界在70年代發生的這檔事,80年代初開始影響我國。UNIX 第六版的原始碼經澳大利亞傳入我國,在中科院計算所仲萃豪的弟子孫玉芳、劉日昇帶領下,全國很快掀起一股學習推廣和應用UNIX的熱潮。UNIX原始碼也到了我所在的學校。同時我們又從中科院影印了科尼漢和裡奇的《程式設計語言C》整本英文原著,用盡可能多的時間,邊翻譯邊分析,迅速學習起來。在改革開放的大背景下,執行UNIX的新型機器也陸續引進來。我們手邊就有DUAL 68000微機可用。它雖然叫微機,其功能,特別是其軟體開發環境,比之前其它的第三代多使用者機還要強很多。當時又配備了新的,由湖南計算機廠生產的VDU-140圖形終端,可以說是當時效能最好,價效比最高的計算機系統。這款終端讓人第一次從螢幕上看到圖形,比如當一定的閒置時限到期,屏保程式就會在螢幕上畫出漂亮的運動圖形。

我曾在1985年寫了《UNIX的應用與原理》講義(鉛印,內部交流)。序言中,描述了當時我國學習推廣UNIX和C語言的現狀
“國內引進UNIX應歸功於中科院計算所和華北
計算所的同志,首先從澳大利亞新南威爾士大學引進
了UNIX第六版。華北計算所著手移植到國產180
系列機上,並於1982年初翻譯出版了《The C
Programming Language》一書。1980年,中科院計
算所仲萃豪、孫玉芳、劉日昇著手進行對UNIX第六
版的剖析工作,寫了《UNIX作業系統分析報告》
(圖),同時翻譯了貝爾實驗室關於UNIX的一套技
術報告。此後大辦學習班,為在我國推廣UNIX做了
開創性的工作。
在此之後,科學院計算所張尤臘跟天津計算所一道
著手把C和UNIX V6移植到國產100系列機上。
上海交大尤晉元老師發表了《UNIX作業系統分析
報告》。最近兩年來,隨著DUAL MC68000等配有
UNIX作業系統計算機的陸續引進,對UNIX的分析
和在其上的開發工作便向縱深發展。中科院計算所在
MC68000 DUAL上開發了漢字系統和INGRES漢字
資料庫;哈爾濱工業大學剖析過Xenix;合肥工業大
學已將WICAT150上的UNIX核心,用C語言重寫
過;我們長沙鐵道學院已將MC68000 DUAL83上的
UNIX第七版核心可執行程式碼,以反彙編程式碼形式從
機器上列印出來,進行了初步剖析,並在MC68000
DUAL系統上開發了中西文相容的多使用者漢字處理
系統。
最近,成都電訊工程學院宣佈,他們也已將
MC68000 DUAL 83上的UNIX第七版核心用C語言
作了改寫(1985年5月8日《計算機世界》報)。
現在UNIX的研究和開發工作正在更有組織、更大
規模地在全國範圍內進行。

enter image description here

UNIX的成功,以及贈送其原始碼實際上的開放性,很快在全世界教育、科研部門,而後商業部門得到推廣,UNIX被安裝到幾乎所有檔次的計算機上。與此同時,UNIX的一些變種也紛紛推出,於是使用者組織要求標準化,而且有了實際進展。新的UNIX特點之一就是遵循標準,並具有一定開放性。在技術上,隨著UNIX核心不斷龐大起來,一種使核心瘦身,叫做微核心(Microkernel)的技術興起來。

1992年2月,我在《計算機工程與科學》雜誌上寫了“UNIX的發展動向”一文,從UNIX的版本演變、標準化進展、新一代UNIX的技術特點、國內對UNIX的研究開發現狀四個方面綜述了至1991年底UNIX的最新進展。指出一個以UNIX為基礎的作業系統標準化時期已經來臨。進入90年代,UNIX systemⅤ成了其新版本的代表。

1991年,當時還是赫爾辛基一所大學學生的Linus Torvalds開發了一個執行在Intel 386晶片上的UNIX版本,他命名為Linux,並且把原始碼釋出在Internet上。整個原始碼免費使用,提倡軟體的開放性,誰都可以共享它、修改它。從那時起,Linux經過了多次修改和更新,已融合了全球數百位軟體開發者的努力,變得成熟起來。今天,Linux可以執行於包括個人電腦在內的絕大多數計算機平臺上。

1994年釋出Linux最初版本後,便被RedHat等廠商採用,又增加了其他輔助工具,使Linux變得更有用。美國能源部與IBM簽約製造的千萬億次巨型機,採用的作業系統就是紅帽子Linux。我國政府上網也用Linux。中科院軟體所首席科學家孫玉芳研究員等,開發了具有自主版權的紅旗Linux。很遺憾,他不幸英年早逝,“紅旗” 沒有能夠打多久。

(與本文相關的更多內容 可參看 彭民德《電子計算60年》第4章 三代計算併發共享 電子工業出版社)

相關文章