查看原文
其他

写了三个影响世界的操作系统,70多岁了,还去办公室敲代码

脚本之家 2023-09-03

The following article is from 码农翻身 Author 刘欣

“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多号人要在公司内部自谋生路,卡特勒喝得酩酊大醉,给大家放了一个月的带薪假。



2Windows 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发展历史上不可或缺的话,他就是大卫·卡特勒。



3Windows 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


本文作者刘欣,著有畅销书《码农翻身》,《半小时漫画计算机》,前IBM架构师,领导过多个企业应用架构设计和开发工作;洞察技术本质,擅长用故事去讲解复杂技术。



  推荐阅读:
  1. 28年过去了,这个软件的40天试用期还没结束。
  2. 「5年内,人类程序员没了」,Stability AI老板大胆预测,一众大佬狂怼:大错特错,都懒得解释
  3. 一个程序员的水平能差到什么程度?
  4. 一个国外小老头,用被淘汰的编程工具,开发了一个了不起的软件
  5. 秀offer : 杭州阿里40万与长沙交通银行18万

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存