专栏名称: 沉默王二
技术文通俗易懂,吹水文风趣幽默。学 Java,认准二哥的网站 javabetter.cn
目录
相关文章推荐
求是网  ·  健全科学完备、有效管用的制度体系 ·  昨天  
平安重庆  ·  重庆市公安局“辅警之星”事迹展播(一) ·  2 天前  
平安重庆  ·  重庆市公安局“辅警之星”事迹展播(一) ·  2 天前  
51好读  ›  专栏  ›  沉默王二

写出 Windows 操作系统的程序员,70 多岁,还去微软办公室敲代码

沉默王二  · 公众号  ·  · 2024-10-18 14:04

主要观点总结

文章介绍了微软前超级程序员Dave Cutler(中文名为大卫·卡特勒)的职业生涯和对微软的贡献。卡特勒是Windows NT操作系统内核的缔造者,他对Windows系统的发展和微软的转型起到了关键作用。文章还强调了卡特勒的工作理念和对程序员的建议。

关键观点总结

关键观点1: 卡特勒在微软的地位和贡献

卡特勒是微软超级程序员,Windows NT操作系统内核的缔造者,被认为是微软发展的关键人物。

关键观点2: 卡特勒的职业生涯

卡特勒在微软之前的其他项目和经历,包括VMS操作系统的编写以及加入微软后的贡献。

关键观点3: 卡特勒的工作理念和对程序员的建议

卡特勒强调实际行动的重要性,提倡亲力亲为的工作态度;他认为成功来自于做失败者不愿意做的事;他还强调了代码提交前的检查的重要性。

关键观点4: 卡特勒的个人经历对其工作的影响

卡特勒的个人经历,包括早期作为足球运动员的伤病以及进入编程领域的转变,这些经历对他的工作态度和风格产生了深远影响。


正文

大家好,我是二哥呀。

微软前 CEO 鲍尔默曾说过一句言简意赅的话:“ 没有 Dave,就没有今天的微软 ”。

可见 Dave 在微软的分量。Dave 的全名叫 Dave Cutler,微软的超级程序员,Windows NT 操作系统内核的缔造者,中文译名为大卫·卡特勒。

截图来自微软官网

可能有些小伙伴对 Windows NT 比较陌生,我这里简单解释下,像 Windows 2000、Windows XP、Windows 7、Windows 10 等等,都是披了一层华丽外衣的 Windows NT。

截图来自 fandom

按照卡特勒的意思就是,现如今的 Windows 操作系统版本,不管界面怎么变,内核代码都可以追溯到 1993 年的 Windows NT 分支。

可能有些小伙伴会好奇 NT 是什么意思?

比尔盖茨的解释是,NT 就是 new technology,代表微软在技术上的重大革新。这一点我到是不否认的,因为以前的 Windows 都是基于 DOS(Disk Operating System,磁盘操作系统)的。

截图来自维基百科

Windows NT 于 1993 年 7 月推出,比原定的 deadline 1991 年 3 月 30 日足足晚了 2 年多时间。

看来即便是真正的神级程序员,在预估周期的时候也会过于乐观,因此我们普通程序员在估算工时的时候最起码要留一倍的缓冲期(🤣)。

项目之所以延期,是因为卡特勒要解决的难题非常多,包括:

①、日志文件系统 NTFS,具备抗崩溃能力,相信很多格式化硬盘过的小伙伴都了解这个文件格式。

②、采用用户模式和内核模式的分层设计,并且是可抢占式和可重入式的,互联网大厂面试中常问的题目。

截图来自维基百科:WindowsNT 的体系结构

③、服务的概念,允许用户集中式管理服务进程,Windows 用户可以通过 ctrl+alt+delete 调期

④、引入硬件抽象层,使得 Windows 操作系统可以运行在不同的硬件平台上(如 x86、MIPS、Alpha、PowerPC 等)

⑤、在多个处理器上运行(支持多核 CPU),且能够同时运行多个程序(多进程)

⑥、还要向后兼容,不能把微软之前的老用户弃之不管,写过向后兼容的小伙伴都知道,这非常的难。

Windows NT 项目是在 1988 年启动的,卡特勒和他的团队耗时 5 年才推出了第一个版本,他们几乎完成了一项不可能的挑战。

卡特勒在 Windows NT 发布时俯身签字

在之后的岁月里,卡特勒并没有躺在功劳簿上。

2005 年,他协助 AMD 公司开发了 64 位架构(32 位 x86 架构的扩展),并且领导团队推出了可以在 64 位架构上运行的 Windows 操作系统。

2006 年,当微软开始向云端进军的时候,亟需构建一个基于云端的操作系统,于是又招募了即将退休的卡特勒,部门负责人 Amitabh Srivastava 用一句“ 这可能会改变世界 ”成功激起了卡特勒的兴致,于是卡特勒就开发了一款云操作系统的虚拟机管理程序(Hypervisor)。

看来画饼对大佬们一直都有效啊😄。如今,微软的 Azure 云平台已经成为微软所有开发和产品的战略重心,微软也从一家软件公司顺利转型为了云计算公司。

正在开发Windows Azure的卡特勒(2008年)

2012 年,卡特勒还参与开发了 Xbox 主机的操作系统。

这还不算完,2016 年,74 岁的卡特勒每天仍然会去位于华盛顿州雷德蒙德微软园区的办公室敲代码,是不是非常不可思议?

这样神级的程序员,大家能猜到他年轻时的梦想是什么吗?

没错,一名足球运动员。

可惜后来的伤病摧毁了他的职业生涯,于是卡特勒就开始琢磨着以后该怎么办?

机缘巧合,他进入一家杜邦公司从事材料测试,但这份工作需要编程来建模,于是卡特勒只好去 IBM 开办的学校去学习编程。

结果,他竟然发现自己是如此的热爱编程。

于是 1971 年,他进入 DEC(1998年被康柏以 96 亿美元的价格收购)编写软件,他利用汇编语言在非常有限的内存空间内实现了多项系统功能,比如树型文件系统、交换应用程序、实时调度和一整套开发工具等。

“是金子到哪都会发光”。

卡特勒过硬的技术功底得到了 DEC 首席工程主管贝尔的赏识,就被安排负责编写 VMS 操作系统,可运行在一种新的 32 位超级小型计算机(VAX)上。

因贝尔定律而闻名

两年后,一经推出的 VAX 迅速占领了市场,卡特勒也因此一战成名,贝尔称其为“世界上最好的操作系统编写者”。

1983 年,贝尔首次将卡特勒介绍给比尔·盖茨。五年后,卡特勒加入微软,并开发出了 Windows NT 操作系统内核,让微软彻底起飞,从此一发不可收拾。

我们普通人能从卡特勒这样的大神身上学到些什么呢?

我从卡特勒过往的采访中 get 到了三句话,我觉得非常值得分享给大家。

①、When all is said and done, much more is said than done.

也就是我们常说的“思想上的巨人,行动上的矮子”,很多人说起来总是头头是道,但做起来却是束手无策。

就像很多技术大牛一旦做了管理岗,就不再重视代码能力,开始变得说得多做的少,出了事就让下属背锅。

卡特勒一向是亲力亲为,冲在第一线。

网上有个论调说:技术不重要,哪怕技术做得再好,也不如会拍领导的马屁。我觉得这个论调就很可怕,它背离了技术人的初衷,让很多原本热爱技术的人,逐渐走向了 KPI 的不归路。

这可能也是为什么我们做不出来 Windows NT 这种操作系统内核的本质原因, 公司不愿意给时间,技术人不愿意沉下心去打磨

②、Successful people do what unsuccessful people won’t.

我的理解就是,成功的人愿意去干那些失败者不愿意干的事。

就比如说,很多人都不喜欢去学习操作系统,包括我自己在内。因为感觉很枯燥,学了又感觉用不到,日常工作和学习中几乎都是偏应用类的编码。

所以在职业生涯的很长一段时间里,我都没有关注过操作系统方面的知识,就导致底层知识是欠缺的。接触的读者多了,他们的诉求就多了,于是我就也开始强迫自己去看操作系统方面的知识。

没想到,打开了另外一扇世界,编程功底得到了很大的提升。

③、If you don’t put them [bugs] in, you don’t have to take them out.

我理解的意思就是,敲代码之前要先想清楚,比如说脑海中有一副蓝图,或者敲完代码自己要先做一次 review,现在有了 AI 的帮助,那最好让 AI 再检测一遍,这样就不会引入 bug,也就不用解决 bug。







请到「今天看啥」查看全文