软件史纵横 黎和生 1992-02-28 当全球PC机硬件价格战硝烟弥漫的时候,微型机软件行业也出现了风雷激荡的不安局面。10年前,在蓝色巨人IBM公司面前还只能称作娃娃的Microsoft公司,91年与DEC(数字设备公司)、Compaq等组成ACE联盟,依仗大行其市的WINDOW3.0,公然与IBM分道扬镳;拥有100万以上dBASE忠实用户的Ashton-tate(安信达)公司惨遭Borland国际公司购并,而她与FOX(狐狸)公司的版权纷争也以败诉告终。更使人不寒而栗的是,10年前还在娘肚子中的Novell网络软件公司,如今也玩起了掐别人脖子的行当-----把曾经风光满面的8位机操作系统CP/M的制造大亨DRI收为“关门第子”.至于AT&T(美国电报电话公司)收买NCR;DEC兼并飞利浦,只能算作大海中泛起的浪花了。 软件业业已步进“春秋战国”时期。谁将成为乱世枭雄,我们只能骑驴看唱本。 然而,疲软的计算机行业却在朦朦中昭示着契机:MS-DOS、OS/2、windows、unix等系统软件的售卖依旧保持着高达20%的利润率。硬件市场不景气,软件却在增长,美国技术分析家格兰蒂说,“计算机世界的主要任务将从硬件转向软件。”我们有理由相信格兰蒂的预言。一场更为激烈的“大决战”将在大出血,大动荡、大改组之后上演。 在这群雄争霸的混乱时刻,让我们去回顾一下波波折折的软件发展史。 ●横空出世 软件诞生 早期能使计算机工作的人,几乎和计算机本身一样披上了神秘的色彩。那些经过专门训练的极少数科学家在庞大的计算机上,拨开关,揿按键,转旋钮……,忙得使人目眩。由于计算机只认可用0,1表示的二进制代码,加之输入采取纸带穿孔卡读取的办法,一些科学家往往在忙了半天后,却搞不清自已“为来为去为什么。” 习惯上把用0,1写成的二进制代码段称为机器语言。人们为了使输出输入稍方便一些,便将常用的象正弦sin,对数LOG等函数的计算,预先编好程序段(这种等待参数填入,完成一件小事的程序段叫子程序)让用户随时可以取用。编好了的机器语言程序被称作管理程序,软件史就从管理程序开启了它光辉灿烂的第一页。时间正是1951年。 但“软件”一词是在1960年巴黎召开的一次计算机学术会议上. ●汇编语言初出茅庐 机器语言太懂了! 看到那些UNIVACI(第一台通用自动计算机)上进进出出的天书一般的穿孔卡,程序员们既头疼又着急。 每调出一个结果,他们就象小孩子过节一般欢呼雀跃;每开始调试一个新程序,却如履薄水。 1952年,计算机语言在向自然语接近的研究中以得了突破,计算机科学家毛希利等人,在UNIVACI上研制成功一种新语言__汇编语言。 这种语言在表示上不再是讨厌的0,1数字代码,而采用了接近自然语或数学算式的易认易记符号(如←Y)。当然,由于计算机只能懂机器语言,便为这种新语言配了一个特殊翻译:汇编程序。人们借助汇编程序,与“老计”神侃、机房里终于有了欢快的笑声。 初出茅庐的汇编语言在应用和普及中如沐春风,几乎每种机器都有了自己特定的汇编语言。 汇编族突破了机器语言的雷区,软件界不再寂寞。 ●FORTRAN后来居上 “FORTRAN”,“FORTRAN”“巴克斯”,“巴克斯” 1956年,几乎全世界名地的计算机研究所都在传颂巴克斯在IBM 704上发明FORTRAN语言的消息。那些从事科学和工程计算的人们说,“巴克斯把我们从繁重的奴隶般的劳动中解放出来,他就是斯巴达克斯!”(斯巴达克斯,古罗马奴隶起义领袖) FORTRAN语言在计算上确实具有超凡魅力。著名计算机科学家GOODS曾做了一个有趣的实验,他让他的学生用FORTRAN语言跟一个玩机器语言的高手比赛,看谁算得快。结果,不得不以“高手”的失败而告终。 FORTRAN,FORmula(公式)和TRANslation(翻译)的缩写词,也叫公式翻译语言。直到今天,她还在全世界广泛流行。由于比较接近自然语,不象机器语或汇编语言只能适用于某一型机器,人们给FORRTAN戴了一顶高帽“高级语言”。而机器语言和汇编语言叫作“低级语言”。 FORTRAN是第一个用于科技和工程计算的语言,也是第一个真正广泛使用的高级语言。在软件史上,她堪称语言向自然语挺进的里程碑。 后来居上的FORTRAN成为新宠不过三年,一种长于商业数据处理的计算机语言分娩了. ? ●软件盛世 众语言各显神通 60年代是高级语言的本命年。 1959年,宾夕法尼亚大学召集计算机制造厂、用户和大学的有关人员,以美国国防部为主举行了CODASTL(数据系统语言)会议。次年,COBLO 60公开发表。这就是现今广泛流行的标准化典范语言COBOL的鼻祖。 几乎与此同时,ALGOL 60也走上了历史舞台。她的“父亲群”是以瑙尔为首的一批科学家。 COBOL擅长数据处理,ALGOL则以风格严谨知名,她明晰、匀称、人见人爱,可以说是一个典型的计算机语言模型。COBOL采用了自然语言的程序设计风格,程序书写采用接近英语的形式,易于被英美及英语流行的国家和地区(如印度、香港、新加坡等地)接受。 当日历翻至1962年的时候,凯梅尼和库尔茨在美国Dartmouth学院提出了会话式语言BASIC。虽然五花八门的计算机语言其时已象现今大商场的商品一样琳琅满目,但BASIC语言以其易学易用,成为竞赛场上的一匹“黑马”,令人刮目地成了最受欢迎的入门语言。 BASIC的发展大致可分为四个阶段。初期BASIC,基本及扩展BASIC,高级BASIC,结构化BASIC。各阶段功能逐步增强。1985年,True BASIC部世,它在结构化程序设计、解释跟踪、图形功能,计算速度和可移植性方面,均有上乘表演。1987年,Borland(博兰德)公司推出Turbo BASIC,编译运行,窗口显示,使BASIC人机界面焕然一新。 科学家们在使计算机语言向自然语前进的途中,还有个大手笔__通用语言。 通用语言有个绰号:“公共汽车”语言,意为用户可以按自己的口味选取所喜欢的语言功能,就象乘公共汽车,这个人乘这一段,那个人乘那一段,还有的人从头乘到底。PL/I和ALGOL 68是“集大成语言”通用语言的佼佼者。 PL/I荟萃FORTRAN、ALGOL60、COBOL的特点,增加子字表处理和存贮分配能力;ALGOL 68是在ALGOL 60功能上的扩充,从理论上讲,她是一个意义相当重大的语言,但ALGOL 68报告理论太高深,概括太精练,很难读懂。ALGOL 68与PL/I,可以说,一个是“阳春白雪”,一个是“下里巴人”。 70年代初,软件园来了一位新客:PASCAL。PASCAL,苏黎世联邦工科大学N·活思教授的杰作,他的语言风格脱胎于ALGOL 60。 PASCAL程序简洁,第一次体现结构化概念,表达能力强,移植容易,实用性高,也具有BASIC易学好用的特点。 PASCAL和BASIC是各国学习者的必修科目,被称为高级语言的“双璧”。 现在,是我们让软件园的主持人__操作系统亮相的时候了. ●千呼万唤始出来 CP/M激起千层浪 计算机语言百花争妍的七十年代,计算机本身正向微型化方向飞速发展。1971年,Intel公司成功地研制出了四位Intel 4004芯片,1973年,又研制成功八位Intel 8088芯片。微型机的诞生,已经指日可待。 七十年代中期,台式微机,工作站,超级微机,膝上机相继面世,“谁来指挥他们”,人们千呼万唤。 事实上,早在1972年AMAA(美国微型机协会)就悄悄地在为一个“指挥系统”作临产前的准备了,他们用PL/M程序设计语言为Intel 8086编写了纸带编辑程序ED。1973年,PL/M的创始人Gary Kildall博士决定“挂帅亲征”,很快在DEC公司的主机TOPS-10上,培植成功一个管理“程序和数据”的“胚胎”。博士旗开得胜,感觉当然是“味道好极了!”,但Intel公司及其它著名电脑公司却对此充耳不闻,这使“元帅”和“士兵”们很是发火,1974年,“胚胎”得以向全世界公布:版本号V1.3;大名:CP/M;全称:Control Program/Monitor(控制程序或监控程序)。 虽然CP/M V1.3是为肩任“控制程序和数据”的“上帝”而来的,但“上帝一世”却颇受冷落,电脑业者依旧冷眼旁观。1975年,CP/M V1.3继承“王位”,开始大造舆论,加之Kildall博士创建了Digital Research (数字研究公司),为CP/M呐喊欢呼,CP/M陆续被各国微机厂商采用,围绕他的软件也爆炸般地得到了开发。CP/M变红发紫,神话般普及,被推崇为“标准八位机软件总线”,Kildall博士更是声名远播。 CP/M其实就是第一个微机操作系统,享有指挥主机、内存、磁鼓、磁带、打印机等硬件设备的特权。执行着人们的指令,如同指挥一台晚会或乐队,高效率地合奏美妙的乐章。 繁荣的CP/M家族不断添丁。运行在Intel 8080芯片上的CP/M被称为CP/M-80;运行在8088、8086芯片上的叫CP/M-86;而在Motorola(摩托罗拉)68000上运行的CP/M叫做CP/M-68K等组成了庞大的CP/M家族。 单用户的CP/M-80操作系统,后来发展成多用户的MP/M-80,单用户的CP/M-86又发展成并发的CP/M-86和多用户MP/M-86,它们成为家族的新生力量。 CP/M开创了软件的新纪元,称得上是计算机改朝换代的里程碑? ●江山代有人才出 MS_DOS领风骚 七十年代末期,CP/M后院起火,其微机操作系统霸主地位开始动摇。 1979年,IBM公司为开发16位微处理器dIntel 8086,请微软公司(Microsoft)为IBM PC设计一个磁盘操作系统。微软公司慷慨承诺,但当时头仅有XENIX操作系统,XENIX要求处理器支持存贮管理和保护设备的功能,可PC机的CPU 8086/8088均不具备此功能。微软公司急于满足PC机的要求,购买了由西雅图公司工程师TimPaterson研制的、可在8088上运行的CP/M_86“无性系”__SCP_DOS操作系统的销售权,将SCP_DOS改造成MS_DOS V1.0发表。为避“偷梁换柱”的嫌疑,微软公司又于1981年8月推出了支持内存为320KB的MS_DOS1.1版。由于蓝色巨人的推波助澜,操作系统软件市场几乎一夜之间呈现出一面倒的局面,CP/M地位芨芨乎可危。 想来CP/M也真可怜。MS_DOS功能虽然强大,但毕竟建立在CP/M_86基础上,说起来本该情同手足,亲如姐妹,但秀色可餐的“妹妹”抛弃了人老珠黄的“姐姐”,开始了黄金般的悠悠岁月。 随后,IBM公司向微软公司购得MS_DOS使用权,将其更名为PC_DOS 1.0。MS_DOS又称PC_DOS,就是这个原因。 1982年,支持PC/XT硬盘的微软MS_DOS问世,该版本首次具有多级目录管理功能,在人机界面上部分吸收了UNIX操作系统的优点。 1984年8月,3.0版公布,内存管理适应于IBM PC/AT及其兼容机。 1984年11月,支持网络的3.1版面向社会推出;1986年1月,MS_DOS3.2版本宣布,它支持3.5英寸软盘,格式化功能集中到外设驱动器:1987年4月3.3版推出,它适应于PS/2型;1989年,采用实地址方式运行的MS_DOS4.0上世。 不断推陈出新的MS_DOS,膨胀了微软公司的欲望,进一步坚定了它全球软件业霸主的信心。 但台式微机软件史上最大的升级行动是1991年6月微软公司首推的MS_DOS5.0版,虽然世界各地DOS软件用户大规模的升级行动还没有到来,但微软公司交付200万套新版本的事实,却预示了MS_DOS5.0的美好前景。最新5.0给人印象至深的特点是占有内存仅18K;安装程序简便易学,而且一旦出现差错,还能使你保留旧的DOS。 当然我们应看到,操作系统的竞争已经白热化,和APPLE、Lotus等公司正处于热恋阶段的IBM公司,决不会对微软在软件业上的一系列行动熟视无睹。 微软公司毕竟非等闲之辈!副总裁Brad Silverberg对报界发表谈话,“在今后几年内,MS_DOS将注入Windows的特点”。 一旦灸手可热的窗口Windows被加载到DOS中,MS_DOS的未来绝不至“红颜薄命”.? ●WINDOWS窗口不平凡 杀手一镜定乾坤 1991年,个人机软件市场有两件大事一直为电脑厂商、用户所津津乐道。一件是MICROSOFT公司与IBM公司“拜拜”,一件是IBM公司同“冤家对头”APPLE公司联姻修好。 拨开云雾见青天,这两起事件的真正“祸首”,就是众口皆碑的WINDOWS窗口软件。 1983年岁末,MICROSOFT公司传来捷报,一种被叫作窗口WINDOWS的软件产品开发成功。年轻气盛的微软公司决定“将革命进行到底”,投入大量人力物力继续研究WINDOWS的改进升级;虽然外面的世界很无奈,但有志者毕竟事成,1990年5月,超凡绝伦的“艺术软件”---WINDOWS 3.0对外公布---微软公司走出了IBM的影子,“从此站起来了!”WINDOWS 3.0哪里仅仅是一个升级版本,它展示了一个新天地、新世界!它拥有高达16M的扩充内存的直接存取,提供了可将硬件空间做为虚拟内存的存储管理,提供了多任务管理和一组功能很强的应用程序。美观大方的图标(ICON),立体感逼真的按钮(BUTTON),丰富悦目的屏幕显示,以及种类繁多的字型、方便实用的数据交换,堪称开天辟地的绝世贡献! WINDOWS软件一上世便引起了轰动,单是1990年,就销出了400多万套。新兴的超级富豪型公司DEC和COMPAQ,欣然与MICROSOFT同舟共济。1991年,三家联手组成先进计算机环境(ACE)联盟。ACE联盟更视WINDOWS窗口软件为掌上明珠,已定下1992年推出支持服务器、高档机、适用于多处理器的WINDOWS/NT(新工艺)产品。 WINDOWS成了MICROSOFT公司的杀手镜。盖茨董事长明白无误地告诉世界:“九十年代MICROSOFT公司的核心战略就是WINDOWS,台式机要用WINDOWS、多媒体要用WINDOWS、手写字符输入要用WINDOWS……任何计算机都要采用WINDOWS!”对于家用电器领域,盖茨也毫不掩饰:“电视的用户接口要采用WINDOWS”。 MICROSOFT是不是有些“小人得志”,如果你去问IBM,答案将是肯定的。 在1987年,MICROSOFT公司和IBM公司曾共同推出OS/2操作系统,两家的初衷是“生一个如花似玉的公主”,可OS/2却庞杂得象口“肥猪”,看花了眼的用户尽管钱囊鼓鼓,就是一毛不拔。几年来,OS/2零零星星销出了几十万件,销路一直不好。两家公司从亲家变为仇敌,芥蒂就此滋生。 WINDOWS开门迎客,备受吹捧,IBM当然不快,蓝色巨人发誓不惜巨资,要把“肥猪”栽培成“明星”,现在冷静观察,OS/2从1.0到3.0,还真没有辜负IBM的一片苦心:在OS/2 2.0自我保护的存储区内,它能支持多种DOS应用程序,可在IBM 286或更高级的主机上运行,甚至还能为DOS和WINDOWS用户提供32位虚拟存储功能。 OS/2能否回天,现在盖棺论定,不是时候,但WINDOWS的蜜月期还要持续一段时间 . ●无意争春 阁楼飞出金凤凰 1969年3月,美国电话与电报公司(AT&T)的贝尔实验室里昼夜不分,以肯·汤普森和丹尼斯·里奇为首的“雅皮士”们,为了改变平淡无奇的研究生活,正筹措着的贝尔实验室里抱出一个金娃娃:在PDP-7上运行的小型通用分时系统。上司AT&T既没计划也没指望他们有什么惊人的“大动作”,虽然1970年,这个叫作UNIX的多用户多任务分时系统落地的哭声唤醒了沉睡的阁楼,但除了汤普森和里森几个围着“小生命”对酒当歌,以示祝贺外,公司上下按部就班的生活里,UNIX连议论的话题者不是! 1971年11月,汤普森和里奇合作编写了UNIX第一版,实验室的专利组织成了UNIX的第一个用户;1972年6月,在增加了管道技术后,诞生了第二版。这时候的系统和实用程序全用汇编语言编成。 两个UNIX版本已经具备了现代UNIX的许多重要思想,但AT&T无意争春,UNIX有闭月羞花之貌,也只落得“独倚望江楼”的孤苦伶仃。 1973年对UNIX来说,“是充满希望和收获的一年”。里奇在B语言的基础上研制成了C语言,汤普森和里奇用C语言改写了UNIX系统,并由此推出了第五版本V5。事实证明,后来的UNIX如此快速的推广和普及,得力于C的可移植性。 C语言的“祖师爷”是ALGOL60。C语言生成目标代码质量好,程序执行效率高,兼具良好的可移植性,很快与UNIX难舍难分,恰似一对难兄难弟。 1974年7月,汤普森和里奇合写了“UNIX分时系统”一文,发表在著名的ACM通讯上,UNIX第一次正式向外披露,引起了强烈反响,陆续有大专院校、研究所的研究人员们来一睹UNIX风采。 那时候的AT&T真是大方得可以,对于喜欢UNIX的客户,一律免费赠送,为了不惹“维护”的麻烦,AT&T干脆连源程序也一并奉送。于是,贝尔实验室门庭若市。 1975年3月,第六版(V6)UNIX系统对外发表。这一年,AT&T下属的西方电气公司发觉美国各大专院校基本上配置了PDP小型机,而UNIX是无可辩驳的最适宜于小型机的操作系统。决策者们猛然大彻大悟,“发财的机会早已来临!”。 于是,西方电气公司小心翼翼地开始颁发使用UNXI的许可证,但对教育界所收费用大约只是政府和商业界的2%。也就是从这时开始,美国各大学开始开设UNIX课程,并不断地对它进行修改、扩充和再开发。 上述情况的出现,有利于UNIX系统的普及和发展,但主权单位AT&T对UNIX的失控,导致了UNIX的多轨道演化,不仅给AT&T种下了祸患,也给用户增添了烦恼。? ●一门流芳 厂商觊觎王中王 UNIX一门流芳,众皆垂涎,研究和编制UNIX新版的厂商 ,如夏夜繁星;各种同宗不同姓的家族,搅得用户意乱神迷。 其间较有影响的,有七大谱线,它们是贝尔实验室正宗版;柏克莱大学标准版;AT&T商品版;MICROSOFT商品版;IBM AIX版;DEC版;SUN(孙氏)版。 谁都想统一UNIX,谁都统一不了UNIX,这就是当前UNIX的市场现状。 公司与公司之间的竞争,首先靠强有力的技术,其次才是财力,而对那些财大气粗的公司来说,以强凌弱,以大吃小却是司空见惯的事。 在UNIX的统一和标准化工作中,有两大集团互不相让。一是以IBM公司为首的OSF(Open Software Fundlation开放软件基金会)集团,一是以AT&T为首的UI(UNIX International UNIX国际)集团。AT&T集团早就觊觎UNIX的霸主地位,事实上早在八十年代后期,它就有计划地在实施“版本的吞并”战略。该集团认为,只有两大谱线值得大动干戈,第一是柏克莱大学的4.2BSD和4.3BSD,这两个版本的性能都比它自己开发的UNIX System V高,并占领着UNIX的高档产品市场;第二是MICROSOFT版谱线中的XENIX System V,该版本性能虽比UNIX System低,但它占领着UNIX广大的低档产品市场,年销售量相当大。如能将上述两个版本溶入自己的UNIX System V中,UNIX市场就是我AT&T的了. AT&T雄心勃勃的合并计划已经取得了一些成绩。1988年11月,UNIX BSD(柏克莱版)版也被收服。三者合并成的UNIX System V ReLease 4版已可用15种语言操作互连。合并SUN OS4.0的工作也在进行中。 AT&T“合并统一”的野心,引起了其它一些公司的担心和不满。1988年5月成立的、以IBM、DEC和HP等大公司为首的OSF,合作开发了一个开放式的软件环境OSF/1,给AT&T以迎头痛击。 OSF声称,它的OSF/1版要继续改进,而且明确的服务对象是DCE(分布式计算环境)。 为了与IBM公司为首的OSF对抗,1988年由SUN(孙氏)公司出面成立的UI,在AT&T的领导下,正与OSF展开既竞争又合作的策略战。1990年4月9日,两集团曾试图修好,但未能达成协议。尽管如此,OSF与UI的总裁们还是定期在一开会,互通情报,使对方知道自己近期又要在UNIX上作什么文章。 两大集团的勾心斗角,使UNIX的航班在九十年代的航行中将不会一帆风顺。