OS演义(六)
什么是Windows
操作系统经过了长时间的发展,终于走到了Windows的时代,现在恐怕每个人的口头常用词中都少不了Windows。无论我们叫它“视窗”或“窗口”,总觉得没有Windows来得自然——注意,它用复数形式,这一点汉语不太好表达,但Windows究竟是什么呢?
严格来讲,Windows只能算是半个操作系统。 半个?Why?因为从技术上来看,Windows对于硬件的操作并不完全是自己完成的,还有相当一部分功能是要依赖于DOS的,比如Windows并不能直接引导硬盘(有哪个操作系统没有引导功能呢?),就是说,如果你想要使用Windows,必须先安装一套DOS,启动时先由DOS接管硬件,然后Windows才能登场献艺;可是从用户的角度和Windows与其它应用软件的关系来看,Windows又可以算是一个操作系统,因为它给用户提供了操作系统所能提供的完善功能,并且自身是承载其它应用软件的“平台”(这是操作系统的职责),所以习惯上还是认为Windows是操作系统——岂只是,差不多是最好的。
在DOS时代,每一个应用软件都有自己的界面、自己的键盘命令,可能在一个软件中用ESC退出,而在另一个中要用ALT+X。这使得用户每使用一套新软件都不得不从头学起,显然这给用户找了不小的麻烦,但同时也为软件厂商提供了一个机会——谁能把用户从这麻烦中解脱出来,谁就能得到大量的用户的支持。从今天看来,显然是微软抓住了这次机会,而它的Windows也正是解脱,同时也是笼络用户的法宝——Windows为用户提供了一套统一的、图形化的用户界面:通过使用相同的GUI(如果你不喜欢读缩写,也可以把它读成“gooey”),使得菜单的风格与布局、屏幕窗口的操作、鼠标的使用以及其它与应用软件的外表和使用有关的因素都“天下大同”了。这样一来,当用户学会了一套应用软件软件的使用,实际上他也已经学会了其它软件的一部分了,并且GUI技术所提供的划时代的WYSIWYG(What You See Is What You Get,即“所见即所得”)性能,也免去了用户记忆无数命令的苦恼,总之一句话——解放用户。
DOS是一个典型的单任务操作系统,在同一时间内,只允许有一个软件在内存里运行,在你进入第二个软件之前,必须从第一个软件里退出来。乍看起来,这好象没什么不合理的地方,一心不可二用嘛。但有时却是非常另人恼火的:比如你在写一篇论文时,要引用一个数值,可它存放在你的另一个数据库文件里面,这样你就不得不先退出眼前的文字处理软件,回到DOS提示符,再进入你的数据库软件, 查找到那个数据,再退出,再进入文字处理软件,把它插入到它该在的地方。你还得有个好记性,免得数据太复杂时,进进出出的工夫就给忘了。天哪,相信你也经历过这番头疼!为了弥补DOS的不足,Windows从最初的阶段就被设计成为一个多任务系统,这样用户就可以不再享受上面提到的那种头疼了。并且,多任务还能充分发挥计算机的性能——如果只是单一任务,计算机等待用户的时间实际上是资源的浪费,而现在可以把这些资源分给同时运行的程序。随着多任务而来的是任务间的数据传输功能:还是刚才的那个例子,既然你的文字处理软件和数据库软件可以同时运行,就没有必要再让你脑记手抄数据了,为此Windows 提供了三种任务间的数据传输方式——使用剪贴板(ClipBoard)、动态数据交换(DDE)和对象连接与嵌入(OLE)。
在Windows的设计过程中,采用了很多先进的技术,实现了很多很好的性能,比如设备独立性和高效的内存管理。在每一套基于DOS的软件中,都带有一套相关的设备驱动程序——《三国志IV》有自己的声卡驱动程序,DOOM也有。这给用户和开发人员都带来了麻烦——用户每安装一套软件都要调配一次驱动程序,而且由于驱动程序的不同而埋下了冲突的祸根。对于开发人员来说,简直是一场灾难——市场上有多少个牌子的打印机,就得编写多少份不同的打印驱动程序!在Windows中,所有的设备交给Windows统一管理,使得用户和开发人员可以不再为设备的驱动问题头疼了(设备无关性)。在内存管理方面,Windows使用了内存交换的方式,将内存中暂时不用的数据,往往是后台任务的数据,存放到硬盘上的交换文件中,到用时再提回来,这样这得多任务特性可以在并不是很高档的设备上发挥得很好。
史前的Windows版本
Windows?不是90年代的文化吗?怎么冒出了“史前”的兄弟?人们之所以往往觉得Windows好像才面世没有几年,是因为直到90年代初的Windows 3.0版本,才掀起了至今未退的“视窗”大潮,才使几亿人了解、 认识它。尤其是在国内,Windows的真正普及更是1994年微软与长城联手推出中文Windows 3.2版之后的事情,所以我们总觉得好像Windows进入“文明时代”才一两年似的。而实际上,Windows系列在非常早的时候就起步了,只不过一直不是很成功。
在Windows的史前版本中,有拖来拖去最后在 1985年11月才上市的祖先——Windows 1.0版、1987年11月正式发表的Windows 2.0版,以及日后的Windows 286和Windows 386,这些版本虽然都没有取得预期的成功,但它们都为Windows在90年代的巨大成功打下了坚实的基础,下面就来看看Windows艰难的成长历程吧。
最初只是DOS的“上层建筑”
从前面关于Windows的介绍可以看出,Windows的每一项优点都是针对着DOS的缺点来的。事实上,最初的设计Windows只是为了在DOS上面构架一个“上层建筑”,以提供通用的接口和界面,使得PC机更方便易用、更“傻瓜”,而并不是想搞一个单独的操作系统——一直到Windows成功的时候还只是半个,并且最初的Windows并不叫“视窗”,而是叫“界面管理者”。
当时,针对DOS的不足而搞“上层建筑”的公司不止是微软一家,还有开发与Windows很相似的VisiOn的VisiCrop公司,有至今还在继续发展DESQView/X的Quarterdeck公司。更另人望而生畏的还有IBM,它也在搞一种叫做TopView的“上层建筑”。之所以说是“上层建筑”,是因为那时的产品在操作系统发展的历史上只是属于一种过渡性的产品,一方面对DOS进行扩展——在DOS上面架一个外壳,使其更“傻瓜”,一方面向下一代操作系统过渡。大家为了相同的目的而开发类似的产品,不免产生竞争,而在操作系统领域,赢家往往只能有一个,究竟鹿死谁手,要看各厂商技术和战略了,先来看看各家的背景情况。
微软从80年代初就开始了Windows(即“界面管理者”)的开发,一方面为了给用户提供更优良的性能,保持自身在PC机操作系统领域的领先地位,另一方面也是为了重开一片应用软件的战场,与莲花(Lotus)一决雌雄。在DOS应用软件的竞争中,莲花凭借其具有划时代意义的Lotus 1-2-3赢了微软,盖茨自然是不服输的。与基于DOS的应用软件相比,基于Windows的应用软件将是一片新天地。在战略的实施上,微软也是“两手抓”——一边与苹果共同开发基于Macintosh的软件,从中学习GUI技术,一边开发自己的Windows。微软的竞争对手中,在GUI技术方面实力最强的是VisiCrop公司——当Windows在微软还只是“内部项目”的时候,VisiCrop公司已经在1982年的秋季计算机大展上宣布了自己的VisiOn产品。盖茨指派查尔斯·西蒙伊去展会打探军情,探来的结果调动起了盖茨那种特有的危机感——VisiOn与微软要开发的程序很相象!事实上VisiCrop公司此时已经在这个产品上花费了两年的心血,并且取得了初步的成果,准备推出自己的产品了。再说IBM,IBM PC的开放造就了与自己竞争的巨大兼容机阵营,这回IBM自己也要插手“上层建筑”市场了,并且给自己的产品起了一个响亮的名字——TopView,意在“这里才是最好的”。看来,一场混战是在所难免了。
群雄逐鹿——Windows的第一阶段竞争
自从VisiCrop公司宣布了它的VisiOn软件之后,微软进一步加快了开发Windows的步伐,并且最终为Windows取定了今天这个响彻云霄的名字,后来这名字真的写在了蓝天和白云上。微软的高级市场人员认为像“界面管理者”这样的产品名称属于“技术性思维的产物”,不宜用作市场名称,而对用户而言,Windows则要亲切得多,Word是不是也很亲切?
好名字有了,但产品还不知道在哪儿呢!就在这时,VisiCrop公司于1983年10月向公众宣布它开始向VisiOn软件的三万个订户交付产品了——VisiCrop公司着实领先微软不少。眼瞅着VisiCrop公司吸引了众多的用户,并且据称IBM的TopView不久也将面世,对以生产操作系统为主微软来说,已经到了“火烧眉毛”的地步,再也顾不得许多了——1983年1月10日,微软在纽约召开了Windows产品的第一次产品发布会,宣称第二年便可以供货,并预言Windows 将在推出后迅速占领市场——这是一系列泡泡中的第一个。
为了开发Windows,微软采用了与苹果公司开发Macintosh相同的办法——直接从施乐的PARC挖掘人才。第一个从PARC来到微软的是早先盖茨和乔布斯刚刚注意PARC的时候就被盖茨请来的大名鼎鼎的查尔斯·西蒙伊,此人1948年出生于匈牙利,十几岁时便被丹麦一家公司录为程序员,后来又去美国接受了高等教育,并被著名的PARC录用。前文说过,很多高手在PARC并不得志,纷纷跳槽,而西蒙伊这匹“千里马”恰巧被“伯乐”盖茨相中了,就这样,西蒙伊后来以他的才华成为微软的核心人员之一。后来,当年西蒙伊在PARC的一些同事,也纷纷被微软“挖”了过来,其中麦克乔治被任命主持Windows 1.0版本的开发工作。
在微软对外宣布其Windows产品之后,IBM与VisiCrop公司签定了关于销售VisiOn软件的合同,表明对微软单独开发Windows,并使其与IBM的TopView竞争的行为不满。虽然Windows的盟友中失去了一位巨人,但随之而来的是那些对巨人的霸道感到不满的兼容机厂商,像那时还算是兼容机厂商的Compaq等纷纷投靠微软,表示支持Windows。
有了响亮的名字、优秀的开发人员和众多厂商的支持,按说Windows该平安上路了。可毛病就出在谁都应该想到,但谁也没有想到会如此严重的问题上——当时PC机的硬件水平还不足以很好地运行Windows,或者说核心问题不在于如何将“窗口”的想法用程序实现,而在于如何让Windows在现有的低配置上正常运转,好象Windows家族的新产品出来的时候总是超前于硬件的配置。这么说吧,你编写过图形程序吗?如果写过,你一定知道256K的内存对于图形程序来说实在是可怜了些,但当时的机器确实只有那么大的一点儿内存!另外,8088的芯片在Windows的要求面前显得那么脆弱无力,与先前的DOS相比,Windows的程序量大得惊人。在那时,还没有人在PC机上编写过如此复杂的程序!微软的程序员们在这颗钉子面前碰得头破血流。
时间不等人,日历很快就翻到了1984年,翻到了微软承诺提供Windows的日子,对于“出售诺言”的微软公司来说,这是第一次食言。确实另人失望,但谁也没有想到的是,这只是一系列食言中的第一次!1984年2 月微软公司在西雅图举行了一次Windows会议,各主要软件和计算机公司的三百多名代表出席了会议,原本是要在此次会议上介绍Windows的最新技术的,但由于Windows的开发“崴泥”了,所以这些代表只能带着Windows推迟到5月上市的消息扫兴而归了。5月如约而至,可是Windows的开发“崴泥”依旧,这回微软的人员不得不上门去解释,并且把Windows的上市日期进一步推迟到8月。8月呢?历史又一次重演,也就在这时,Windows得到了“泡泡件”(VaporWare)的外号。最终使Windows项目走出低谷的是微软的一位新的副总裁,一位企业管理的行家。经过重新组织、分工,并且在问题相对明朗、技术相对成熟之后,Windows的开发总算走上了正轨。
商场如战场。在微软公司开发Windows“崴泥”的时候,它的竞争对手是不是就一帆风顺地“抢占制高点”了呢?非也。其实,当时其它各家公司也都出师不利——所以看起来像是混战一场。
先说实力最强的VisiCrop公司。虽然VisiOn软件如期上市,并且从技术的角度来看确实是个不错的软件,但上市后却一直“门前冷落车马稀”,售价从495美元一直跌到95美元,还是没有能够造成市场上的轰动效果。听起来好象很奇怪是吧,这花费了VisiCrop公司三年时间和上千万美元的好东西怎么没人要呢?其实,VisiOn软件恰恰是犯了操作系统的大忌——它是一个封闭的环境,不能够运行原先DOS环境下的优秀软件,就是说如果用户决定采用VisiOn系统,就不得不对以前那些得心应手的工具,包括像Lotus 1-2-3这样的优秀软件说拜拜了。可另一方面,基于VisiOn的软件它需要在小型机上开发,成本太高,所以用户使用VisiOn系统做不了什么事情。真正基于VisiOn的应用软件只有VisiCrop公司自己开发的三种,再加上它对硬件要求很高,自然是要受冷落的。唉,可惜呀,一份原本技术上领先的操作系统就这样夭折了。至于VisiCrop公司的命运,更是悲惨——眼瞅着血本无归,再加上因软件的知识产权问题被人起诉,最后以倒闭关门告终。
IBM不是与VisiCrop公司签定了关于VisiOn的合同吗,VisiOn夭折之后IBM又作何反应呢——IBM将不中用的VisiOn换了下来,把自己的得意门生TopView派上阵去。可等这TopView一上阵,用户便大呼上当——TopView虽然提供了窗口的效果,但它却从头到脚还是传统的字符型界面,这自然与用户的期盼相差太大了。
在这期间,Quarterdeck公司和老对手DR公司也分别推出了自己的相应产品。Quarterdeck公司的DESQ也属于那种技术上不错,但易用性不好的产品(后来经过改进成为DESQView,获得了一定的成功, 但终未在PC机上形成气候,现在还在Internet卖用于UNIX系统的DESQview/X版本。DR公司的产品虽然在初期取得成功,但也终因起产品并不完美(比如没有提供对于多任务的支持)和其它原因(苹果以保护Macintosh界面外观专利为由,威胁要起诉DR,后来DR重新编写了图形接口)而又一次失去了占领市场的机会。
混战之中,眼见各路大将在用户与市场的考验下纷纷落马,人们开始怀疑PC机图形界面的真正可行性,并且盼望着微软Windows粉墨登场。
在此时的微软内部,Windows就是一切,越来越多的精英被派上了Windows的开发岗位,人们没日没夜地工作,有人甚至把睡袋都搬到了办公室。而年轻的程序员们在紧张的工作中也不时地放松一下自己,搞些恶作剧:有玩土火药的、有玩摇滚的,好不热闹!在这些拼命三郎的努力下(“满负荷工作”也算是微软文化的一部分),Windows总算日渐完善了。当然,最着急的还是微软的“领袖”比尔·盖茨,他在那时甚至也创下了发脾气的记录,连盖茨在哈佛时的挚友、一直是微软的最高层核心人员、当时负责操作系统项目的鲍尔默也没能“幸免”。自1984年8月又一次食言之后,微软索性把上市时间一口气推到了1985年6月。经过又近一年的努力, 到1985年5月可以同时使用键盘与鼠标(那时鼠标还不多,不过现在还觉得“快捷键”是个很实用的设计)的Windows的演示版终于出现在展览会上。6月,很多公司收到了Windows的测试版本(微软历来注重产品的测试与反馈),之后微软又散发了Windows的软件开发工具……
1985年11月,标价95美元的Windows 1.03版本终于正式上市了,此时已包含了画笔、书写器等附件,如果你手上碰巧有那本早期讲DOS 3.0的《DOS使用大全》,你还可以在那里找到当年的Windows 1.03。微软为此专门举行了盛大的发布会,这次终于不用再向记者解释推迟的原因了。发布会圆满成功,在会上Information World的记者还颁发了那枚特制的“泡泡件奖章”,记者们也与鲍尔默、盖茨等人也开起了玩笑,鲍尔默被说成是“为了开发Windows而愁秃了头的。
Windows总算顺利面世了,经过一轮混战之后,各家的“过渡产品”中,Windows算是最成功的。到此为止,虽然Windows结束了第一阶段(作为“过渡产品”的阶段)的竞争,但距离它成为响彻云霄的操作系统,还有很长的路要走,还要经历第二阶段(真正作为操作系统与OS/2竞争)的历练,还要面对来自苹果的指控(当然还是为了保护它的界面专利),还要……