自2019年5月16日起,美国断供华为芯片、操作系统的事件甚嚣尘上。华为接连亮剑芯片和操作系统的“备胎计划”,着实让国人燃了一把。客观地说,特朗普政府不光为华为做了一个全球性的广告,而且为中国广大民众进行了IT和通信产业的科普。
这不仅为之前“娱乐至死”的媒体环境注入了一股清流,而且也唤起了国家和民众重视“教育为本、科技兴邦”的意识——过去大家都关心娱乐明星的八卦新闻,现在长期霸占热搜头条的是5G、芯片和操作系统。
如果用人的身体进行类比的话,那么:
5G就相当于神经网络,芯片就相当于心脏,而操作系统就相当于大脑。
什么是操作系统?把计算机硬件想象成大房子,房子里应有尽有——管道、照明、砖、窗户、门等;软件就相当于住在房子里的人。
家政人员住楼下,提供全套及时的家政服务:司机在洗车、保姆在熨衣服、厨师在烤面包、园艺师在除草……
主人及妻儿住楼上,享受楼下人的服务:主人需要司机,不仅是为了省下时间,更是为了外出旅行;妻子需要厨师,是为了家人能吃得更好;孩子们需要园艺师,是为了能清除院子里的杂碎石,能安全地玩耍……
这所有的一切都需要一个大管家来协调。
楼下的家政人员就是操作系统的具体功能,楼上的主人家庭就是应用程序。
两者之间的交互就是通过大管家来协调的。这个大管家就是操作系统。
操作系统是所有软件的数字基座,谁拥有了一流的操作系统,谁就能在软件领域叱咤风云:
无论是现在炙手可热的云计算还是次时代游戏机,都离不开操作系统的神力加持。
拥有一流的操作系统难,拥有完全自主研发的一流商用操作系统更难!
近40年的历史长河里,完成这一壮举的商用公司只有微软一家:
那么,微软是如何缔造这个IT奇迹的呢?
秘密武器就是这位现年78岁、上世纪70年代便被誉为“硅谷第一程序员”、至今仍然奋战在微软第一线的大神——戴夫·卡特勒(David Cutler):
正是他,实现了从DOS时代到Windows时代的辉煌蜕变,缔造了微软40年的操作系统商业帝国;
正是他,缔造Azure云计算平台,实现微软在云时代的华丽转身;
正是他,让微软的XBOX游戏机起死回生,与索尼、任天堂在次时代游戏机市场三分天下……
体育新星却因伤IT原力觉醒戴夫·卡特勒1942年生于美国密歇根州首府——兰辛,家境贫寒的他从小就锻炼出逆境中成长的坚强意志。从10岁开始,卡特勒就开始寻找机会挣钱:放暑假的时候,他就为农民修牲口棚、打零工、拣报纸……
在10几岁的时候,卡特勒的运动天赋被发掘:在篮球队中,他是副队长;在橄榄球队中,他是四分卫。当地的报纸把他塑造成了一个未来的体育明星,以至于在他高中毕业的时候,密歇根的一家小学院Olivert想以体育特长生和奖学金招卡特勒入校,卡特勒没有太多犹豫就接受了。
大一的时候,卡特勒已经长得十分高大强壮:5尺9寸高、175磅重,两条腿又粗又壮。他的传球技术和奔跑速度都相当出色,担任四分卫的时候,他的教练称其“万里挑一”。卡特勒的运动天赋在大二的时候到达了巅峰,他带领球队连赢8场,彻底洗刷了Olivert过去几年连败21场的耻辱记录,在最后一场比赛中,卡特勒中场抢断,滚到右边之后开始他最擅长的四分卫冲刺。但是很不幸地,对方一个后卫猛冲过来,挡住了他的去路;卡特勒想从对方身上跳过去,但是却重重地撞在一起,将腿摔断了。
在医生的劝告下,卡特勒再也没有重返赛场,运动生涯从此落幕。从此,他将精力全部放在了学业上,他对数学和物理特别感兴趣,而且有极强的动手能力,使他很想在毕业之后找一份工程师的工作。
1965年他加入杜邦公司,负责材料测试建模工作。该项工作使用了IBM 7044晶体管计算机。
于是卡特勒去参加IBM的培训,学习了事件驱动、面向模块的通用模拟编程语言GPSS-3,用于在IBM 7044上建模。在学习、工作期间,卡特勒逐渐意识到:他对计算的兴趣远超对材料模型的兴趣,特别是操作系统。于是,他决心找一份与操作系统开发相关的工作。
很快,他就跳槽去了DEC(数字设备公司)。
钢丝绳上让大象跳舞1971年,在DEC履职的卡特勒,受命领导开发用于16位PDP-11微型计算机上的RSX-11M实时多用户操作系统。
PDP-11/40配备了两台磁带机
PDP-11的物理资源非常有限,这意味着需要程序员使用大量的编程技巧,才能编写出强大的操作系统。卡特勒的整体团队其实只有8个人,为了给团队成员强化资源意识,卡特勒特意在橡皮擦上刻上“代码尺寸就是目标(Size is the goal)”。每当程序员提交的功能会大大增加内存的需求时,卡特勒就会用这个橡皮擦把戳盖在备忘录上驳回。
这个戳让程序员更加谨慎,同时也增加了笑料——很多男同事的房间里都出现了辣眼睛的短语:“Thighs is the goal(大腿是目标)”。
在卡特勒的带领下,项目大获成功。简直可以用“钢丝绳上让大象跳舞”来形容!
“向后兼容” 零缺陷 = IT神迹那个年代,每一款计算机问世,都得重新为其开发操作系统,因为硬件体系结构等都大相径庭。
于是,开发可移植、跨平台的操作系统,就变成了一个极具市场吸引力的目标。
为了让DEC保持市场上的领先地位,DEC的首席工程总监贝尔·戈登提出了一个大胆的想法:开发一个新的计算机产品线VAX,在上面运行新的操作系统VMS,VMS既要能运行VAX上的新开发的程序,也要能运行老的PDP-11上的程序。此外,VAX还被要求设计成可扩展的,用户可以保持软件不变的情况下,无缝切换到更高配置的VAX上。
这就是后世津津乐道的“向后兼容”的设计思想。贝尔·戈登可谓“向后兼容”的祖师爷。
目标是星辰大海,但是没有洪荒之力的大神,那也只是空想,于是——1975年4月1日,这个项目正式启动,卡特勒再次挂帅出征。
1977年10月,第一台VAX计算机问世,它的巨大成功将卡特勒推到了世界顶尖软件设计师的地位,“硅谷第一程序员”的美誉也由此而来。
更让人叹为观止的是:VMS发布的时候,居然没有任何已知Bug,创造了软件开发史上“零缺陷(0 Bug)”的奇迹!
世人都误解了鲍尔默作为微软的前CEO,鲍尔默是一个饱受争议的人物。但是不为人知的是:鲍尔默最大的功劳并不是市场和销售,而是对超级人才的招聘功力上。
1988年,由于DEC内部管理的混乱以及重大战略决策上的失误,让满怀抱负的卡特勒心灰意冷,他带着手上的100万美元准备成立自己的初创公司,来开发面向未来的现代操作系统。
与此同时,微软的DOS操作系统在市场上横扫千军,但是对行业趋势嗅觉极强的比尔盖茨,已经敏锐地察觉到三个巨大的潜在威胁:
于是,比尔盖茨委托鲍尔默去请操作系统之神卡特勒出山,帮助微软力挽狂澜。
鲍尔默果然靠着三寸不烂之舌,仅仅一个周末的工夫就说服卡特勒加盟微软了。
微软帝国的龙柱:Windows NT1988年3月31日,卡特勒正式开启他在微软的职业生涯,此时他已经46岁。随后,他在DEC的11位并肩作战的团队成员也加入微软(5名软件工程师、6名硬件工程师)。
这里还有一个小插曲:一开始比尔盖茨不愿意接收硬件工程师,然而卡特勒的态度很坚决:要么全部接收,要么连我都不会留!为了得到操作系统之神,比尔盖茨一咬牙,全部收至麾下。
卡特勒的梦想就是开发一个划时代的操作系统,他把这个操作系统命名为NT。
NT的全称是New Technology(新技术),从这个名称也可以看出卡特勒的野心和自负,核心目标有三:
(1)可移植性:
延续VMS的成功经验,创造出可以适用每一种硬件系统的操作系统。那个年代,程序员大量使用汇编语言编写特定硬件体系上的软件,这使得硬件与软件紧密联系在一起。当消费者意识到软件上的投资大于购买硬件时,他们往往会选择继续使用过时的软件。NT的可移植性,使得在新硬件体系上开发软件的代价大大下降,这样的结果就是:消费者总能买得起新的软件,体验新软件带来的新特性,软件行业得以蓬勃发展。
这是不是有点金庸武侠中“乾坤大挪移”的意味?
(2)可靠性:
同时期流行的OS/2和DOS操作系统上,一个应用程序的崩溃往往导致整个系统宕机。可靠性就是要解决隔离的问题。
这是不是有点少林七十二绝技中“金刚不坏之身”的意味?
(3)个性化:萝卜白菜,各有所爱。NT要支持不止一种用户界面风格。同时期的操作系统:为DOS编写的应用程序就只能在DOS上运行,为OS/2编写的应用程序就只能在OS/2上运行。NT的目标就是创造出一种机制,能让各种风格的应用程序都能在其上运行。
这是不是有点金庸武侠中“北冥神功”的意味?
不难看出,卡特勒的上述“三大理想”正好可以完美解决比尔盖茨所顾虑的“三大威胁”。
那么,如何实现NT的宏图大志呢?
卡特勒启用了“三大法器”:C语言、微内核、虚拟化。
为了保持可移植性,卡特勒要求团队尽可能采用C语言进行编码,以达到源代码与特定硬件体系分离的目标。
此外,卡特勒仅用3周的时间,带领团队设计并实现了I/O子系统的原型(IRP),并引入硬件抽象层(HAL),统一了外外部硬件设备与内核的交互机制。
最终的效果,从NT时代开始,微软的操作系统就陆续支持过以下不同的硬件体系:x86,MIPS R3000/R4000,DEC Alpha,PowerPC,Itanium,x64,ARM。
为了让各个模块不相互影响,卡特勒引入微内核的设计思想,他将内核设计得足够精巧,让各个模块通过消息来与内核交互,内核充当信使和服务提供者的角色。这样做,可以极大隔离单个模块或者应用崩溃导致全局宕机的概率。
是的,你没有看错,2019年华为鸿蒙操作系统主打的特色之一——微内核,早在30多年前,就已经由卡特勒从学术界直接引入工程界,并实现了大规模商用,由此可见卡特勒的功力。
要知道在那个年代,内存等各项硬件资源,比现在都要苛刻得多。要兼顾性能,难度超过现在N多倍。比尔盖茨当年也反对这个超前设计,担心拖慢系统速度,影响用户体验,但是卡特勒用实力实现了原型,让反对者都闭了嘴。
为了进一步提升性能,卡特勒还带领团队,超越同时代的其他知名操作系统,做了如下创新:
像Linux,直到差不多10年后的2.6版本才实现了抢占式内核。
为了实现个性化,卡特勒引入基于环境子系统的虚拟化技术,将不同用户界面的系统调用转换成NT的原生服务,从而模拟出不同的风格。
也正是这样兼容并蓄的基因,使得Windows 10可以通过Windows Subsystem for Linux 原生运行Liunx应用程序,甚至在Windows 7之前还推出过Windows Services for UNIX,可以运行Unix应用程序。
卡特勒最让人叹服的就是其架构能力:
从NT时代直到现在最新的Windows 10,历经30年,内核代码基本没有大的改动。
Windows NT 1.0发布
本要退休的老人家扛起了云计算的大旗2006年,Ray Ozzie被任命为微软首席软件架构师,开始启动云计算战略。
操盘手是时任微软Windows副总裁的Amitabh Srivastava。
接到任务的Amitabh Srivastava其实一脸懵逼,只有一个想法:找卡特勒去。
卡特勒此时已经64岁高龄了,准备退休了,但还是经不住Amitabh Srivastava的死缠烂打,最终同意再帮微软搞一票。
于是,卡特勒又用两年时间打造了微软云操作系统的内核Hypervisor。2008年10月,Ray Ozzie正式向公众发布Windows Azure云计算平台。
XBOX起死回生2005年微软推出XBOX 360游戏机,众多玩家投诉过热、划碟等质量问题,返修比高达68%,史称“三红事件”。
该事件让微软亏损30亿美元,一度处于被赶出游戏机市场的边缘。
为了力挽狂澜,微软启动了XBOX One的研发,但是研发总监Boyd Multerer在2011年遇到了一个棘手的问题:无法实现游戏与应用之间的无缝切换,这需要一个虚拟机。
在卡特勒的帮助下,2013年11月22日,XBOX One正式发布。它通过Hypervisor同时运行2个操作系统:第一个操作系统基于NT,用于运行Netflix,Skype,Youtube,Twitter等应用程序;第二个操作系统用于运行游戏。Hypervisor实现了在游戏模式和应用模式之间的无缝切换。
XBOX One的大获成功,使得微软重回次时代游戏主机的主战场。
“没有卡特勒,就没有今天的微软”由于卡特勒几十年在计算机领域的杰出贡献,2008年他在白宫被时任美国总统小布什授予美国国家技术与创新奖章。
在提名卡特勒时,比尔·盖茨讲道:
“……NT是独特的,1990年代硬件鱼龙混杂、设计参差不齐,应用程序繁多,NT为它们提供了运行时环境。与其他系统不同,它构建了一个兼容的,但可扩展的系统,该系统承载了多个环境。 戴夫是分层结构的首席设计师,该结构确保只需要更改几个组件即可在不同的指令集体系结构或具有完全不同的硬件和输入/输出子系统的机器上运行。 1989年,NT最初被设计为与OS/2和POSIX兼容。 但当Windows子系统加入时,内核无任何改动。 NT在从气泵到 64位系统等一系列系统上运行,这些系统的内存超过TB,包括群集。随着2001年Windows XP的推出,它成为所有微软操作系统的基础。”
鲍尔默的观点更为简洁:“没有卡特勒,就不会有今天的微软。”
“我是带头大哥,不是领导”作为微软的老兵,卡特勒这样总结自己:“我是带头大哥,不是领导。”
即便现在已经78岁高龄,他仍然会身体力行地去写程序、调试程序、修复其他人的bug,培养新一代程序员。
他的座右铭是:“成功的人之所以成功,就是他们做了普通人没有做甚至是不愿意做的事。”
写在最后的话微软研发Windows NT操作系统,前后历时5年、耗资15亿美元,相当于同时代1988年汉城奥运会总开支的50%。由此可见,玩操作系统,没有丰厚的家底和All in的魄力,是无法成功的。
光有钱也没用,还得有人。40年过去,也就出了卡特勒这样一位大神。卡特勒一人就编写了177个Windows内核源代码文件。以Windows 10源代码上亿行来估算,无论是数量还是质量,都无人能出其右。
卡特勒用他的传奇一生,告诉我们:
Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved