`
sabolasi
  • 浏览: 903750 次
文章分类
社区版块
存档分类
最新评论

《观止》阅读录

 
阅读更多

观止这本书讲的是微软在1989年-1993年这5年开发WINDOWS NT的故事.

观止,是叹为观止的意思.意思是好到了极点.但事实上WINDOWS NT的产生九曲九弯、筋疲力尽、歇斯底里、极度焦虑、几乎失控,但最终还是完成。

卡特勒是NT的开发主管,是这个开发团队的领袖,是主宰一切的头。他一直是争强好胜、斗勇好狠的角。每件事都要按照自己的想法来,都要所有的人都必须听他的而不能有其他意见,而且他做每件事都要做到极致。这个性格颇有点像乔布斯。看来反复验证只有偏执狂才能生存。

这样的人怎么会有团队呢?NO,卡特勒有一帮死随从。他们膜拜卡特勒。卡特勒一直处于这样的中心位置,即使在大学,卡特勒也是全校最好的橄榄球运动员,他是队长,他指挥下面的所有队员必须这样这样,而且屡次证明他都是对的。就连教练都惜才万分。可能只有强悍的领导才能一次次的横扫障碍。可惜一次比赛时他被折断了腿。

后来他疯狂的爱上了计算机。即使因为疯狂的在计算机前编程惹得离婚也在所不惜。虽然他又再婚,但同样的原因仍然让他的第二任爱人无法忍受他的疯狂最后仍然导致离婚。但是卡特勒一点都不惋惜。比起计算机,其他都不重要。这样来看,卡特勒确实是疯狂的可怕。因而,他很快就成为DEC公司最顶尖的编程高手。DEC的创始人十分看好卡特勒,只要卡特勒有什么需要,统统答应。

因为世界上没有几个人可以规划、领衔一代操作系统的研发,甚至连机会都没有。而在大型机横行一台大型机几百万美元的时候,卡特勒在DEC一鸣惊人,制造出了小型机,性能和当时的大型机媲美,但价格却只是十分之一。而且当时的大型计算机都是不可移植的,但卡特勒编写的VMS操作系统却可以在DEC的各种型号的机器上都能运行的。这也就决定了给某个型号计算机编写的应用软件可以毫不费力的运行在其他的硬件平台上。卡特勒编写的VMS操作系统和VAX小型机让DEC日进斗金。

但是卡特勒讨厌DEC的官僚作风,希望能彻底远离这个朝九晚五的商业写字楼,他希望自己选一块地,最好连电话都没有,全部封闭起来,就睡在里面,吃的都叫外卖,然后大家干他个昏天黑地。居然,DEC的创始人答应了他的这个不羁的需求。于是卡特勒自己开着游艇四处航行,也到处滑雪游玩,希望找到令自己心旷神怡的地方。最后他真的找到了。于是建立了一个实验室。最多人数达200人。卡特勒四处猎找高手,不惜到欧洲去找人才。卡特勒帐下立时汇集了大批可通天地日月的豪杰。卡特勒希望在这里做自己梦想的操作系统和计算机。卡特勒就是这个实验室的神,他掌控着一切,但他也带着团队疯狂的滑雪、赛车,他们就像十字军骑士所向披靡。

但意外发生了,DEC的创始人离开了公司,卡特勒失去了保护伞。DEC的那些官僚早已憎恨卡特勒,于是把卡特勒的项目取消了。卡特勒回到实验室,大家都知道了消息,有人哭了,卡特勒没有说什么,只是给所有人放了一个月假,是带薪的。

卡特勒想要离开DEC的事情早就被微软盯上了。微软在操作系统方面一直缺乏这样的大神。微软当时正在和IBM合作开发OS/2,但是举步维艰。因为微软的DOS操作系统都是盖茨花了5万美金买来的,但盖茨没有把这个消息告诉过IBM。

微软立刻向卡特勒示好。要人给人,要钱给钱,什么也不干预,卡特勒想怎么干就怎么干。

卡特勒来到了微软,也带来了DEC的原班人马,他们如死士一般追随着卡特勒。

但卡特勒的目的是研发他心中最完美的操作系统和计算机。而微软只是想做一个商品。卡特勒心中规划的是大型操作系统,而微软要的是PC级的操作系统。卡特勒认为系统管理员使用命令行很酷,而微软认为应该加个WINDOWS。卡特勒认为最完美的操作系统和计算机不应该拘泥于现在的硬件,即使没有这样的硬件,自己造也无妨。但微软只做软件。卡特勒希望支持各种硬件,而微软目前只想着先支持intel的i860。另外,微软的OS/2正陷入泥潭,所以希望卡特勒做的操作系统能够支持OS/2。

更惨的是,卡特勒觉得微软干活方式很小儿科,做出来的东西是垃圾,根本不能用。但是,微软强烈要求他和微软的其他部门合作,如图形部门、网络部门。

幸亏当然微软只有BASIC语言,但已经在研发微软的C语言,不过还不成熟。否则卡特勒还得使用微软的C语言进行编程。那就糟糕了。因为卡特勒觉得现在的开发语言都限制他的设想,他想重新发明一门开发语言。就类似UNIX的创造者,他就认为没有什么语言好用,于是为了编写UNIX顺便也创造了C语言。这些大神们就是这样,不会迁就,如果发现不爽宁可自己再创造一个。

卡特勒还真这么干了,卡特勒找不到他想要的操作系统所支持的硬件,于是自己设计了一台计算机。最早的NT操作系统都是在这台计算机上调试的。

诸多的冲突都有,但卡特勒并不考虑这些。卡特勒只想做自己想要的操作系统,只不过微软只是个给提供资源的金主。如果微软不让他干,他也要找下一个金主继续干。

卡特勒对于未来操作系统有很多新的思考,是前人从来没有过的。他把自己封闭起来,只带一个得力助手,开着一只船在大海上航行。卡特勒认为只有远离所有熟悉的东西才能清空头脑重新思考一切。经过半年的封闭,NT的规划终于出来了。但经过讨价还价,微软还是加入了不少料,让卡特勒觉得郁闷。

卡特勒自己设计并制造了NT运行的硬件,这让微软很是头疼,但微软现在还不想开除这个混蛋,怎么着也得等这只母鸡下完蛋再踢,否则现在踢就不划算了。微软终究是一个商人。就连一向讥讽人的盖茨对一切可以生死大权的盖茨这时也闭上了嘴。

但是卡特勒自己制造的硬件工作的不太好,莫名其妙的出错。卡特勒为此整整花了2周的时间来调试。卡特勒怀疑是硬件CPU的问题。但intel的芯片设计人员几次检查都说CPU没有问题。但最终的结果是卡特勒还是肯定是CPU问题,并且能指出是哪里的问题,应该如何解决。INTEL设计人员一调试,果然。这让卡特勒大为恼火,恨不得自己造CPU。

卡特勒正折腾OS/2和NT的兼容,卡特勒恨不得把OS/2掐死,但这是微软的主意。但是,OS/2的失败越来越明显了,盖茨最后决定停止OS/2的兼容,全力支持卡特勒开发纯种的操作系统。

卡特勒的微内核NT终于出来了,但是微软要求把WINDOWS UI加上。但负责图形部分的微软图形部门和卡特勒格格不入,是微软老臣保罗马里茨在其中充当和事佬,最终说话卡特勒全权管理所有有关NT的东西。卡特勒最初并不同意,他只想好好做好核心即可。但微软要的是完整商品,而不是一个内核。但最终卡特勒同意了,因为卡特勒不想这次把NT死在实验室里。

但后来的麻烦更是超出卡特勒的所想。微软要求卡特勒设计操作系统的API层,而且这个API层还得和微软已经推出的WINDOWS3.0要保持兼容。卡特勒想自己设计NT的网络服务,但他没有人手,他能寻找的人手就是微软的网络开发部门。但这个部门不想重新发明,他们想让卡特勒使用他们开发的网络服务。这些事情折腾的卡特勒脾气暴躁,甚至捶桌子扔椅子,和别人怒目圆睁甚至鼻子碰鼻子。所有人给卡特勒报告的时候都得看他的情绪,大事不好就趁早开溜。不少人都已经两天两夜没有睡觉。里程碑压的大家都不敢重负。长达两年的加班,每天10小时以上的工作量,甚至有人开始出现屏幕幻觉。有的人宁可不要微软的期权股票也愿开一个洗衣店安度一生。

更有些更大的麻烦事,NT的文件格式是采用老式的设计,无法满足大量文件,也无法满足安全恢复。这是卡特勒一直没有想好的地方。在NT的不断现形过程中卡特勒越来越觉得这是个碍眼。卡特勒希望设计一种新的文件系统,但到底是什么样,他也不知道。但他已经下定决心,要做一个新的文件系统。这个决定吓坏了微软的管理者,因为NT已经到了这个地步了,您老人家想把支柱推倒重来?但卡特勒显然已经不再回头,一点商量余地都没有,就要重做。卡特勒派了自己的两个得力干将专门攻克这个文件系统。这就是后来的NTFS。

后面还发生了非常多的大事,如NT的安全体系设计、NT的外设驱动程序层设计。这些都是及其复杂的体系,是我们常人无法驾驭。或许,没有卡特勒的铁腕领导、卡特勒对梦想的追求、卡特勒对这些所有架构的深远架构,NT早就散架了。

有一个亮点是,就是在NT的开发过程中,NT的测试团队发明了每日构建。一开始是手工构建,然后是测试团队自己开发了自动化构建和自动化测试工具。

经过5年的开发,NT终于进厂压盘了。当NT开发团队的家属接到NT发布的电话,他们都不敢相信,因为快要发布了快要发布了他们已经听了无数回,甚至他们以为NT永远发布不了了。因为不少家属好几个月看不见他们的丈夫。而他们的丈夫当听到NT发布的消息,也并没有欢呼更没有啤酒庆祝,因为他们累的连走出办公室的力气都没有,直接跌倒在了地上睡着了。甚至不少人在NT发布3个月后仍然在接受心理治疗,因为压力想让他们开枪扫射。

软件让人疯狂。

西雅图夜未眠。

<观止>是我阅读过的IT研发文化很好的书。它真实的反映了软件研发的复杂、焦虑、压力、创造。另外,还有两本书也很好,值得推荐,它们是:《追随智慧》,讲的是微软亚洲研究院成立的故事。《borland传奇》,讲的是borland公司在IT业界几经变化、商业战争、技术变革的沉浮录。

他们激励着一代又一代的青年才俊义无反顾的投身进软件开发行当。他们是这个世界最奇怪的一群人,他们在机器的世界得心应手。只有他们自己才能理解这其中的乐趣与掌控。

It's My Baby!

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics