锁定老帖子 主题:[转帖] OS 演义
精华帖 (0) :: 良好帖 (0) :: 灌水帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-02-07
搜索了一下“OS演义”,能找到的全文不多。只有http://bbs.highot.net/archiver/?tid-92113.html一篇,格式还有点乱。略微整理一下,转帖在下面。 旧文重读,也挺有意思^_^ 文章有点长,不一一贴出来,有兴趣就看附件吧。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-02-07
OS演义(一)
………………………………………………北京 庞大 本文的主人公是一种“为了合理方便地利用计算机系统而对其资源进行管理的软件”(摘自《中国大百科全书》电子学与计算机卷),本文所记载的内容,是一段历史课本所不收录的历史,是什么?请看——OS?对OS,Operating System,就是我们总挂在口头上的“操作系统”,就是那个你玩电脑离不开的操作系统……反正你已经知道它是谁了。可是,它究竟做什么呢? 操作系统做什么? 你也许会奇怪,为什么二话不说,先摆上这样三个金字塔示意图,其实看了这三个示意图,你也就明白操作系统的重要地位了——按照应用软件的要求指挥硬件,扮演一个“团长”的角色: 在使用计算机时,用户运行应用软件,让应用软件做一些事情,应用软件把这些要求转给操作系统,操作系统把任务交给硬件的最上一层——BIOS,BIOS再去告诉CPU该计算什么数据,告诉显示器在哪一个点该显示什么样的颜色,告诉硬盘……命令越往下传,分得越细、也越多,直到最后以二进制的方式被硬件执行。这有点象军队的指挥方式:将军只管制定作战方案,告诉师长每个师的任务;师长的工作是布置每个团的任务;团长需要确定让哪个连去抢占哪个桥头堡;连长则要分配每个班、每个士兵的具体任务;每个士兵只需要按照接到的“二进制指令”完成任务就可以了。与最左边的那个金字塔相比,你会发现最上面的将军不是别人,正是你自己——你站在将军的位置上指挥这支二进制军队——你在使用计算机。当然,这支“二进制军队”有个特点——不能越级指挥,这个“团长”是必不可少的!需要说明的是,上面讲的只是一般情况,随着软件技术的不断发展,出现了一些新技术,它们可以绕过金字塔中的某一层,比如前两年才出现的直接写屏技术,可以绕过显示BIOS,直接把信号发往显示卡,但这样的技术只有少数几种,其目的都是为了大幅度提高软件性能(如果调用显示BIOS来显示汉字,速度是难以容忍的),且以绕过BIOS居多,至于我们的“团长”嘛,绕是绕不过去的。 好了,有关“金字塔”,就先说到这儿吧,相信你已经可以自己分析那个在486上学“急救英语”的那个金字塔了(你用它学英语吗?),下面来看看我们的“团长”都管些什么部队。 总的来说,操作系统管理的对象是计算机的各种软硬件资源,包括CPU、内存、外存储器、系统程序和数据文件等。操作系统对它们进行合理的管理,使它们能充分地发挥作用,为用户提供一个方便、有效、安全、可靠的使用环境。要做到这些,“团长”必须管理五支部队,操作系统必须具有以下五种管理功能: 1.CPU的管理功能。CPU是计算机最重要的资源,对CPU管理的主要内容是充分利用其工作时间,避免不必要的CPU等待时间。其实,这一功能在早期的单一任务操作系统中并不明显,而在多任务,尤其是多用户操作系统中,就显得尤为重要,因为它使得CPU可以同时为几个任务提供计算,显著地提高了CPU的利用率和操作系统用户的工作效率。CPU的分时利用一般采用时间片法来实现,这样可以使多任务或多用户更好地共享CPU资源。如果把任务合理地搭配,还可以保证CPU和外部设备并行地工作,并把这些资源合理地分配给各个任务,使多个任务能够有条不紊地运行。现在流行的一些多任务、多用户操作系统,如Windows系列、OS/2、UNIX系统,都比较好地实现了CPU的管理功能。 2.存储器管理功能。说到这个功能,你一定不会感到陌生——不管是玩游戏还是上Windows,时不时总要遇上个“内存不够”,这就是操作系统的存储器管理功能大显身手的时候了。它的主要功能就是合理地分配多个程序共用内存,使它们在自己的存储区域内互不干扰地进行工作,在必要时候,还要使用一些高级的内存管理方式,如扩充内存管理、自动覆盖和虚拟内存等技术,为用户提供更大的可用内存。举个例子说吧,Windows中的“虚拟内存”就是实现存储器管理功能的一种方式,它靠一个动态交换文件使用户能够享用比实际内存更大的空间,从而有利于多个任务之间的调配。另外,大家熟悉的游戏“福尔摩斯探案”中也使用了虚拟内存技术。 3.文件系统(信息)管理功能。不管是你写的文章,还是一些软件在使用过程中产生的临时文件,都得以文件的形式存储在硬盘或者软盘上,文件系统(信息)管理功能提供的正是这种对文件的存取服务。你可以直接使用系统的命令来完成对文件的存取(比如用DOS的COPY CON 命令写一个批处理文件),但更多的是通过应用软件来完成(所有的文本编辑软件都提供存盘功能),可应用软件又是怎样把你的文件写入硬盘的呢?它还是靠调用系统来完成的——不管是应用软件还是你自己,只需发布一道命令“存储文件”,操作系统就会指挥它手下的二进制军队去完成了。另外,操作系统还提供对文件属性和使用权限的设置功能。 4.外部设备的管理功能。说外部设备最形象的例子恐怕就是打印机了,操作系统怎样管理它呢?举例说吧,当你在应用软件中做“打印”操作时,这个应用软件便会告诉系统,说它需要接通打印机,这时系统启动外部设备的管理功能,接通打印机,把要打印的信息输送过去。当然,操作系统的外部设备的管理功能更重要的功能是按照一定策略(通过通道、缓冲和中断技术),充分发挥CPU和外部设备之间的并行操作能力,提高系统效率。 5.作业(任务)进程的控制功能。其实这一功能与CPU管理功能差不多,只是这里不仅仅是管理CPU,而是硬盘、打印机……什么都管,目的嘛,就是让多个任务更好地协调工作,让多个用户更好地分享宝贵的计算机资源。 有关这五支部队,就先说这么多吧,这些基本知识对于爱好者来说,有个大概的了解也就可以了,何况天天与之打交道,悟也悟出来了,说到“悟”字,倒是有点经验值得谈谈(如果你已经是个高手,赶紧把这一段跳过去):总有人问我,学电脑到底是先玩后学,还是先学后玩?我觉得,还是先玩一玩的好,当然,这里的玩不是指单纯的玩游戏,而是说要大胆的尝试,勇于实践。理由很简单,“玩”机器的人,都是先摸键盘后看书,也就是从感性认识到理性认识,符合认识规律嘛。比如学用Windows,先进去看看,用鼠标点点,马上就能对窗口、程序组、程序项有个非常形象的感性认识(虽然这时候可能还不知道“程序组”这个说法),然后再看看书,Oh,原来这个叫“程序组”——理性认识也有了,操作也学会了,怎么样,符合认识规律吧。这两句题外话只是经验之谈,相信各位爱好者都有适合自己的入门之道,好,咱们书归正传,接着说这操作系统,操作系统有哪些呢? 操作系统有哪些 操作系统的分类方法很多,这里只按操作系统的使用对象说个大概吧。 首先,有单用户操作系统。这类操作系统使用得最多,大家使用的DOS、Windows3.X、Windows95和OS/2等都属于这一类操作系统。它们的共同特点是以单机为系统运行平台,为一个用户提供服务,系统适应性很强。由于这一类操作系统用户最多(常常在几百万至几千万),加上个人电脑发展很快,用户不断地对操作系统提出新的、更高的要求,所以这一类操作系统的发展也是几类操作系统中最快的。 与单用户操作系统相对应,另一类操作系统叫多用户操作系统。它的特点在于其开放性,往往系统安装在一台主机上,管理主机的各种资源,同时它可以接受数十个终端用户的访问,使得这些终端用户可以共享主机资源。这一类操作系统一般比单用户操作系统要庞大,对主机的硬件配置也有较高的要求,最常见的有UNIX、XENIX、MP/M等,其中使用最广的是UNIX系统(其开放性在Internet上得到了充分的体现)。 还有一类操作系统,叫网络操作系统。网络操作系统与多用户操作系统最大的不同,在于它是安装在网络上,即在服务器和工作站上各有一部分程序,两部分程序一起工作,才能完成在网络上的各种操作,而不象多用户操作系统,只是安装在一台主机上,由终端用户通过它来使用主机。随着网络的发展,网络操作系统也在不断发展,现在常用的网络操作系统有3COM、LAN Manager、NetWare和WindowsNT等。 哇,原来操作系统有这么多呢!它们的历史有多长呢?它们是从来就有的吗?操作系统是从来就有的吗? 人世间有这样一条千古不变的法则:需求推动发展。这简简单单的六个字,从上古时代便开始生效:人类渴望光明,这种渴望促使人类掌握了火,从而开创了这个星球的文明;人类为了狩猎充饥而发明了弓箭,为了缝衣遮体而发明了骨针,为了辨别方向而发明了司南……每一个新生事物的背后,都有一种巨大的“为了”推动着,文明发展到计算机时代,这条法则依然有效——人们对操作系统的需求推动了操作系统的发展。 这么说,最初的计算机是没有操作系统的?是的,没有。可是……那该怎么操作呀?操作嘛,是很麻烦的,你去看看就知道了。 1946年2月,在美国宾夕法尼亚大学的一间大屋子里,世界上第一台数字式电子计算机正式交付使用,看看它的出生证,上面这样写着:姓名:ENIAC(Electronic Numerical Integrator and Calculator,电子数字积分和计算机);身材:庞然大物(占地170平方米);体重:30吨;内脏:18000多只电子管+1500多个继电器;饭量:150千瓦;智力水平:每秒5000次加法运算;使命:加快火炮瞄准仪的计算速度;家族宗室:结绳记事——上古、算盘——唐代、机械计算机——1642年、计算尺——1654年、手摇计算机——1887年。 哇,这么大的家伙!我可以去试试吗?恐怕不行,倒不是说不让你试(反正这是一次假象的旅行),实在是你玩不转这个大家伙,还是先看看那些秃顶的工程师们怎么让它工作吧。他们手里没有键盘,没有鼠标,只有带导线的插头,他们把这些插头插进计算好的插口,1、2、3……哇,有6000多根!而且,当改换任务时,还得再插一遍!你知道为什么说你玩不转了吧,我可只会用Alt+Tab。怎么?怎么停了?马上有人关掉ENIAC,去检查那些烫手的电子管,那18000多只电子管!不一会儿,“元凶”找到了——原来,蛾子们“向着阳光走”,于是有了这“飞蛾扑火”的一幕,不过这次扑的是那些发光的电子管,扑上哪有不短路的道理?当然,这飞蛾扑火的故事,只是一种说法,也许它是真的,也许这是BUG最初的由来吧,总之,你已经领略到了操作ENIAC的艰辛。 与艰辛相伴的,是难耐的枯燥。今天,我们只要用可爱的鼠标点点那美观大方的图标,就能完成我们的工作,即便是在DOS环境,象COPY、DELTREE这样的命令也都是非常近似自然语言的(相信你英语还可以吧),而在ENIAC的年代,不但没有图标、没有图形界面,甚至没有键盘和显示器,那些工程师们与ENIAC唯一的交流方式就是通过拔插那6000多个插头(比如插上代表1,断开代表0),来以二进制方式直接指挥这支二进制军队,他们扮演了从将军到传令兵的各个角色。也许你想知道这种交流究竟枯燥到什么程度,可以想象一下,如果要告诉ENIAC“POPSoft”,需要怎样对这支二进制军队说呢?你得把POPSoft变成1010000 1001111 1010000 1010011 1001111 1000110 1010100,它才能明白你的意思,怎么样,够枯燥了吧?好在有上面的那一条千古不变的法则,人们对改进操作方式的迫切需要,推动了操作系统的产生与发展。 从冯诺依曼结构到操作系统形成 对约翰冯诺依曼这个名字,大家一定不会感到陌生,在任何一本计算机的入门教材上都会有他那著名的“冯诺依曼”式计算机简图:输入设备、输出设备、运算器、存储器和控制器。按照他的理论,计算机可以在内存中存储指令,通过这些指令来完成各种操作,而不用每一个操作都要人工地以二进制方式输入,这样一来,人们便可以从二进制的指挥方式中解脱出来,而那些在一开机就加载到内存的指令正是操作系统的一部分,从这个意义上说,是冯诺依曼为操作系统的产生在原理上奠定了基础。然而,从冯诺依曼结构的建立(他于1945年公布了他的原理)到真正的操作系统的产生,还有相当漫长的路程。 对操作系统的产生在原理上奠定了基础的,不仅有冯诺依曼,还有大家所熟悉的汇编语言。为什么这么说呢?因为冯诺依曼结构中的指令以什么样的形式出现,是个关键问题,一方面,它们要能以二进制的方式指挥硬件,另一方面,它们要以一种人们比较容易接受的方式呈现在人们的面前——它们要具有翻译的能力,把人们的语言(在汇编语言中还只是助记符而已)翻译成为硬件能够理解的二进制的形式。而汇编语言是第一个实现这种翻译功能的语言,正是它的这种翻译能力,为操作系统的产生在原理上奠定了基础。 说起汇编语言,其实它也是“需求的产物”——最初的程序员只能用0和1来进行程序的设计工作,这种方法的枯燥是你已经领教过的,但枯燥还是次要的,关键是可读性极差、出错率太高,后来,程序员在解放自己的过程中,创造了“汇编语言”这个能够将符号指令(助记符)翻译成机器码的翻译工具,从而使操作系统的产生成为可能。 很快,就出现了操作系统的一个雏形——一种叫做“监控程序”的汇编程序,它已经能够对计算机进行初级的系统管理和控制,虽然它无法与今天的操作系统相比,但与直接用0和1操作计算机的时代相比,已经是一个巨大的飞跃了。 随着计算机硬件和编程语言的发展,到60年代,出现了能够对计算机的资源进行全面管理的操作系统。此时的操作系统已经象模象样了——输入输出设备、内存、中断、CPU……通通听从它的号令,但由于那时的计算机还都是“庞然大物”,每台计算机都有自己的操作系统,通用性很差,制约了软件和操作系统的发展——毕竟,这还只是操作系统发展的起步阶段。真正的“繁荣期”,是在70年代,随着微处理器的发展,计算机从“贵族”走向“平民”之后的事情了。在这之前,有位巨人在操作系统上摔了一大跤。 那是操作系统发展早期的一个教训。时光回到1963年,蓝色巨人IBM(之所以得到这样一个雅号,是因为IBM的雇员都按照公司的规矩,穿浅蓝色衬衣和深蓝色西装)开始了它的360大型机计划。IBM360是个划时代的产品,因为当时各个公司的产品还都是第二代计算机(晶体管计算机),而IBM360则是第一种第三代计算机,与早期产品相比,IBM360由于采用集成电路而使其体积大大减小,而同时速度却大大加快——它将在一夜之间淘汰所有的第二代计算机。为此,IBM投资50亿美元(1963年的50亿美元!)——这个项目只能成功,不能失败。可是在当时,并没有编写这样的大型操作系统的经验,再加上缺乏规划,没有使用标准化接口,使得360的操作系统开发工作深陷泥潭,浪费了5000人年的劳动力,最后不得不从头做起。在这以后,人们开始重视软件的可行性分析、资源分配、软件规划与维护等一系列关系到软件开发能否顺利进行的问题——教训虽然惨痛,但毕竟总结出了不少经验,使以后的操作系统开发能按照标准化的方式进行,为以后软件和操作系统的顺利发展创造了条件。不过你也不用替IBM担心,虽然操作系统的开发工作耽误了不少时间,但这并没有影响360系列的成功。事实上,IBM的360战役是大获全胜的,它淘汰了第二代计算机,也淘汰了很多技术跟不上的公司,就连通用电气公司、美国广播公司这样的大公司都因竞争失利而不得不将其计算机分部卖掉。在360战役之后,IBM在世界范围内树立了“IBM标准”,巩固了它在大型机市场“老大”的地位,并且一直在做它的大型机,下一次惊人壮举是1981年底推出开创个人电脑新时代的IBM PC,而在这之前,计算机已经在一群年轻人的努力下,走出了神圣的机房,从“贵族”走向“平民”了。 进入个人电脑的时代 每当一个新领域出现的时候,都会有一两家公司走在时代的前头,走在技术的前头,推动新兴行业的发展。当个人电脑萌芽的时候,这个角色落到了英特尔的头上。现在的电脑爱好者,恐怕没有人不知道英特尔的大名了,可在70年代,它还是一家名不见经传的小公司——1968年,仙童(Fairchild)公司的三位灵魂人物诺谊斯、摩尔(记得摩尔定律吧?)和葛洛夫(现英特尔总裁)离开仙童,自立门户。仙童公司原本由工业家费尔柴尔德投资创办并以他的名字命名,总部位于纽约,有很多分公司,分别经营不同的业务(轻武器分公司曾参与M-16计划,飞机分公司的产品包括著名的“坦克杀手”——A10),半导体分公司曾经在很长一段时间内是行业的“老大”,但由于内部管理不善,人才流失严重,这不,又有三位精英跳槽了。这三人取了“集成电子”的字头(Integrated Electronics),拼出了“英特尔”(Intel),到它推出第一颗微处理器时,不过才成立3年。 时间走到了1971年,这对于英特尔公司,对于个人电脑行业来说,都是个“创世纪”的年份。在这一年,英特尔推出了全球第一颗微处理器——4004,这虽然还是一颗“中看不中用”的芯片,但正是它,开创了个人电脑的时代——它是Pentium、PentiumPro所有这些芯片的开山鼻祖。其实英特尔开发微处理器也是出于偶然,1969年英特尔公司受一家名为Busicom的日本公司委托,设计生产几颗特制的计算机的芯片,负责这个项目设计工作的“微处理器之父”马西里安霍夫(Marcian Hoff)一次突发灵感——为什么不把所有的功能集中在一块集成电路上呢?多好的设想!可惜那家日本公司却并没有意识到这个设想的伟大意义,从而失去了一次拥有先进技术的机会,而在英特尔内部,霍夫的头头摩尔给了霍夫很大的支持,这样,在霍夫及其同事费根的努力下,到1971年,4004诞生了。有人说霍夫就象那个古老故事中的渔夫,捞到了一个千年古瓶,这瓶中魔鬼注定要开创一个新的行业。4004的家族继续发展,后来有了8008,到1974年,有了8080,此时的微处理器已经“中用”多了,开始被人们用作个人电脑的CPU了(在英特尔研制出微处理器后的很长一段时间内,它都不是主要被用作CPU,随着微处理器和个人电脑的发展,CPU在英特尔的业务中的比重越来越大)。 与英特尔同一年成立的,有一家MITS公司(微型仪器遥测系统公司),它的创始人埃德罗伯茨是个300磅重的电子迷(有人开玩笑说“他的求知欲就象他的食欲一样,从没有满足过”),从空军退役后,他创办了以生产电子计算器为主的MITS公司。后来,由于财大气粗的德州仪器参与竞争,他在计算器市场败下阵来,为了挽救公司,他在英特尔推出了8080微处理器之后,瞄准了一个全新的领域——个人电脑。1974年,罗伯茨采用英特尔的8080微处理器制成了他的第一台个人电脑,在他正为宣传而发愁时,同样为缺少头条新闻而发愁的《大众电子学》编辑所罗门自己找上门来,两人一拍即合,但还有一个问题让两人头疼——为了标志个人电脑新时代的到来,得给这台样机起个新颖的名字(在此以前的计算机,都用编号的方式来命名,就象前面提到的IBM360),可起什么好呢?最后,还是所罗门的科幻迷女儿给出了一个好名字Altair(即StarTrek中“企业”号要去的那个地方,也就是我国民间传说中的牛郎星)。按照两人的约定,所罗门负责撰写于《大众电子学》1975年元月号上发表的介绍文章,罗伯茨则要在圣诞节之前把他那唯一的一台Altair样机寄到纽约《大众电子学》的总部。但意外也就在圣诞节的邮包中发生了,不知怎的,也许是圣诞节前邮包太多了吧,也许它真的飞往牛郎星了,反正所罗门并没有收到那个肩负着历史使命的邮包。可是,再做一台样机是来不及了,最后,罗伯茨不得不“欺骗”一下《大众电子学》的100万读者了——他又做了个Altair的外壳寄了过去,就这样,这个外壳招来了两位操作系统的开拓者。 今天,这两位开拓者都已成为世界级的富翁,但在当年,他们不过是两个初出茅庐的大学生,对了,就是他们——比尔盖茨和保罗艾伦。 1974年12月底的一个早晨,保罗艾伦和比尔盖茨在哈佛广场上闲逛,碰巧在报摊前看到了提前出版的《大众电子学》1975年元月号(封面上印的正是罗伯茨后来寄去的那个外壳),从那时起,这两位在操作系统发展历史上做出重要贡献的年轻人便抓住了个人电脑革命的脉搏,并在这次革命中扮演了重要的角色。他们在《大众电子学》的封面上看到了Altair的全部:没有键盘,没有显示器,面板上有16个开关可以用来对这个小小的二进制军队发布指令——和它的老祖宗一样,还得用二进制!这不行,因为不可能指望爱好者们用二进制去编写程序,如果不能给他们提供BASIC语言,Altair在他们的手里将毫无用处。对,BASIC,这正是比尔盖茨和保罗艾伦的拿手好戏,他们坚信,以他们的BASIC,加上Altair创纪录的价格——397美元(当时的庞然大物们动不动就要上万美元!),是可以创造奇迹的。比尔盖茨马上拨通了罗伯茨的电话,说他手上已经有可以在Altair上运行的BASIC,对方的回答倒是很干脆:“我已经接到了50多个这样的电话,我的回答都是一样的:谁能第一个让他的BASIC在我的Altair上工作,谁就取得了与我做生意的权力。”其实,比尔盖茨和保罗艾伦将要给Altair编写的已经不仅仅是一套BASIC语言了,因为那时的Altair还没有操作系统,所以他们的BASIC必须能够直接驱动Altair的硬件(按照本文前面的金字塔,高级语言是建立在操作系统之上的,也算是踊种应用软件),也就是说,他们的BASIC要包含操作系统的内容,看起来就象是一种“二合一”产品,就叫它“二合一”操作系统吧。这两位年轻人是决定大干一场了,可是他们手上连一台真正的Altair都没有,而电话里提到的那个BASIC更还是座空中楼阁,这个玩笑是不是开得太大了一点?他们能成功吗? |
|
返回顶楼 | |
发表时间:2008-02-07
OS演义(二)
上文说到比尔盖茨和保罗艾伦在电话中把一个空中楼阁许诺给了MITS公司的老板罗伯茨,他们面临的挑战是可想而知的,其中核心的问题有两个:第一,Intel 8080芯片的能力实在有限(当时没有几个人认为它已经强大到使BASIC语言能够正常运转),并且Altair只安装了4K字节的内存,这远远小于运行BASIC所需要的数量,这双小鞋能穿进去吗?第二,前文提到,他们手上根本没有一台真正的Altair(这时罗伯茨唯一的一台Altair正在用来到处展览,他恐怕也不想再寄第二次了),甚至没有一块真正的Intel 8080芯片(即便有,他们也不可能用它去组装一台Altair)——连上那“楼阁”的梯子都没有!可这两个小伙子呢,真是初生牛犊不怕虎,硬是以他们的胆量与天才接受了这样的挑战,开始创作他们平生的第一件“大作”。 他们在中学时就经常使用DEC公司的PDP计算机。PDP即Programmed Data Processor,可编程数据处理机,DEC公司于1960年推出PDP-1,使得用户可以花12万美元去买一台PDP,而不是花上几百万美元去买IBM的“大铁块”,自那以后,PDP系列一直在小型机市场占有很大比重,且很多学校装备的都是PDP系列的计算机。而保罗艾伦在华盛顿大学念书时,更是天天泡在机房里,所以他们对PDP计算机了如指掌,这次,他们又把哈佛的PDP-10大材小用了一回——保罗艾伦在认真研读了Intel 8080芯片的使用手册之后,根据其性能编写了一个仿真程序,用哈佛的PDP-10来模仿罗伯茨的Altair。由于他们没有用过真正的Altair,所以仿真的效果究竟怎样,要到向罗伯茨交货时才能见分晓。接下来的几个星期,他们夜以继日地工作,睡在键盘前面和地板上成了经常的事情,而醒来之后又开始不停地敲打键盘(艾伦后来说到“盖茨似乎在睡梦中也能编写程序”),这样的生活一直持续到他们的BASIC从空中降落到地面。 在这期间,他们又给罗伯茨写了一封信,以说明他们的BASIC进展情况和双方的合作方式。为了郑重起见,他们使用了自己公司的信笺(他们俩在湖滨中学一起读书时创办了交通数据公司,那时他们还不生产操作系统),可是正是这信笺出了毛病——上面的地址、电话全是湖滨中学的,当罗伯茨真的对这封信感兴趣并打电话时,情形可想而知。至于这个小误会,日后是自会解除的,当务之急还是把大脚放到小鞋里面去。 终于,在经历了五个星期的废寝忘食之后,他们有了成果——为Altair编写的BASIC已不再是空中楼阁,而是囊中之物了。盖茨的摇摆与踱步也没有白费,因为比尔盖茨说过“当我思考的时候,时常前后摇摆或踱步,因为这样可以有助于我把精力集中在一个想法上,排除干扰”。这原本属于他的个人习惯,可后来由于他在微软公司的许多崇拜者的效仿,使得多了一层企业文化的色彩。他们终于可以通过罗伯茨的MITS公司销售他们的BASIC了。在对BASIC进行了进一步的改进之后,他们俩与罗伯茨再一次取得了联系。 艾伦负责“押解”这份宝贵的BASIC,当飞机快要到达目的地的时候,艾伦发现他们的BASIC中有一段引导程序没有写,没有它可怎么进入BASIC呀!后来这一段程序是有了,至于是不是象传说中的那样是在飞机着陆的一刹那才编写完成的,就不得而知了,反正是够紧张的。在两位小伙子眼里,能够开发象Altair这种旷世之作的,一定是一家相当体面的大公司,所以艾伦在上路时穿的是自己最好的一套西服,而到机场来给艾伦接风的罗伯茨则是一身并不干净的牛仔服,至于坐骑嘛,是一辆已经开了6年的小卡车。看到艾伦的穿戴,罗伯茨也不敢怠慢,把艾伦送进了当地最豪华的一家旅店,害得艾伦晚上只好给盖茨打对方付费的电话来汇报情况了。谁也没有想到,在最初的“二合一”操作系统诞生的时候,还曾有过这样的尴尬。 第二天上午,在罗伯茨的办公室里,一台经过改进的Altair。已经连接了键盘和纸带阅读机,并且具有6K内存一切准备就绪,就等着艾伦手里的BASIC登场亮相了。艾伦还是用他们在中学时就常用的纸带阅读机来输入BASIC,它能够通过光电设备识别纸带上固定位置是否被打孔,从而“阅读”出0和1,就在他导入他们的BASIC的时候,仍然没有人知道这个在PDP-10上的自制模拟环境下编写出来的软件究竟能否工作。结果是令所有人都满意的——经过这套“二合一”操作系统的引导,Altair进入了BASIC的解释状态。此时双方都有着自己的惊讶,罗伯茨认为艾伦和盖茨的工作成果远远超出自己的期待,而令艾伦难以置信的是罗伯茨能够开发出Altair,却不能让它工作。在这一套Altair的BASIC上编写的第一个应用程序是艾伦当时随手写的一个模拟在月球登陆的小游戏(他和盖茨在湖滨中学读书时就写过类似的程序),从此,Altair真的可以使用了,计算机也真的从“贵族”走到了“平民”,个人电脑历史的序幕从此拉开,虽然BASIC语言并非盖茨和艾伦所发明而是由美国达特茅斯学院的 John Kemeny和Thomas Kurtz于1964年发明,但他们的那一套“二合一”操作系统写进了个人电脑操作系统发展的历史,虽然它只有小小的几K! 此后,盖茨和艾伦把他们的交通数据公司改名为微软公司,并且与罗伯茨签订了关于微软BASIC与Altair捆绑销售的合同,艾伦还一度担任MITS公司的软件部经理,再后来就是罗伯茨的经营策略不对头,导致了大量盗版的出现,最后MITS由于经营不善,被迫“出阁”。这期间,微软还因为版权纠纷与收购MITS的Perterc公司打了一场官司,而微软在操作系统领域的再一次动作,则是在80年代初IBM插手个人电脑市场时的事情了。 继Altair之后,个人电脑以空前的速度发展,在1977年这样的发展达到了顶峰,那时隔不多久便会有新的公司诞生,有新的机型出现,而它们大多也和Altair一样,使用“二合一”操作系统——在系统引导的时候直接加载BASIC。这其中著名的产品有我国的电脑爱好者非常熟悉的Apple II电脑,它是由苹果公司于1977年推出的,在它的只读存储器ROM中内置了苹果公司的操作系统 AppleSoft和整数版本的BASIC,如果使用磁盘驱动器,Apple II也可以用DOS 来引导,当然,这是苹果DOS,与后文讲的PC机上使用的DOS相去甚远,要是安装了针对Apple II设计的CP/M扩展卡,还可以直接用CP/M系统引导。当时很多应用软件都是基于CP/M系统的,能上CP/M系统就意味着有非常多的应用软件可供使用。除了Apple II以外,美国Tandy公司的TRS-80和前西德Commodore 公司的Commodore PET等产品也都是大家比较熟悉的。后来的Commodore VC20还在电脑网络犯罪史上有所记载。两个美国高中学生使用这种电脑非法进入ARPA Net。此网络1969年由美国国防部创办的一个全美计算机网络,最初是出于军事目的,但后来逐渐为科研和教育部门服务,并且它通常被认为是Internet最初的原形,他们成为上面的“黑客”,并且因为财产来历不明(飞机票)而被认定盗用他人的信用卡号码,从而成为第一起计算机网络犯罪案的主犯;在80年代末,又有几个德国间谍用Commodore VC20打入了美国军事部门的计算机,从那里窃取了情报。这种CommodoreVC20电脑也和当时很多的个人电脑一样,都是采用“二合一”的操作系统,这种操作系统的缺点是通用性比较差,为一个牌子的电脑编写的软件不能在另一个牌子的电脑上运行,不同牌子的电脑的磁盘格式也都不一样,它们之间唯一的共同之处在于都使用BASIC,在一些电脑公司为自己的产品装配这种“二合一”操作系统的同时,另一种通用的操作系统正在不断地发展。 CP/M——通用的操作系统 学过政治经济学的人都知道,在市场经济中有一根无形的指挥棒——价值规律,它的作用之一便是“使资源更合理地分配”。对于产品适应市场需求的厂家,这根指挥棒带来的是良性循环;越是产品适销对路,就会有越多的资金回笼和外部投资,企业占有的社会资源(资金、人才等)就越多,企业便越有能力开发、生产适销对路的产品……这样的良性循环使得企业不断地发展壮大,因为它们紧紧跟着指挥棒,没有走调;相反地,对于跟不上指挥棒的企业来说,被市场淘汰是早晚的事情。 只要是有市场存在的地方,价值规律便会起作用。这是不以人的意志为转移的,在软件领域,在操作系统领域也是如此,它直接反映到操作系统的市场占有率上。其实这也很好理解;每多卖出一个拷贝,便多占有了一份市场,同时也多回笼了一份资金。可是你要知道,对于操作系统来说,价值规律带来的经济收益还是次要的,市场占有率的大小才是生死存亡的问题。为什么呢?因为在操作系统领域也存在着一根类似的指挥棒,不过这里的曲调不是价值规律中的“符合市场需求”,而是操作系统的通用性:一个软件公司不可能生产所有的软件产品,操作系统厂商必须与应用软件厂商相互合作。一个操作系统越是通用,在它上面编写的软件就会有越多的潜在用户,这样就会有越多的应用软件厂商为这个操作系统编写软件,它上面的软件资源也就变得越丰富,而这将吸引更多的人在众多的操作系统中选择这一个,它将拥有更大的市场占有率,将变得更通用……这根指挥棒在操作系统发展的历史上屡显神威,其中第一次的收益者是CP/M操作系统的作者基尔道尔教授(Gary Kildal)。 这位基尔道尔教授原本在加利福尼亚州蒙特利市的美国海军研究生院工作,他非凡的才能使得他在同行中享有极高的声誉。而在他本人头脑中也确实有一套学者的哲学;编写复杂的程序,只是因为它要求极高水平的逻辑思维能力而难以编写,只是为了满足智力上的好奇和思维上的愉悦,而并不是为了多大的商业利润,有人把这看作是一种“舍我其谁”的自豪感;生活的最大哲学在于要活得幸福而不在于商业竞争的成败(学术地位远远要高于在商业上的作为)。对这种生活的哲学我们不好做过多的评价,但它确实在后来使得这位基尔道尔教授失掉了本世纪软件行业最大的一笔买卖。当然,在这之前,他的CP/M系统在操作系统的历史舞台上“独霸江湖”长达八年之久! CP/M系统对个人电脑操作系统最大的贡献在于它使操作系统变得通用化并且将软盘驱动器引入了个人电脑,最早使用软盘驱动器的是IBM,它于1971年在它的3740系统中采用了8英寸单面单密度软盘,所有这些,直接奠定了操作系统在80年代高速发展的基础。 同基尔道尔教授的哲学相吻合,CP/M系统最初也并不是为了商业目的而开发的,隐藏在CP/M系统背后的“推动之手”只是教授本人对于技术的好奇。 时间退回到1972年,基尔道尔教授在广告中看到了Intel公司那颗创世纪的4004芯片的宣传:“宣告集成电路新纪元:微电脑浓缩在单颗芯片上!”,再配上形象的宣传画,这在电脑还是“庞然大物”的时代是相当惹眼的。并且正是在4004的宣传中,Intel公司第一次打出了“英特尔说到做到”即Intel Delivers的广告语,90年代的广告语是Intel Inside。他用25美元买下了一块Intel 4004芯片。此时,基尔道尔教授的主要工作还是在研究生院教书,这使得他有充裕的业余时间来写些程序,并且摆弄他那颗心爱的4004芯片。他在4004芯片上做了许多的尝试,甚至还想过用它来进行单板机开发,做一种航海上使用的专用计算仪器,但最后的结论是4004还太不成熟,它的运算速度和准确性制约了它的用途。尽管如此,这位教授还是对这种微型芯片产生了浓厚的兴趣,虽然它的性能与小型机相比相去甚远,但它却可以使人的创造力最大程度地发挥,也许4004芯片正是靠这种对于好奇心和创造力的满足吸引住了这位天才的计算机教授。后来基尔道尔教授参观了英特尔公司的微处理器分部,就连这位天才的教授也对英特尔公司的技术以及效率表示惊讶,再后来,他索性在英特尔公司担任了一个顾问职务,每周花一个休息日在英特尔上班。由于担任了这样的职务,使得他更是少不了与英特尔公司的微处理器打交道,渐渐地,这位风格严谨的学者教授也变得有些象个车库创业的电脑爱好者了他简直对这小小的芯片着了迷,甚至不想再回到那“庞然大物”上去工作了。 在4004芯片发表一年以后,英特尔公司于1972年推出了比4004功能更强大的8008芯片。4004是4位芯片,而8008已经是8位的了。那时的小型机都是采用的8位或者16位的芯片,要让微处理器追赶小型机的性能,必须向8位和16位进军。作为顾问的基尔道尔教授自然也得到了样品,他便开始在8008芯片上打主意了。由于8008在很多方面还都不成熟,基尔道尔教授的很多开发工作还是在小型机上完成的。他与保罗艾伦采用的是同一种方法,即先在小型机上编写一份8008的模拟程序,然后再在这个模拟的环境中开发、调试针对8008芯片的程序。在开发过程中,基尔道尔教授搞出了在8008芯片上使用的PL/M语言,这实际是PL/I语言在8008芯片上的版本。PL/I,Program Language I,即程序语言I,一种为数值计算、数据处理和系统程序编制而设计的计算机语言,主要用于编制大型机上的程序,有了这样的语言环境,也就可以在8008芯片上开发一些象样的软件了。 当初有很多人对8008感兴趣,但大家都认为8008的性能还是太有限,不能完成什么大的工作。确实,在英特尔公司早期的芯片产品中,很少有被用作电脑微处理器的,那些芯片主要被用在诸如控制电路一类的地方,但是很快英特尔公司就于1974年推出了功能强大得多的8080芯片。从那时起,英特尔公司一直是每两年推出一代芯片。在这块开创个人电脑纪元的芯片中,增加了用作电脑微处理器所需的存储器功能,并且由于采用了新的硅片工艺,使得它的速度比当初的4004快了20倍。8080好象一把钥匙,开启了个人电脑世界的大门,它的推出引起了无数人的兴趣,他们中有为之编写BASIC的盖茨和艾伦,有设计Altair的罗伯茨,当然,也有开发CP/M系统的基尔道尔教授。 由于在PL/M语言上的贡献,基尔道尔教授得到了英特尔公司的一台以8080芯片为微处理器的小电脑、一台监视器和一台高速纸带阅读机。其实在很早的时候,英特尔公司就自己生产电脑产品,但不叫个人电脑,而叫“蓝箱子”,并且销售对象也不是电脑爱好者,而是卖给那些采购8080芯片的厂商,作辅助开发之用,此时基尔道尔教授认识到,要编写一套操作系统让电脑干活,就必须有一套有效的存储设备,而当时的选择不多:纸带阅读机、磁带机或者是磁盘驱动器,最后基尔道尔教授选择了磁盘驱动器,这种方式我们今天仍然在使用。但是要让磁盘驱动器工作,在硬件上还需要一个磁盘控制器,这个控制器的设计工作是由别人来完成的,基尔道尔教授则花了几个星期的时间搞出了CP/M系统的雏形——用他自己的PL/M语言编写的。最后,磁盘部分被完美地加入了这个操作系统,想来想去,基尔道尔教授把它命名为CP/M(Control Program for Microcomputer,微型计算机控制程序)。此时的CP/M已是一个“五脏俱全”的磁盘操作系统了,它已能够对下面的硬件二进制军队进行良好的指挥。 CP/M是当时最好的操作系统,并且由于可以在所有以Intel 8080芯片为微处理器的电脑上使用,它在先天上就具备了成为行业标准的素质。后来,基尔道尔教授为了销售他的作品,在妻子的劝说下,成立星际数字研究公司,后更名为数字研究公司(Digital Research,即DR——记得90年代曾流行一时的DR DOS 6.0 吗?)。当时,基尔道尔教授并没有意识到他的CP/M是多么伟大的一件作品,在商业上也没有想让它成为操作系统市场的“老大”,所以最初的定价低得惊人——他的第一个客户为了得到CP/M的许可证只花了90美元!一年之后,这个许可证涨到了两万美元以上,但还是有很多公司来买,因为CP/M确实是一套非常好的操作系统,并且这个价钱仍然使他们有利可图,于是,有越来越多的公司销售CP/M系统,其市场占有量也就越来越大,应用软件厂商也就更愿意为这套操作系统开发软件……于是就有了前文提到的那个良性循环,CP/M刚好跟上了指挥棒下的曲调。 在CP/M成为操作系统市场霸主的过程中,一家名为救生艇协会(LifeBoat Associates)的软件经销商起了相当大的作用;它为基于CP/M系统的应用软件提供了一个通畅的销售渠道。当CP/M系统刚开始流行的时候,这个救生艇协会还只是CP/M用户的一个俱乐部,后来开始做软件的销售工作,并且组织出版了基于CP/M系统的软件目录,很多开发CP/M软件的厂商最初就是通过这个软件目录销售他们的软件产品。在这些厂商中,包括后来以操作系统获得迅速发展的微软公司,那时微软的主要产品还是它的程序语言系列,前文提到,它的BASIC有其独到之处,能够完成一般操作系统的功能,但其它的产品,比如Fortran和COBOL语言,都属于严格的应用软件范畴,即需要一个操作系统在下面支持,而微软选择的操作系统正是基尔道尔教授的CP/M系统,救生艇协会帮助这些厂商销售基于CP/M的应用软件,在良性循环中起了良好的推动作用。 在良性循环过程中,CP/M系统的版本也在不断地更新:1973年最开始的版本叫做1.3,1975年的1.4版本使CP/M登上了“霸主”的地位,此后,一方面继续更新版本,先后搞出了CP/M 2.0和CP/M 2.2,另一方面发展了CP/M的大家族——基于Intel 8080和Zilog Z80芯片的版本叫做CP/M-80,后来出现的基于Intel 8088和8086芯片的版本叫做CP/M-86,基于摩托罗拉68000芯片的版本叫做CP/M-68K,除此之外,还有多用户的MP/M-80、MP/M-86等产品,俨然一个坚不可摧的大家族。 在当时的个人电脑厂商中,有的购买通用操作系统(其中CP/M在高峰时占领了90%的市场),而另一些则保留自己的操作系统(前面提到的苹果和Commodore等公司就是如此),CP/M不仅争得了通用操作系统市场的头把交椅,还向那些保留自己操作系统的电脑展开了攻势。这其中最著名的要数针对Apple II电脑的Apple II转换卡了,其实,这并非基尔道尔教授所为,而是一些为CP/M开发软件的应用软件厂商觉得放曲Apple II市场实在太可惜,于是便开始琢磨怎样才能把基于CP/M的软件搬到AppleII电脑上来使用,对于Apple II电脑的用户而言,如果能够使用CP/M系统下的应用软件,无疑手里的机器将会有更大的价值。既然双方都愿意,又何乐而不为呢?当时微软有很多产品都是基于CP/M系统,于是保罗艾伦,找人设计了一种Soft Card的APPLE II软件转换卡,即通常所说的Z80卡,这种卡上带有Z80处理器,能够接管Apple II的总线控制权、内存地址变换以及接口分配等。Zilog公司的Z80是与Intel 8080兼容的芯片,其实Zilog公司的创始人费根(Federico Faggin)原本是英特尔公司从4004到8080芯片开发的功臣,后来自己跳槽单挑一摊,成立了Zilog公司(在名字中取一个Z,有一种空前绝后的意味),他的Z80芯片是Intel 8085芯片(8080的后继产品,最初的8080芯片需要8224、8228两块芯片的支持,而这三者在8085中被集成到了一起)的一种改良版,曾与8085在市场上有过竞争,结果是使得它们成为市场的标准(这两者本身是互相兼容的),也加速了CP/M成为市场标准的过程,只可惜Zilog后继乏力,不久便从市场上消失了。这种转换卡推出以后,立即成为畅销品,第一年便卖出了两万五千块,到80年代初,共有十万多台Apple II安装上了这种转换卡。这样一来,AppleII反而成了拥有最多CP/M用户的机型。 CP/M的成功简直象一个神话,它在作者基尔道尔教授的不经意之间成了8位机操作系统的行业标准,并且统治市场长达八年之久,直到蓝色巨人IBM于80年代初从16位机开始插手个人电脑市场。其实基尔道尔教授完全有机会让CP/M继续称霸操作系统市场的,但是这一次他没有跟上指挥棒的节奏。在70年代操作系统称霸的CP/M,在即将到来的80年代里是稳坐江山呢,还是被扫地出门? |
|
返回顶楼 | |
发表时间:2008-02-07
不继续转帖,感兴趣的看1楼的附件吧
|
|
返回顶楼 | |
发表时间:2008-02-07
大软还活着..不过现在专业游戏了..
|
|
返回顶楼 | |
发表时间:2008-02-07
计算机专业有一门操作系统课程,这个小文可以看做是个科普介绍
|
|
返回顶楼 | |
发表时间:2008-02-07
BIOS再去告诉CPU该计算什么数据,告诉显示器在哪一个点该显示什么样的颜色,告诉硬盘……命令越往下传,分得越细、也越多,直到最后以二进制的方式被硬件执行
--------- 这里貌似不对的. BIOS其实不管如何显示,如何转硬盘的磁头, BIOS只知道,哦,你要用磁盘,来吧,磁盘自己看着办.起作用的是firmware |
|
返回顶楼 | |
发表时间:2008-02-07
它们之间唯一的共同之处在于都使用BASIC,在一些电脑公司为自己的产品装配这种“二合一”操作系统的同时,另一种通用的操作系统正在不断地发展。 ---- 这大概是虚拟机的雏形吧?
|
|
返回顶楼 | |
发表时间:2008-02-07
os用我qq聊天经常用,读出来是“窝屎”,,也就是,,,拉大便……
|
|
返回顶楼 | |
发表时间:2008-02-09
大众软件现在编程游戏软件了吧
|
|
返回顶楼 | |