寫了三個影響世界的操作系統,70多歲了,還去辦公室敲代碼

>>>  技術話題—商業文明的嶄新時代  >>> 簡體     傳統

“Unix是由一群博士設計的垃圾操作系統!”

敢放出這樣狂妄之言的,恐怕只有被稱為“操作系統天神”的大衛·卡特勒(David Cutler)了。

卡特勒確實有充足的狂妄的資本:

(1) 卡特勒為VAX開發了VMS操作系統,讓DEC統治了小型機市場。

(2) 卡特勒在微軟主導開發了Windows NT ,扒開微軟主要的操作系統(XP, Windows 7, 10,11)的外衣,它們的內核全是Windows NT。

(3) 卡特勒為微軟Azure云開發了云操作系統,幫助微軟順利轉型云計算。

人這一輩子,能寫一個流行的操作系統就名垂青史了,卡特勒老爺子一下子寫了三個,涵蓋了小型機,PC,云計算三個不同領域,所以他被稱為“硅谷最牛內核程序員”。

有意思的是,雖然卡特勒這么厲害,卻是一個典型的,不愿意做管理的程序員。

70多歲的卡特勒每天還會走進微軟位于西雅圖的辦公室,打開電腦敲代碼。

今天我們聊聊David Cutler和三個操作系統的故事。

1 小型機操作系統

卡特勒和操作系統結緣,其實是個偶然的機會。

他是個雙非程序員(非科班,非著名高校),在杜邦工作期間因為需要對客戶的流程進行建模,要用到計算機,于是去了一所IBM開辦的“培訓班”,學習7044計算機和一門叫做GPSS-3的編程語言,沒想到編程天賦爆棚,一發而不可收拾。

1971年,小型機的開創者DEC瘋狂擴張,卡特勒看到機會,果斷跳槽。

現在很多人已經不知道什么是小型機了,其實小型機其實一點兒都不小,比如這臺PDP-11:

之所以被稱為“小型機”,是因為相對于IBM那巨大的大型機而言。

雖然DEC公司高手云集,卡特勒迅速展現了天賦。

很多八十年代的程序員都會炫耀自己開發軟件時壓榨每一個字節的經歷,但卡特勒在70年代已經這么干了,他在開發PDP-11的實時操作系統中一舉成名:用出色的技巧把程序縮減到了極致。

他的桌子上甚至放著一個橡皮戳,上面刻著“程序大小是最終目標”(Size is the goal),當某人的程序占用了太多內存,他就會給人蓋個戳打回去重寫。

這引起了DEC的靈魂人物——戈登·貝爾的關注,戈登·貝爾是小型機之父,高性能計算領域的最高榮譽“戈登·貝爾獎”就是以他的名字命名。

當時藍色巨人IBM也要將推出小型機,殺入這個市場。戈登·貝爾感覺必須大大地改進DEC的小型機,才能在強大的IBM面前保持領先地位,他規劃了一個新的32位的小型機產品線,叫VAX。

VAX上會運行一個全新的操作系統:VMS,這個操作系統有個重要特點:既可以運行新程序,也可以運行之前為PDP-11編寫的老程序,這就是向后兼容。(在后來的NT操作系統中也實現了這一點)。

VAX將會成為計算機歷史上的分水嶺,組建團隊時,戈登·貝爾挑選了DEC公司最聰明的工程師,大衛·卡特勒被任命為VMS操作系統的領導。

雖然說是領導,但卡特勒本質上還是個程序員,他喜歡親自上手,不喜歡求人幫忙,因為“當把所有事情說一遍再做完,所說的話比要做的事多得多”。

操作系統的開發壓力巨大,團隊經常爆發激烈爭吵,有一段時間,早上起床時卡特勒經常頭暈眼花,甚至不能把身體站直,血壓超高,全靠吃藥才能把血壓降下來。

(VMS開發團隊合影)

兩年以后,第一臺 VAX superminis 從 DEC 的制造工廠問世,卡特勒負責開發的VMS操作系統表現優異,非常穩定,幫助VAX 迅速獲得了市場領導地位。

VAX的成功讓卡特勒獲得了巨大的財富和榮譽,他被戈登·貝爾稱為“世界上最好的操作系統專家”。

但是,DEC公司的官僚作風讓脾氣暴躁的實干家卡特勒難以忍受,一群經理過來對VMS指手畫腳,卡特勒沒辦法像之前那樣指揮VMS項目,他一怒之下威脅辭職。

貴人戈登·貝爾再次給了他一個無法拒絕的提議:“帶上你想要的任何人,去你想去的任何地方,做你想做的任何事情,告訴我你需要多少錢,DEC公司負責所有費用!

卡特勒非常高興,把自己的死黨聚集到一起,從東海岸的馬薩諸塞州搬到西海岸西雅圖附近(靠近微軟),遠離DEC總部的官僚氣息,西海岸還有高山可以滑雪,可以打獵,簡直不要太爽。

卡特勒計劃為VAX開發一個新的實時操作系統,他本人也從軟件進入了硬件領域,為MicroVAX編寫微代碼,這讓他和很多程序員區分開來:深入硬件層次,大家用高級語言思考,卡特勒用寄存器和機器指令思考

但是,他的靠山戈登·貝爾1983年離職了,1988年,新項目Prism被公司取消,西海岸團隊解散,100多號人要在公司內部自謀生路,卡特勒喝得酩酊大醉,給大家放了一個月的帶薪假。

2 Windows NT

這時候卡特勒接到了比爾·蓋茨的電話。

卡特勒和他的團隊根本看不上微軟,認為微軟的代碼寫得很糟糕,DOS在他們的眼中都是玩具操作系統,,Windows 1.0,2.0也就是DOS套了個殼而已。

但是比爾·蓋茨說:你可以過來,開發你認為真正的PC操作系統啊,現在有PC,工作站,你寫個操作系統把它們統一了!

吸引牛人最好的方式還是夢想,比爾·蓋茨開出的夢想支票非常誘人。

這有點像喬布斯招募百事可樂斯卡利時所描繪的事情:你是想賣一輩子糖水,還是想和我們一起改變世界?

卡特勒動心了,他忘不了自己在DEC的老伙計,要求帶著20多人的團隊整體加入,其中還包含計算機硬件工程師!

比爾·蓋茨太渴望得到卡特勒這位操作系統的天神了,雖然微軟不做硬件,但是他也滿口答應。

1988年,卡特勒最終加入微軟,這讓比爾·蓋茨和二當家鮑爾默手舞足蹈:卡特勒加入微軟了,這真是難以置信!

卡特勒要做的就是NT操作系統,這個系統的目標可以說是雄心勃勃的,前所未有的:

(1)移植性:可以移植到到多個CPU架構(MIPS、Alpha、PowerPC、x64)

(2)靈活性:支持多種應用程序的接口(POSIX, OS/2 , Windows 32 )

(3)可靠性:長時間運行而不崩潰

(4)安全性:通過美國國家安全局(NSA)的C2等級標準

(5)支持在多個CPU上運行,這在當時的PC上是獨有的。

相對于DOS和Windows ,NT的每個目標都是巨大的挑戰,開發經歷5年,有430萬行代碼,花費了1.5億美元。

開發的過程簡直就是一場死亡行軍,Bug似乎無窮無盡,開發團隊宣傳他們一共fix了3萬個bug,其中包括需要真正的showstopper——危險到足以讓整個系統崩潰。

到了沖擊階段,在4月的最后一周fix 了驚人的1132個Bug,卻又發現了713個嚴重到需要修復的新錯誤,每個人都精疲力盡。

NT的開發過程在一本叫做《Showstopper》(中文名《觀止》)的書中有詳細描述,強烈推薦。

1993年7月27日,Windows NT 3.1終于發布,它一改微軟只能實現玩具操作系統,不斷藍屏的印象,實現了網絡能力、可靠性、兼容性和便攜性方面的主要目標,讓競爭對手難以超越。

比爾·蓋茨估計NT提供的技術可以讓微軟用到2019年,實際上,從Windows XP開始,Windows操作系統的代碼都基于Window NT進行構建,并且一直沿用到今天。

如果說有一個人在Windows發展歷史上不可或缺的話,他就是大衛·卡特勒。

3 Windows Azure

2005年,Ray Ozzie(著名的Lotus Notes創始人)的創業公司被微軟收購,他也進入微軟成了首席軟件架構師。

Ray Ozzie一直倡導通過Web的方式來交付軟件,即SaaS,為了闡述自己的理念,他寫了一份長達7頁的備忘錄,呼吁公司構建新的平臺,在互聯網上復制Windows,Office和其他應用程序。

這個想法在微軟絕對是異端,因為Windows 和Office 一直是兩個巨大的搖錢樹,貢獻了80%以上的收入,現在你要把它放到網上去,能賺錢嗎?

微軟前CEO鮑爾默最初是堅決反對的,但是最后還是被說服,開始全力以赴地推動微軟的云戰略。

云計算也需要操作系統,誰來領軍開發呢?

Windows的副總裁Amitabh Srivastava想起來辦公室對面的大衛·卡特勒,此時卡特勒已經64歲,準備要退休了。

但是看到有一個影響世界的機會出現了,卡特勒再次心動了。

兩人拜訪了微軟已經運行云服務的部門,例如MSN, Hotmail,XBox Live,確定了開發Windows Azure的計劃,項目代號Red Dog。

大衛·卡特勒這位大神的大旗一旦立起來,開發團隊的人員招聘就不是問題,每個人都想和大衛·卡特勒共事。

64歲的卡特勒親自操刀,為Azure開發了虛擬機管理程序(Hypervisor),得益于以卡特勒在操作系統和硬件領域的深厚功力,微軟的Hpervisor效率極高,開銷非常低,這樣就可以把硬件資源充分地劃分給虛擬機。

隨著時間的發展,Windows Azure(后來改名為Microsoft Azure)開始慢慢發力,尤其是新CEO納德拉上臺以后,成為僅次于亞馬遜AWS的第二大云計算平臺,微軟也從蓋茨時代的軟件公司轉型為一家云計算公司。

4 卡特勒的另一面

卡特勒不但有著輝煌的技術生涯,在生活上也獨具一格。

和文質彬彬的蓋茨相比,卡特勒是個典型的“藍領硬漢”,無論在高中還是大學,他都是校橄欖球隊的絕對主力,他喜歡賽車,舉重,喜歡打獵,喜歡在午夜去滑雪——這樣可以在白天工作更長的時間。

卡特勒也是一個脾氣暴躁、粗魯的人,從不擔心別人的感受。

在他發脾氣時,嘴里動不動就冒出一串污言穢語,在DEC工作時,有個女工程師在打印機旁遇到了卡特勒,他正在扣卡在打印機中的碎紙,女工程師以期待的眼神看了他一眼,于是卡特勒就咆哮起來:你就是把那個打印機搞垮的混蛋嗎?

卡特勒最著名的段子是開發Windows NT期間,他需要招聘一個秘書時,就對每個前來面試的人問道:你對Fuck這個詞怎么想?這讓無數女生鎩羽而歸,直到一個同樣火爆的女生出現:這是我最喜歡的詞,于是她被錄取了。

(完)

參考資料:

https://www.forbes.com/sites/janakirammsv/2020/02/03/a-look-back-at-ten-years-of-microsoft-azure/?sh=785be3cb4929

https://www.infoworld.com/article/2638433/windows-azure-s-hypervisor-isn-t-hyper-v.html

https://www.youtube.com/watch?v=J2GV_bCfnCw

https://news.microsoft.com/features/the-engineers-engineer-computer-industry-luminaries-salute-dave-cutlers-five-decade-long-quest-for-quality/

https://en.wikipedia.org/wiki/Dave_Cutler


2023-07-08 09:28:17

[新一篇] 喬布斯《遺失的訪談》全文:塵封16年的預見

[舊一篇] 未來10年,學什么不會失業?|專訪《人類簡史》作者尤瓦爾·赫拉利
回頂部
寫評論


評論集


暫無評論。

稱謂:

内容:

驗證:


返回列表