彭民德:《電子計算60年》 (16) UNIX強勢走來
麻省理工學院(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的研究和開發工作正在更有組織、更大
規模地在全國範圍內進行。
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章 三代計算併發共享 電子工業出版社)
相關文章
- 電子計算60年 (彭民德著)
- 彭民德:《電子計算60年》 (37)跨入雲端計算時代
- 彭民德:《電子計算60年》(18)UNIX原始碼的一些運用原始碼
- 彭民德:《電子計算60年》 (19) UNIX核心反彙編程式碼有啃頭
- 彭民德:《電子計算60年》(34) 863城市供水排程計算
- 彭民德:《電子計算60年》 (3)學習計算數學跟未來結緣
- 彭民德:《電子計算60年》 (20) UNIX一本經典著作的生命力
- 彭民德:《電子計算60年》(17)分析UNIX原始碼揭去作業系統神祕感原始碼作業系統
- 彭民德(42) 電子計算大眾化,人人都有計算祕書如影隨形
- 彭民德:《電子計算60年》 (22) IBM PC如潮水般湧來IBM
- 彭民德:《電子計算60年》 (25)可愛又可恨的BASICA
- 彭民德:《電子計算60年》 (33)網路計算極大地提升了計算能力
- 彭民德:《電子計算60年》 (27) 多種媒體形式擴充套件電子計算內涵套件
- 彭民德:《電子計算60年》(4) 從學習蘇聯電子管計算機開始計算機
- 彭民德:《電子計算60年》 (26) Windows 主導圖形化PCWindows
- 彭民德:《電子計算60年》(12)ALGOL 60與程式自動化Go
- 彭民德:《電子計算60年》(6)我國首臺電子數字計算機104機計算機
- 彭民德:《電子計算60年》(9)空空導彈彈道和脫靶量計算
- 彭民德:《電子計算60年》(32) 網路數字資訊的特點
- 彭民德:《電子計算60年》(29)電腦漢化、文件編輯與鐳射照排
- 彭民德:《電子計算60年》 (31)計算機網路與第四代計算機計算機網路
- 彭民德(43)智慧計算成果斐然
- 彭民德:《電子計算60年》(15) 作業系統造就計算機活的靈魂作業系統計算機
- 彭民德:《電子計算60年》(21) 全國第一屆C語言交流會C語言
- 彭民德:《電子計算60年》 (2)數學的嚴密推理和美的薰陶
- 彭民德:《電子計算60年》(28 )輸入裝置的發展與運用
- 彭民德:《電子計算60年》(35)網際網路時代的製造型企業
- 彭民德:《電子計算60年》(8)DJS 21機的資料、指令和程式JS
- 彭民德:《電子計算60年》 (13) 程式語言曾被人無端稱作計算機語言計算機
- 彭民德:《電子計算60年》(5)用手搖計算機做三峽大壩下不穩定流計算計算機
- 彭民德:《電子計算60年》(30) 在列印技術發展長河中,16針印表機未能曇花一現
- 彭民德:《電子計算60年》 (14) 以IBM 360為代表的多使用者計算機系統IBM計算機
- 彭民德:《電子計算60年》 (23)駕馭PC,應用開發百花齊放
- 彭民德:《電子計算60年》(7)DJS 21機的結構和用機環境JS
- 彭民德:《電子計算60年》 (36) 從面向硬體的控制檯操作到瀏覽器人機介面瀏覽器
- 彭民德:《電子計算60年》(10)對付U-2偵察機的15號及317任務
- 彭民德:《電子計算60年》(24)PC與微控制器聯合控制的水文流速儀實時檢定系統
- 彭民德:(40)基於移動計算的物聯網共享單車