與計算機結緣
布魯克斯1931年4月19日生於美國北卡羅萊納州的
達勒姆(Durham),是一名醫生的兒子。1944年,艾肯設計的MARKI由IBM生產出來以後,有雜誌加以介紹。當時才13歲的布魯克斯讀了以後就產生極大的興趣,並開始收集老式的商用計算裝置。他參加了所在中學的無線電俱樂部和電子工程俱樂部,成為一名積極分子。假期,他用鉛皮做成煙管賣給菸農烤菸葉(他家鄉是產煙區)。1953年,從
杜克大學畢業並取得物理學士學位以後,進入
哈佛大學深造,師從他從小仰慕的艾肯,1955年取得碩士學位,1956年取得博士學位。值得指出的是,布魯克斯取得的是計算機科學的博士學位,是一位“正宗”的計算機博士,是世界上第一批獲得計算機科學博土學位的少數學者之一。他的博土論文課題為“自動數據處理系統的分析設計”(The Analytic Design of Automatic Data Processing System)。從博士論文開始,布魯克斯的一生就與計算機結下了不解之緣。
IBM經歷
在哈佛大學取得博士學位以後,布魯克斯進入IBM公司設立在紐約波凱普茜(Poughkeepsie,NewYork)的實驗室當工程師。這個實驗室從20世紀50年代到80年代一直是IBM公司開發計算機的中心。布魯克斯在這裡參加了Harvest和STRETCH計算機的開發,任體系結構設計師。這兩個型號的計算機都引入了一些新技術,在20世紀50年代後期至60年代初期有很大影響,尤其是STRETCH計算機,當前已成標準的8個二進制位的“位元組”(byte)就是由布赫霍爾茲(Werner Buchholz)提出,在STRETCH上首次採用的。STRETCH還首創先行控制方式,最多可重疊執行6條連續的指令,後來被發展成流水線方式,因而被認為是世界上第一台流水線計算機。流水線概念的提出者是阿姆達爾(GeneAmdahl,他後來離開IBM公司創辦了著名的Amdahl公司),由科克(John Cocke,1989年計算機先驅獎獲得者)和考爾斯基(Harwood Kolsky)協助在360上實現。STRETCH共生產9台。在1965年CDC6600問世以前,是世界上最快的超級計算機。Harvest則是IBM公司在STRETCH的基礎上,為美國國家安全局特製的,比STRETCH還大兩倍。布魯克斯在其中的創造性貢獻是解決了程式中斷系統的設計,以及在數據格式中出現不均勻的字元分布時如何設計其二進制代碼(multicase binary codes for non-uniform character distributions)等問題,並從而在1957年取得了他的第一個美國專利“程式中斷系統”(Program Interrupt System,專利號3048332,與D.w.Sweenly共有),發表了他最初的兩篇學術論文。其中,在程式中斷系統的設計中,布魯克斯和斯溫利提出了可禁止中斷的概念,使用戶擊鍵時字元顯示在螢幕上,而計算機的運行卻不會混亂。科德(E.F.Codd,1996年計算機先驅獎獲得者)正是利用這一概念為STRETCH設計了第一個互動式多道程式作業系統的。
1959年,布魯克斯曾被調至IBM公司在約克通高地(Yorktown Heights,NewYork)的研究中心工作,但第二年又重新被調回波凱普茜的實驗室,因為當時IBM公司內部在計算機的研發方向上產生了重大的分歧。1960年時,IBM公司的計算機生產線上的產品是8000系列,但遭到一些人的反對,其領頭人是伊萬斯(Roben (Bob) Overton Evans)。伊萬斯1951年就加盟IBM公司,曾參與或主持過IBM701、1410和7070等多種型號計算機的開發,已經積累相當豐富的知識和經驗。他經過認真分析,認為主要繼承IBM原有技術的8000計算機,即使研製成功並上市,過不了幾年,即到1964年就會喪失生命力,缺乏市場競爭能力。因此他主張8000下馬,採用新的技術開發新型計算機,尤其是要開發新的作業系統。伊萬斯的意見使IBM公司分裂成為兩派,一派支持,一派反對,而反對派的領頭人正是布魯克斯!兩派的爭論和對立非常尖銳,又勢均力敵,因為伊萬斯只是愛荷華州立大學電氣工程系的一個本科畢業生,學歷和學位沒有布魯克斯高,但資歷卻比他老,雙方的支持者人數也差不多。以小沃森(Thomas John Watson,Jr.)為首的IBM公司決策層於1961年5月擔著極大的風險最後採納了伊萬斯的意見,是年秋宣布成立一個名為SPREAD(這是“系統程式設計、研究、工程和開發”的英文Systems Programming,Research,Eneineering And Development的詞頭縮寫)的委員會作為taskforce(類似於我國過去經常採用的所謂“攻關領導小組”這樣一種組織),由13人組成,主席為漢斯特拉(John W.Haanstra),副主席為伊萬斯,布魯克斯是成員之一。作為爭論中贏方的伊萬斯冷靜地分析了形勢以後,作出了一個令人大感意外的決定,他親自找布魯克斯,請布魯克斯主持日後被稱為IBM/360的這個新項目。伊萬斯這一舉動主要基於以下兩點考慮,一是如果由他自己來主持360,那末原來反對他的意見的那一派人很難團結在他的周圍,二是涉及這樣重大改革與創新的項目,應該讓年輕人來挑頭。他自己雖然當時也只有34歲,但布魯克斯比他小5歲,更加年輕。難能可貴的是,布魯克斯作為爭論的輸方,慨然接受了伊萬斯的邀請,同意負責這個他曾經反對過的項目!這個故事很像我國京劇舞台上的“將相和”(雖然無人“負荊請罪”)。伊萬斯和布魯克斯雙方在這件事上所表現出來的明智、大度和勇氣都十分令人欽佩和讚嘆。其結果和效果就是整個IBM公司的職工果然團結起來,實現了艱難而痛苦,然而卻是歷史性的轉變和飛躍。IBM/360的開發總投資5.5億美元(其中硬體2億,軟體3.5億),比美國研究核子彈的曼哈頓計畫的投資20億美元的四分之一還多。在研製期間,布魯克斯率領著2000名程式設計師夜以繼日地工作,單單360作業系統的開發就用了5000個人年。因此,當1964年4月7日,在IBM公司紀念其成立50周年的慶祝大會上宣布360系列計算機的時候,小沃森完全有理由聲稱“這是公司歷史上宣布的最重要的產品”。確實,IBM/360以其通用化、系列化和標準化的特點,對全世界計算機產業的發展產生了如此深遠的影響,以至被認為是劃時代的傑作。而IBM/360的推出,也使IBM在短短兩年時間內,即到1966年,其資本積累就增加到45億美元,職工總數淨增6萬,達到19萬,成為名符其實的“蘭色巨人”。到20世紀60年代末,360系列機的市場占有率達到15%,到20世紀70年代中期,超過了50%。各計算機生產廠商紛紛仿效360的榜樣,推出各自的系列機。有的則直接採用IBM/360的作業系統,比如著名的Amdahl公司的所謂“插接兼容式”計算機(plug-compatible computer)就是這樣。為此,伊萬斯和布魯克斯兩人常常被並稱為“IBM/360之父”(father of the IBM System/360)。
當然,IBM/360如今早已是“昨日黃花”了。IBM公司在20世紀70年代就推出了370系列替代360,以繼續保持其技術上的優勢。這裡之所以用了一定篇幅介紹IBM/360的故事,是因為其中不乏讓我國的企業家、科學家和工程技術人員深思的一些問題。IBM/360的特點我們只簡要介紹如下。它是積體電路的計算機。體系結構既便於事務處理,又便於科學計算;系列中各機型(初期,規模由小到大,功能從弱到強,包括20、30、40、50、65和75六個型號,後來擴充了25、85、91、195等型號)具有兼容性;有標準的輸入輸出接口和通用的輸入輸出設備,它們與中央處理器相對獨立;軟體既有兼容性又有可擴充性,從而可最大限度地保護用戶的軟體投資。這些特徵大多都成為以後計算機設計與開發所遵循的基本原則。
IBM/360成功以後,布魯克斯離開IBM公司回到其故鄉,為北卡羅萊納大學(University of North Carolina at Chapel Hill,簡寫UNC)創建了計算機科學系,擔任該系系主任長達20年(1964—1984年)。卸任以後仍在該系任教至今,因此他培養的學生很多,可謂“桃李滿天下”。除了教學以外,他還致力於發展美國的計算機技術和計算機在國防等方面的套用,有許多社會兼職。他的研究領域除了計算機體系結構、機器語言設計、軟體工程和大型項目管理以外,還包括動態體系結構的可視化(如walk-through,即“走查”)、人機接口、互動計算機圖形學等,十分廣泛。20世紀70年代初,布魯克斯和他的學生賴特(William V.Wright)同生物化學系的海曼斯(Jan Hermans)合作,研究蛋白質摺疊問題,實現了可視化分子三維結構系統。後來又與杜克大學的結晶學家金蓀和(Sum Ho Kim)合作,開發成功了能找到tRNA分子的原子坐標的系統,使得以前需要三個月才能完成的工作只要一個星期就可以做完。關於虛擬現實(VR:Virtual Reality),涉及布魯克斯曾參與領導攻關的計算機模擬和訓練,是他關心的重點之一,1992年3月由美國國家自然科學基金會NSF主持的虛擬現實研討會,就是由布魯克斯等人倡議並在北卡羅萊納大學召開的,這次會議對VR進行了定義並就其研究方向提出了詳細建議,奠定了VR作為獨立研究方向的地位。布魯克斯在籌備及組織此次會議上作出了重要貢獻。
擔任職務
1966—1970年,他是ACM全國委員會的委員;
1973~1975年,出任ACM體系結構委員會(所謂SIGARCH)的主席;
1977~1980年,布魯克斯在美國國家研究院計算機科學技術部(Computer Science and Technology Board,National Research Council)任職;
1983~1984年,他是美國國防科學委員會人工智慧攻關領導小組(AI Task Force,Defence Science Board)的成員;
1986-1987年,是上述委員會另一個攻關領導小組“計算機模擬和訓練”(Computer Simulation and Training Task Force)的成員;
1985—1987年,他擔任軍用軟體攻關小組(Military Software Task Force)組長,並當選為美國工程院院士,他同時也是英國皇家學會和荷蘭皇家科學與藝術院的外籍院士。
著作
1963年,他和哈佛大學就讀時的同學和IBM公司的同事艾弗森(Kenneth Iverson,APL發明人,也是首屆計算機先驅獎獲得者)合著了(Automatic Data Processing,Wiley)一書,是該領域中最早的專著之一;
1969年再版時有兩個版本,其中一個是專門論述在IBM/360上的數據處理的(書名為Automatic Data Processing,System/360Edition);
1975年,他把他歷年來所寫的有關軟體工程和項目管理方面的文章匯集成書,書名為《神話般的人一月:有關軟體工程的隨筆》(The Mythical Man-Month:Essay On Software Engineering,Addison-Wesley);由於本書是他領導IBM/360軟體開發經驗的結晶,內容豐富而生動,成為軟體工程方面的經典之作,出版20年之後即1995年又再版了一次;
最近的一本專著是他與荷蘭特文德理工大學(Twente Technical University,位於荷蘭與德國接壤處的恩斯赫德)的勃勞夫教授(C.A.Blaauw)合著的《計算機體系結構:概念與發展》(Computer Architecture:Concepts and Evolution,Addison-Wesley,1997);
1995年,他與薩瑟蘭(1.E.Sutherland,“計算機圖形學之父”,1985年計算機先驅獎獲得者)等還合編了一本書,書名是《Evolving the High Performance Computing and Communications Initiative to Support the National Information Infrastructure》,由National Academy pr.出版,論述了有關高性能計算機計畫及信息基礎設施(也就是所謂“信息高速公路”)建設的一系列問題。
獲得獎項
ACM在1987年曾授予布魯克斯“傑出服務獎”(Distinguished Service Award),
1995年曾授予他以紐厄爾(A.Newell,首屆計算機先驅獎獲得者,1992年去世)命名的Newell獎,
1999年又授予他圖靈獎,使布魯克斯成為繼克努特(D.E.Knuth,首屆計算機先驅獎獲得者)之後第二位同時擁有ACM三個獎項的計算機科學家。
IEEE也先後向布魯克斯頒發三個獎項,即McDowell獎(1970)、計算機先驅獎(1980)和馮·諾伊曼獎(1993)。
AFIPS在1989年授予布魯克斯Harry Goode獎。
數據處理管理協會DPMA1970年授予他“計算機科學”獎,並命名他為該年度的風雲人物(Man of the Year)。
1985年,布魯克斯因在開發IBM/360上的傑出貢獻而榮獲全國技術獎章(National Medal of Technology),
物理學界的富蘭克林學會(Frank linInstitute)也曾授予布魯克斯Bower獎(Bower Prize and Award)。