寫(xiě)了三個(gè)影響世界的操作系統(tǒng),70多歲了,還去辦公室敲代碼
“Unix是由一群博士設(shè)計(jì)的垃圾操作系統(tǒng)!”
敢放出這樣狂妄之言的,恐怕只有被稱為“操作系統(tǒng)天神”的大衛(wèi)·卡特勒(David Cutler)了。
圖片
卡特勒確實(shí)有充足的狂妄的資本:
(1) 卡特勒為VAX開(kāi)發(fā)了VMS操作系統(tǒng),讓DEC統(tǒng)治了小型機(jī)市場(chǎng)。
(2) 卡特勒在微軟主導(dǎo)開(kāi)發(fā)了Windows NT ,扒開(kāi)微軟主要的操作系統(tǒng)(XP, Windows 7, 10,11)的外衣,它們的內(nèi)核全是Windows NT。
(3) 卡特勒為微軟Azure云開(kāi)發(fā)了云操作系統(tǒng),幫助微軟順利轉(zhuǎn)型云計(jì)算。
人這一輩子,能寫(xiě)一個(gè)流行的操作系統(tǒng)就名垂青史了,卡特勒老爺子一下子寫(xiě)了三個(gè),涵蓋了小型機(jī),PC,云計(jì)算三個(gè)不同領(lǐng)域,所以他被稱為“硅谷最牛內(nèi)核程序員”。
有意思的是,雖然卡特勒這么厲害,卻是一個(gè)典型的,不愿意做管理的程序員。
70多歲的卡特勒每天還會(huì)走進(jìn)微軟位于西雅圖的辦公室,打開(kāi)電腦敲代碼。
今天我們聊聊David Cutler和三個(gè)操作系統(tǒng)的故事。
1.小型機(jī)操作系統(tǒng)
卡特勒和操作系統(tǒng)結(jié)緣,其實(shí)是個(gè)偶然的機(jī)會(huì)。
他是個(gè)雙非程序員(非科班,非著名高校),在杜邦工作期間因?yàn)樾枰獙?duì)客戶的流程進(jìn)行建模,要用到計(jì)算機(jī),于是去了一所IBM開(kāi)辦的“培訓(xùn)班”,學(xué)習(xí)7044計(jì)算機(jī)和一門(mén)叫做GPSS-3的編程語(yǔ)言,沒(méi)想到編程天賦爆棚,一發(fā)而不可收拾。
1971年,小型機(jī)的開(kāi)創(chuàng)者DEC瘋狂擴(kuò)張,卡特勒看到機(jī)會(huì),果斷跳槽。
現(xiàn)在很多人已經(jīng)不知道什么是小型機(jī)了,其實(shí)小型機(jī)其實(shí)一點(diǎn)兒都不小,比如這臺(tái)PDP-11:
之所以被稱為“小型機(jī)”,是因?yàn)橄鄬?duì)于IBM那巨大的大型機(jī)而言。
雖然DEC公司高手云集,卡特勒迅速展現(xiàn)了天賦。
很多八十年代的程序員都會(huì)炫耀自己開(kāi)發(fā)軟件時(shí)壓榨每一個(gè)字節(jié)的經(jīng)歷,但卡特勒在70年代已經(jīng)這么干了,他在開(kāi)發(fā)PDP-11的實(shí)時(shí)操作系統(tǒng)中一舉成名:用出色的技巧把程序縮減到了極致。
他的桌子上甚至放著一個(gè)橡皮戳,上面刻著“程序大小是最終目標(biāo)”(Size is the goal),當(dāng)某人的程序占用了太多內(nèi)存,他就會(huì)給人蓋個(gè)戳打回去重寫(xiě)。
這引起了DEC的靈魂人物——戈登·貝爾的關(guān)注,戈登·貝爾是小型機(jī)之父,高性能計(jì)算領(lǐng)域的最高榮譽(yù)“戈登·貝爾獎(jiǎng)”就是以他的名字命名。
當(dāng)時(shí)藍(lán)色巨人IBM也要將推出小型機(jī),殺入這個(gè)市場(chǎng)。戈登·貝爾感覺(jué)必須大大地改進(jìn)DEC的小型機(jī),才能在強(qiáng)大的IBM面前保持領(lǐng)先地位,他規(guī)劃了一個(gè)新的32位的小型機(jī)產(chǎn)品線,叫VAX。
VAX上會(huì)運(yùn)行一個(gè)全新的操作系統(tǒng):VMS,這個(gè)操作系統(tǒng)有個(gè)重要特點(diǎn):既可以運(yùn)行新程序,也可以運(yùn)行之前為PDP-11編寫(xiě)的老程序,這就是向后兼容。(在后來(lái)的NT操作系統(tǒng)中也實(shí)現(xiàn)了這一點(diǎn))。
VAX將會(huì)成為計(jì)算機(jī)歷史上的分水嶺,組建團(tuán)隊(duì)時(shí),戈登·貝爾挑選了DEC公司最聰明的工程師,大衛(wèi)·卡特勒被任命為VMS操作系統(tǒng)的領(lǐng)導(dǎo)。
雖然說(shuō)是領(lǐng)導(dǎo),但卡特勒本質(zhì)上還是個(gè)程序員,他喜歡親自上手,不喜歡求人幫忙,因?yàn)椤爱?dāng)把所有事情說(shuō)一遍再做完,所說(shuō)的話比要做的事多得多”。
操作系統(tǒng)的開(kāi)發(fā)壓力巨大,團(tuán)隊(duì)經(jīng)常爆發(fā)激烈爭(zhēng)吵,有一段時(shí)間,早上起床時(shí)卡特勒經(jīng)常頭暈眼花,甚至不能把身體站直,血壓超高,全靠吃藥才能把血壓降下來(lái)。
(VMS開(kāi)發(fā)團(tuán)隊(duì)合影)
兩年以后,第一臺(tái) VAX superminis 從 DEC 的制造工廠問(wèn)世,卡特勒負(fù)責(zé)開(kāi)發(fā)的VMS操作系統(tǒng)表現(xiàn)優(yōu)異,非常穩(wěn)定,幫助VAX 迅速獲得了市場(chǎng)領(lǐng)導(dǎo)地位。
VAX的成功讓卡特勒獲得了巨大的財(cái)富和榮譽(yù),他被戈登·貝爾稱為“世界上最好的操作系統(tǒng)專家”。
但是,DEC公司的官僚作風(fēng)讓脾氣暴躁的實(shí)干家卡特勒難以忍受,一群經(jīng)理過(guò)來(lái)對(duì)VMS指手畫(huà)腳,卡特勒沒(méi)辦法像之前那樣指揮VMS項(xiàng)目,他一怒之下威脅辭職。
貴人戈登·貝爾再次給了他一個(gè)無(wú)法拒絕的提議:“帶上你想要的任何人,去你想去的任何地方,做你想做的任何事情,告訴我你需要多少錢(qián),DEC公司負(fù)責(zé)所有費(fèi)用!”
卡特勒非常高興,把自己的死黨聚集到一起,從東海岸的馬薩諸塞州搬到西海岸西雅圖附近(靠近微軟),遠(yuǎn)離DEC總部的官僚氣息,西海岸還有高山可以滑雪,可以打獵,簡(jiǎn)直不要太爽。
卡特勒計(jì)劃為VAX開(kāi)發(fā)一個(gè)新的實(shí)時(shí)操作系統(tǒng),他本人也從軟件進(jìn)入了硬件領(lǐng)域,為MicroVAX編寫(xiě)微代碼,這讓他和很多程序員區(qū)分開(kāi)來(lái):深入硬件層次,大家用高級(jí)語(yǔ)言思考,卡特勒用寄存器和機(jī)器指令思考。
但是,他的靠山戈登·貝爾1983年離職了,1988年,新項(xiàng)目Prism被公司取消,西海岸團(tuán)隊(duì)解散,100多號(hào)人要在公司內(nèi)部自謀生路,卡特勒喝得酩酊大醉,給大家放了一個(gè)月的帶薪假。
2.Windows NT
這時(shí)候卡特勒接到了比爾·蓋茨的電話。
卡特勒和他的團(tuán)隊(duì)根本看不上微軟,認(rèn)為微軟的代碼寫(xiě)得很糟糕,DOS在他們的眼中都是玩具操作系統(tǒng),,Windows 1.0,2.0也就是DOS套了個(gè)殼而已。
但是比爾·蓋茨說(shuō):你可以過(guò)來(lái),開(kāi)發(fā)你認(rèn)為真正的PC操作系統(tǒng)啊,現(xiàn)在有PC,工作站,你寫(xiě)個(gè)操作系統(tǒng)把它們統(tǒng)一了!
吸引牛人最好的方式還是夢(mèng)想,比爾·蓋茨開(kāi)出的夢(mèng)想支票非常誘人。
這有點(diǎn)像喬布斯招募百事可樂(lè)斯卡利時(shí)所描繪的事情:你是想賣(mài)一輩子糖水,還是想和我們一起改變世界?
卡特勒動(dòng)心了,他忘不了自己在DEC的老伙計(jì),要求帶著20多人的團(tuán)隊(duì)整體加入,其中還包含計(jì)算機(jī)硬件工程師!
比爾·蓋茨太渴望得到卡特勒這位操作系統(tǒng)的天神了,雖然微軟不做硬件,但是他也滿口答應(yīng)。
1988年,卡特勒最終加入微軟,這讓比爾·蓋茨和二當(dāng)家鮑爾默手舞足蹈:卡特勒加入微軟了,這真是難以置信!
卡特勒要做的就是NT操作系統(tǒng),這個(gè)系統(tǒng)的目標(biāo)可以說(shuō)是雄心勃勃的,前所未有的:
(1)移植性:可以移植到到多個(gè)CPU架構(gòu)(MIPS、Alpha、PowerPC、x64)
(2)靈活性:支持多種應(yīng)用程序的接口(POSIX, OS/2 , Windows 32 )
(3)可靠性:長(zhǎng)時(shí)間運(yùn)行而不崩潰
(4)安全性:通過(guò)美國(guó)國(guó)家安全局(NSA)的C2等級(jí)標(biāo)準(zhǔn)
(5)支持在多個(gè)CPU上運(yùn)行,這在當(dāng)時(shí)的PC上是獨(dú)有的。
圖片
相對(duì)于DOS和Windows ,NT的每個(gè)目標(biāo)都是巨大的挑戰(zhàn),開(kāi)發(fā)經(jīng)歷5年,有430萬(wàn)行代碼,花費(fèi)了1.5億美元。
開(kāi)發(fā)的過(guò)程簡(jiǎn)直就是一場(chǎng)死亡行軍,Bug似乎無(wú)窮無(wú)盡,開(kāi)發(fā)團(tuán)隊(duì)宣傳他們一共fix了3萬(wàn)個(gè)bug,其中包括需要真正的showstopper——危險(xiǎn)到足以讓整個(gè)系統(tǒng)崩潰。
到了沖擊階段,在4月的最后一周fix 了驚人的1132個(gè)Bug,卻又發(fā)現(xiàn)了713個(gè)嚴(yán)重到需要修復(fù)的新錯(cuò)誤,每個(gè)人都精疲力盡。
NT的開(kāi)發(fā)過(guò)程在一本叫做《Showstopper》(中文名《觀止》)的書(shū)中有詳細(xì)描述,強(qiáng)烈推薦。
圖片
1993年7月27日,Windows NT 3.1終于發(fā)布,它一改微軟只能實(shí)現(xiàn)玩具操作系統(tǒng),不斷藍(lán)屏的印象,實(shí)現(xiàn)了網(wǎng)絡(luò)能力、可靠性、兼容性和便攜性方面的主要目標(biāo),讓競(jìng)爭(zhēng)對(duì)手難以超越。
比爾·蓋茨估計(jì)NT提供的技術(shù)可以讓微軟用到2019年,實(shí)際上,從Windows XP開(kāi)始,Windows操作系統(tǒng)的代碼都基于Window NT進(jìn)行構(gòu)建,并且一直沿用到今天。
如果說(shuō)有一個(gè)人在Windows發(fā)展歷史上不可或缺的話,他就是大衛(wèi)·卡特勒。
3.Windows Azure
2005年,Ray Ozzie(著名的Lotus Notes創(chuàng)始人)的創(chuàng)業(yè)公司被微軟收購(gòu),他也進(jìn)入微軟成了首席軟件架構(gòu)師。
Ray Ozzie一直倡導(dǎo)通過(guò)Web的方式來(lái)交付軟件,即SaaS,為了闡述自己的理念,他寫(xiě)了一份長(zhǎng)達(dá)7頁(yè)的備忘錄,呼吁公司構(gòu)建新的平臺(tái),在互聯(lián)網(wǎng)上復(fù)制Windows,Office和其他應(yīng)用程序。
圖片
這個(gè)想法在微軟絕對(duì)是異端,因?yàn)閃indows 和Office 一直是兩個(gè)巨大的搖錢(qián)樹(shù),貢獻(xiàn)了80%以上的收入,現(xiàn)在你要把它放到網(wǎng)上去,能賺錢(qián)嗎?
微軟前CEO鮑爾默最初是堅(jiān)決反對(duì)的,但是最后還是被說(shuō)服,開(kāi)始全力以赴地推動(dòng)微軟的云戰(zhàn)略。
云計(jì)算也需要操作系統(tǒng),誰(shuí)來(lái)領(lǐng)軍開(kāi)發(fā)呢?
Windows的副總裁Amitabh Srivastava想起來(lái)辦公室對(duì)面的大衛(wèi)·卡特勒,此時(shí)卡特勒已經(jīng)64歲,準(zhǔn)備要退休了。
但是看到有一個(gè)影響世界的機(jī)會(huì)出現(xiàn)了,卡特勒再次心動(dòng)了。
兩人拜訪了微軟已經(jīng)運(yùn)行云服務(wù)的部門(mén),例如MSN, Hotmail,XBox Live,確定了開(kāi)發(fā)Windows Azure的計(jì)劃,項(xiàng)目代號(hào)Red Dog。
大衛(wèi)·卡特勒這位大神的大旗一旦立起來(lái),開(kāi)發(fā)團(tuán)隊(duì)的人員招聘就不是問(wèn)題,每個(gè)人都想和大衛(wèi)·卡特勒共事。
64歲的卡特勒親自操刀,為Azure開(kāi)發(fā)了虛擬機(jī)管理程序(Hypervisor),得益于以卡特勒在操作系統(tǒng)和硬件領(lǐng)域的深厚功力,微軟的Hpervisor效率極高,開(kāi)銷(xiāo)非常低,這樣就可以把硬件資源充分地劃分給虛擬機(jī)。
隨著時(shí)間的發(fā)展,Windows Azure(后來(lái)改名為Microsoft Azure)開(kāi)始慢慢發(fā)力,尤其是新CEO納德拉上臺(tái)以后,成為僅次于亞馬遜AWS的第二大云計(jì)算平臺(tái),微軟也從蓋茨時(shí)代的軟件公司轉(zhuǎn)型為一家云計(jì)算公司。
4.卡特勒的另一面
卡特勒不但有著輝煌的技術(shù)生涯,在生活上也獨(dú)具一格。
和文質(zhì)彬彬的蓋茨相比,卡特勒是個(gè)典型的“藍(lán)領(lǐng)硬漢”,無(wú)論在高中還是大學(xué),他都是校橄欖球隊(duì)的絕對(duì)主力,他喜歡賽車(chē),舉重,喜歡打獵,喜歡在午夜去滑雪——這樣可以在白天工作更長(zhǎng)的時(shí)間。
圖片
卡特勒也是一個(gè)脾氣暴躁、粗魯?shù)娜?,從不?dān)心別人的感受。
在他發(fā)脾氣時(shí),嘴里動(dòng)不動(dòng)就冒出一串污言穢語(yǔ),在DEC工作時(shí),有個(gè)女工程師在打印機(jī)旁遇到了卡特勒,他正在扣卡在打印機(jī)中的碎紙,女工程師以期待的眼神看了他一眼,于是卡特勒就咆哮起來(lái):你就是把那個(gè)打印機(jī)搞垮的混蛋嗎?
卡特勒最著名的段子是開(kāi)發(fā)Windows NT期間,他需要招聘一個(gè)秘書(shū)時(shí),就對(duì)每個(gè)前來(lái)面試的人問(wèn)道:你對(duì)Fuck這個(gè)詞怎么想?這讓無(wú)數(shù)女生鎩羽而歸,直到一個(gè)同樣火爆的女生出現(xiàn):這是我最喜歡的詞,于是她被錄取了。
參考資料:
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