工程师的工程师:Dave Cutler(2016)

2020-12-16 07:09:49

科技行业还很年轻,但是它的历史已经充满了神话和传说。

最大的误解是关于发明实际上是如何发生的-“ aha”奇妙的瞬间导致了必然成功的概念。正如马尔科姆·格拉德威尔(Malcolm Gladwell)几年前在《纽约人创造神话》(New Yorker Creation Myth)文章中所阐明的那样,现实是,发明更加繁琐,一个想法却在另一个想法之上。

在技​​术行业中,这个发明周期是在从大型机和小型机到PC,Internet,移动和云的时代中捕获的。该行业中的大多数人一波又一波地转移,希望能在适当的时机抓住每一个连续的事件。

然后是造浪者。该行业站在他们的肩膀上的巨人。 Dave Cutler是一位造浪者,肩膀宽阔。

微软高级技术研究员卡特勒(Cutler)是一位计算机历史博物馆研究员,他是第一位大规模生产便携式计算机Osborne 1的设计师李·费尔森斯坦(Lee Felsenstein)。 ; Verilog硬件描述语言的发明者之一Philip Moorby。他们与博物馆的研究员大厅成员Alan Kay,Vinton Cerf和Tim Berners-Lee等其他造浪者一起加入。

“研究员奖旨在表彰那些对我们的生活,我们的文化,我们的工作方式,交流信息和生活产生巨大影响的人。然而,由于产生了如此深远的影响,它们几乎是鲜为人知。”博物馆总裁兼首席执行官约翰·霍拉尔“像戴夫·卡特勒(Dave Cutler)这样的人,可能会影响超过20亿人的计算体验,但与他对世界的影响成正比,却没有以他应得的方式被人们所认识。”

现年74岁的卡特勒每天仍在微软庞大的华盛顿雷德蒙德校园里上班,他塑造了整个时代:从他在70年代后期为Digital Equipment Corporation开发VMS操作系统的工作起,他在开发中的核心作用Windows NT(自1993年以来一直是Windows所有主要版本的基础)的基础知识,他最近在开发Microsoft Azure云操作系统和Xbox One虚拟机管理程序方面的最新经验使Xbox不仅可以用于游戏。

微软前首席执行官史蒂夫·鲍尔默(Steve Ballmer)是密歇根州本地人,朋友和高尔夫好友。在他看来,没有哪个工程师对计算历史的影响比卡特勒大。鲍尔默说:“曾经有令人难以置信的有远见的人也产生了影响,但不是在工程师的座位上产生的。” “我从未见过另一位具有相同多功能性,领导能力和技术才能的工程领导人。”

微软前首席软件架构师雷·奥兹(Ray Ozzie)于70年代后期首次与卡特勒(Cutler)会面,当时他是数字设备公司(DEC)竞争对手Data General的软件工程师。他认为卡特勒是业界最杰出和最多产的工程师之一。

Ozzie说:“不能夸大Dave在计算行业和先进业务方面的领先水平。” “戴夫(Dave)在VMS上的开创性工作使DEC的VAX成为32位超迷你时代的杀手category。然后,当PC本身从16转换到32位时,Dave在NT上的工作直接负责使Windows再次成为类别杀手。随着计算世界从服务器转向服务,Dave在Azure上的工作对于使Microsoft转变为全球顶级云计算基础设施提供商之一至关重要。”

微软前首席战略家兼首席技术官内森·迈尔沃尔德(Nathan Myhrvold)认为卡特勒是有史以来最出色的系统程序员之一。在肠道中编写硬核系统软件是非常专业的事情。对于每个系统程序员而言,都有一千名应用程序程序员在其之上进行编程。戴夫只是最伟大的一位。”

Windows and Devices Group执行副总裁Terry Myerson表示:“如果有一个技术人员在现代Windows的历史上必不可少,那就是Dave。”

卡特勒是一个行动者,而不是说话者。他最喜欢的成语之一是:“说完所有话,要做到的话要多得多。”因此,也许最好是让其他人了解他对全球数十亿个人和数十万企业的计算体验的影响。

1976年,DEC是技术行业的宠儿。它和其他竞争对手,例如马萨诸塞州128号公路沿线的Data General和Prime Computer,统治了计算领域。

但是该公司的最高工程主管戈登·贝尔对此感到担忧。该公司的旗舰产品16位PDP-11的销售停滞不前,而竞争对手IBM即将发布其第一台小型计算机。

贝尔的回应:引入新的操作系统,向后兼容该公司的PDP-11程序,通过引入称为VAX的32位超级微型计算机新系统来改变竞争环境。

贝尔邀请了一位33岁的工程师来领导VMS操作系统的开发。这位工程师是四年前加入公司的,他为PDP-11开发实时操作系统而闻名。四十一年前的这个月,卡特勒和另外四名高级工程师启动了VMS项目。卡特勒是高级程序员。

贝尔是计算机历史博物馆的创始受托人,他本人于2003年被任命为计算机历史博物馆院士。他说,他选择卡特勒来领导VMS的开发,因为“我们都有相同的目标和竞争冲动……戴夫是最终竞争对手。他真的想赢。”

两年后,DEC的制造厂出现了第一批VAX超级产品,而VAX迅速在市场上占据领导地位。贝尔将卡特勒称为“世界上最佳的操作系统作家”。

伯顿·史密斯(Burton Smith)也许是最著名的并行计算设计师,并且是微软技术研究员。在20世纪70年代后期,他在一家高性能计算公司工作,并有机会认识了MacNeal-Schwendler Corporation(现为MCS Software)的创始人Richard MacNeal,该公司开发了NASTRAN(有限元分析程序)。

“迪克带我到这台计算机上,说,‘看看。’这是运行NASTRAN的VAX 11/780,”史密斯说。 “通常在新计算机上运行NASTRAN会暴露出数不清的错误,并且需要数年才能完善。我说:“这东西要提起来有多难?”他说,“哦,这真是小菜一碟。我们只是将其放在此处,对其进行编译并开始运行.’VAX对整个世界的影响与防弹性有关。它很健壮。它确实按广告宣传工作。那是戴夫的工作。”

卡特勒在PDP 11和VAX上运行的操作系统具有传奇色彩,但贝尔很快补充说,卡特勒在DEC上的动态范围常常被忽略。他列举了三个例子:

PL / 1编译器包含一个后端运行时,该运行时最终托管了其他几种DEC语言(Cutler等人撰写了有关该书的“工程编译器”)

1982年,卡特勒与贝尔会面,并宣布他打算离开DEC,与劳伦斯·利弗莫尔国家实验室的科学家组成公司。在与卡特勒及其联合创始人会面之后,贝尔提出了一个反要约,他知道卡特勒对公司总部设在马萨诸塞州梅纳德市一家前羊毛厂的官僚主义日益感到沮丧。

贝尔告诉他:“去任何你想去的地方,带上你想要的任何人,然后做你想做的任何事。” DECWest出生。

卡特勒决定在DEC总部(位于华盛顿附近的西雅图,距离微软不远)的贝尔维尤(Bellevue)3,000英里以外的地方建立新的业务部门。 Len Kawell是跟随卡特勒在那建立工厂的年轻工程师之一。 “有一天,戴夫(Dave)叫我进入他的办公室,说,‘嘿,我要在西雅图开设一个新办公室。你想和我们一起去吗?’所以我80年代初来到西雅图。我们最初只是为VAX开发一个新的实时操作系统,但最终创建了MicroVAX和一个称为VAXeln的操作系统,这是一个实时操作系统。 Dave在那时进入了硬件,实际上是在设计芯片,所以Roger [Heinen]和我接管了软件。”

Kawell说,将Cutler与其他工程师区分开来的原因之一是他对硬件的理解。 “戴夫比以往任何时候都了解硬件。很多人用高级语言思考。 Dave实际上会考虑机器的寄存器和指令。当我们做MicroVAX I时,戴夫(Dave)为机器编写了微代码[硬件层指令的一层]。”

1988年,卡特勒(Cutler)离开了DEC,当时他的团队使用新的Mica操作系统的Prism项目被杀。

贝尔于1983年向比尔·盖茨(Bill Gates)首次介绍了卡特勒(Cutler)。现在,五年后,卡特勒(Cutler)将与微软一起开发新的便携式操作系统,并掀起新的浪潮。

罗布·肖特(Rob Short)自1982年以来一直在DECWest工作。在DEC取消Prism项目之后,卡特勒(Cutler)和另外两名面向商业的同事,他认为他们可能会创立一家新公司。

肖特说:“但随后戴夫接到了比尔·盖茨的电话。” “这吓坏了我们,因为那时我们对微软并没有很高的评价。”这次会议导致与盖茨,鲍尔默和迈尔沃尔德的后续会议。

肖特补充说:“我们就该行业的发展进行了有趣的对话。” “在某个阶段,我记得说过:'我不知道硬件世界中实际上会发生什么。”比尔说,'这不是我们认为将要发生的事情,而是我们将如何塑造这一趋势。我从来没有见过这么想过的人。”

当鲍尔默一个晚上访问卡特勒的家时,求婚继续了。 “史蒂夫来到戴夫的家,当他离开时,我们互相看着对方说:‘完全是另一只动物。这是一群有趣的人群。’”

当月下旬,即1988年10月31日,卡特勒在微软开始工作。 DEC West团队的短期成员和其他成员(五名具有软件专业知识,六名具有硬件知识)将很快跟进。达里尔·黑文斯(Darryl Havens)回忆说,他们在星期五向DEC提供了通知,并在下一个星期一开始,后者将为NT编写输入输出系统。

由前DEC工程师和一名现有Microsoft员工(Steve Wood)组成的强大小团队,最初花了六个月的时间为操作系统创建了一个规范-该规范现已保存在Smithsonian Institute中。

“如果您花费大量时间来设计某些东西,并且有一个规范可以为您提供每个API(应用程序编程接口),其输入是什么,其输出是什么,那么您几乎就会知道事情将如何进行,”避风港说。 “所以我实际上是在三周内输入了整个I / O系统的代码。这就是精心设计的。当我坐下来编写代码时,我已经非常了解它是如何工作的。”

该小组从1989年4月开始认真编写代码,每周工作六,七天,工作时间达到两位数。主要目标是:生产一种可在除Intel x86芯片以外的体系结构上运行的便携式操作系统,并利用新生的32位微处理器提供的增加的地址空间。 RISC体系结构在当时很流行,并且有望实现比x86更好的性能。 IBM和Microsoft曾经在OS / 2操作系统上进行合作,但这是一个16位操作系统,只能在Intel硬件上运行,并且不能移植。

NT操作系统的目标具有挑战性和雄心勃勃。团队必须做到:

在具有多个处理器的系统上运行(当时对于PC行业来说是唯一的),并且能够一次运行多个程序,这也是PC领域所独有的

最艰巨的挑战之一是测试系统。早期,团队决定没有足够的资源来编写全面的测试套件。相反,他们选择了动态应力系统,这给整个系统带来了沉重的负担。每天晚上,团队都要对数百台机器进行压力测试。第二天早上,团队将到达办公室,对故障进行分类,并在每天上午9点的错误检查会议中确定错误。

肖特说:“这是非常聪明的科学与蛮力的结合,并且不怕数量庞大。” “可能会有一千个失败。那我们该怎么办?好吧,我们从其中一个开始,进行了研究,然后……戴夫(Dave)不惧怕通通。”

起初,该团队打算将扩展的OS / 2 32位API定位为系统的主要“个性”,但后来在Windows 3.1如此受欢迎的情况下,他们将其更改为Windows 32(共售出1600万份,共6份)个月)。结果,团队不得不将Windows 16 API扩展到Windows 32 API,并重新设计整个图形子系统。当团队将其初始硬件目标从Intel i860 XR RISC处理器更改为MIPS R3000时,团队还必须点击硬件上的重置按钮。

另一个特别令人困扰的问题是让DOS和Windows 16应用程序在新的32位环境中运行。

“我们想从头开始编写一个现代操作系统,” Myhrvold说。 “我们还希望与以前的系统保持某种程度的向后兼容性,因此一切都很困难。但是,我们想出了多种方法来做到这一点,在我的小组中,在Dave中……有些时候,当您做一些全新的事情并且希望将整个过去扔掉时,总是很难实现向后兼容。但是对于客户而言,架起过去的桥梁确实很重要。弄清楚我们如何做到这一点,以使现有的Windows应用程序可以移到NT上并在NT上运行非常重要。”

Myhrvold回忆说,团队制定了处理DOS应用程序的策略,但是Windows应用程序提出了更大的挑战。 “但是我们做到了,”迈尔沃尔德说。 “如果没有这些,我认为微软将不会有太多的未来。”

“ Dave和团队所完成的工作几乎是不可能的设计挑战,” Bill& amp; Ed Melinda Gates计算机科学与技术系主任华盛顿大学工程系。

贝尔相信卡特勒是唯一有信心像他一样完成新台币的工程师。贝尔说:“几乎任何本来可以做新台币的人都会坚持要求该规范空白。” “戴夫赞赏传统和兼容性。世界变得更好了,因为戴夫·卡特勒(Dave Cutler)前往微软并为更大的市场建立了NT。

1988年,当该项目开始时,该团队由大约20名工程师组成。五年后,当第一版Windows NT发行时,该团队已经在对抗约束和权衡的同时扩大到约150名工程师。

肖特说:“人们为戴夫工作,是因为他们知道该项目将成功。” “戴夫很紧张。他有时可能很粗鲁,要求很高,但这实际上只是他的一小部分。他实际上非常善于激励人们。 。 。 。如果您是工程师,则希望从事您认为有用的项目。您想认为该项目将会成功,并且您的个人努力将会有所作为。当您为Dave工作时,您就处于这样的项目中。”

Myhrvold说,卡特勒的秘密秘诀之一就是他激发了周围的忠实团队。 “他是一个很有个性的人……您看过电影《无耻混蛋》吗?关于这位伟大的司令官,有一类忠实的家伙,有完整的第二次世界大战军事电影类型,昆汀·塔伦蒂诺(Quentin Tarantino)更新了它。当我看电影时,我说:‘嘿,这是戴夫(Dave)。”迈尔沃尔德笑着说。 “可能比将男人与布拉德·皮特(Brad Pitt)进行比较还要糟糕。”

卡特勒于1996年停止管理整个NT项目,但一直领导着内核开发,直到2006年。2005年3月,他与微软公司合作开发了AMD64架构,从而完成了微软的“最令人满意的工作”之一。 (对32位x86体系结构的64位扩展),并领导了最初两个x64 64位Windows系统(工作站和服务器)的交付工作。当时,有人质疑微软为什么要开发64位系统。如今,大多数计算机都是64位系统,甚至我们的手机也将很快具有64位操作系统。

2008年,卡特勒在白宫举行的颁奖典礼上被授予国家技术与创新国家奖章之一。为了支持卡特勒的提名,比尔·盖茨提供了证明任务艰辛的证据:

“……NT是独特的,因为它处于定义不明确的硬件的限制之内,同时为运行于1990年代初期松散定义的PC Windows操作系统上的众多传统应用程序提供了运行时环境。与其他系统不同,他构建了一个兼容的,但可扩展的系统,该系统承载了多个环境。 Dave是分层结构的首席设计师,该组织确保只需更改几个组件即可在不同的指令集体系结构或具有完全不同的硬件和输入/输出子系统的机器上运行。 1989年,NT最初被设计为与OS / 2和POSIX兼容。 Windows子系统的添加无需进行核心设计更改。 NT在从气泵到64-CPU 64位系统等一系列系统上运行,这些系统的内存超过TB,包括群集。随着2001年Windows XP的推出,它成为所有基于Microsoft PC的操作系统的基础。”

鲍尔默的观点更为简洁:“没有戴夫,今天就不会有微软。”

2006年,Amitabh Srivastava担任Microsoft Windows部门的公司副总裁,致力于重新定义组织的工程流程。 Ozzie最近被任命为公司的首席软件架构师,两个人在一个下午的傍晚在Microsoft校园的34号楼举行了第一次会议。

斯里瓦斯塔瓦(Srivastava)一直有一条规则:如果他在城里,他永远不会与家人在家里吃晚饭;或者,如果需要,他告诉家人他会迟到。那天晚上,Srivastava迷失了时间。他错过了晚餐,从没回过家说自己迟到了。一小时的会议从下午4点开始。一直到晚上8点

“在会议结束之前,我确信不会像以前那样交付软件。我个人的认识是,“我正在做错事情,” Srivastava回忆说。

当时,Srivastava的办公室在Cutler的办公室对面,而这两个人常常很早就到办公室。与Ozzie会面后不久,Srivastava回忆起告诉卡特勒,“我不知道需要做什么,但是我知道事情发生了巨大变化,我们必须重新考虑我们的做法。”

经过几周的讨论,Srivastava知道微软需要为云构建操作系统,因此他确定了他的第一个任务:Recruit Cutler。

“所以我去戴夫,他说‘我想退休了,’”斯里瓦斯塔瓦说。 “我说,‘戴夫,不完全是。这是不同的。这可能会改变世界。’”

卡特勒没有对Srivastava说“是”,但他也没有说“不”。 “我与戴夫(Dave)合作已经足够长的时间了,他知道当他不立即拒绝时,那是一个好兆头。”

斯里瓦斯塔瓦(Srivastava)为卡特勒(Cutler)制定了一项计划,他将访问Microsoft的每个运行云服务的团队,从MSN和Hotmail到Xbox Live和公司的云数据中心。 “这是不会参加会议的人。戴夫参加了每次会议。”

Cutler和Srivastava倾听了痛点,并采用了创可贴方法使团队保持其云服务正常运行,因此尽职调查过程花了几个月的时间。巡回演出后,卡特勒和斯里瓦斯塔瓦从未对他加入团队进行正式讨论。卡特勒瓦

......