现代操作系统 中文

所需积分/C币:50 2016-04-27 16:33:08 27.46MB PDF
收藏 收藏
举报

现代操作系统,中文版
我们将研究许多关于抽象的内容,因为这是理解操作系统的关键 上述观点是非常重要的,所以值得用不同的表述语句来再次叙述。怀着对设计 Macintosh机器的工业 设计师的尊重,作者这里不得不说,硬件是丑陋的。 真实的处理器、内存条、磁盘和其他装置都是非常 应用程序 复杂的,对于那些为使用某个硬件而不得不编写软 件的人们而言,他们使用的是困难、可怕、特殊和 不一致的接口。有时这是由于需要兼容旧的硬件, 幽 美丽接口 有时是为了省成本,但是,有时硬件设计师们并 操作系统 没有意识到(或在意)他们给软件设计带来了多大 的麻烦。操作系统的一个主要任务是隐藏硬件,呈 现给程序(以及程序员)良好、清晰、优雅、一致 m丑陋接口 的抽象。如图1-2所示,操作系统将丑陋转变为美丽 硬件 需要指出,操作系统的实际客户是应用程序 当然是通过应用程序员)。它们直接与操作系统及图12操作系统将陋的硬件转变为美丽的抽象 其抽象打交道。相反,最终用户与用户接口所提供的抽象打交道,或者是命令行she者是图形接口。 而用户接口的抽象可以与操作系统提供的抽象类似,但也不总是这样。为∫更清晰地说明这一点,请读 者考虑普通的 Windows桌面以及面向行的命令提示符。两者都是运行在 windows操作系统上的程序,并 使用了 Windows提供的抽象,但是它们提供了非常不同的用户接凵。类似地,运行 Gnome或者KDE的 Linux用户与直接在 X Window系统(面向文本)顶部上作的 inux用户看到的是非常不同的界面,但是 在这两种情形中,操作系统下面的抽象是相同的。 在本书中,我们将具体讨论提供给应用程序的抽象,不过很少涉及用户界面。尽管用户界面是一个 巨大和重要的课题,但是它们毕竞只和操作系统的外围相关。 1.1.2作为资源管理者的操作系统 把操作系统看作是向应用程序提供基本抽象的概念,是一种自顶向下的观点。按照另一种自底向上 的观点:操作系统则用来管理一个复杂系统的各个部分。现代计算机包含处理器、存储器、时钟、磁盘 鼠标、网络接口、打印机以及许多其他设备。从这个角度看,操作系统的任务是在相互竞争的程序之间 有序地控制对处理器、存储器以及其他O接口设备的分配。 坝代操作系统允许同时运行多道程序。假设在一台计算机上运行的三个程序试图同时在同一台打印 机上输出计算结果,那么开始的几行可能是程序1的输出,接着几行是程序2的输出,然后又是程序3的 输出等,最终结果将是一团糟。采用将打印结果送到磁盘上缓冲区的方法,操作系统可以把潜在的混乱 有序化。在一个程序结束后,操作系统可以将暂存在磁盘上的文件送到打印机输出,同时其他程序可以 继续产生更多的输出结果,很明显,这些程序的输出还没有真止送至打印机。 当一个计算机(或网络)有多个用户时,管理和保护存储器、IO设备以及共他资源的需求变得强 烈起来,因为用户间可能会互相T扰。另外,用户通常不仅共享硬件,还要共享信息(文件、数据库等)。 简而言之,操作系统的这一种观点认为,操作系统的主要任务是记录哪个程序在使用什么资源,对资源 请求进行分配,评估使用代价,并且为不同的程序和用户调解互相冲突的资源请求。 资源管理包括用以下两种不同方式实现多路复用(共享)资源:在时间上复用和在空间上复用。当 种资源在时间上复用时,不同的程序或用户轮流使用它。先是第一个获得资源的使用,然后 下一个 以此类推。例如,若在系统中只有一个CPU,而多个程序需要在该CPU上运行,操作系统则首先把该 CPU分配给某一个程序,在它运行了足够长的时间之后,另一个程序得到CPU,然后是下一个,如此进 行下去,最终,轮到第一个程序再次运行。至丁资源是如何实现时间复用的—谁应该是下一个以及运 行多长时间等—则是操作系统的任务。还有一个有关时间复用的例子是打印机的共享。当多个打印作 业在一台打印机上排队等待打印时,必须决定将轮到打印的是哪个作业。 另一类复用是空间复用。每个客户都得到资源的一部分,从而取代了客户排队。例如,通常在若干 运行程序之间分割内存,这样每一个运行程序都可同时入住内存(例如,为了轮流使用CP)。假设有 第亨 足够的内可以存放多个程序,那么在内存中同时存放若千个程序效率,比把所有内存都分给一个程 斥的效*要得多,峙别是,如果一个程序只需要整个内存的一小部分时,结果吏是这样。当然,如此 的做法会引起公平、保护等闩题,这有赖于操作系统解决它佾。有关空间复用的其恤资源还有磁盘。在 许多系统「,—个磁盘同时为忤多用户保存文件。分配磁盘空间并记录谁正在使用哪个磁盘块,是操作 系统资溯管理的典型仁务。 1.2操作系統的历史 操作系統已经存在许多年T。木下而的小节中,我们将简要地分析一些操作系统开史上的孟要之处。 操作系统与其所运行的计算机体系结构的联系非常密切。我们将分析连绩几代的计算机,看看它们的搜 仵系统是什么样的。把操作系统的分代怏射到计算的分代上有些粗糙,但足这栏倣确实有某些作用 否则还没有其他奷办法能够说清楚操作系统的历史。 卜面给出的有关操作系统的发展主要是按照时刮线素舰述的,且在时间上是有叠的。每个发展并 不是等到先前一种发胀完成后才开始。存在着大量的重叠,不用说还存在有不少虚慑的扦始和终结时间 请类者把这里的文字叙看成是一种指引,而不是盖棺论定 第一台真正的数计算机是英武数学家 Charles babbage(1792-1871)设计m。管 Babbage花费 ∫也几乎一小的时间灿财产,试图建造他的“分析机”,但是他始终末能让机器正常运转.因为它是 台纯杋械的数宇计算几,他所在时代的枝术不能生产出他所要的高精度轮子、齿轮和抢牙。亳无疑 问.这台汙析机没有操作系统 有一段有趣的史花絮, Babbage认识到他的分析机需软件,所以他底佣了个名为Ada LOvelace的年轻幻女,作为世上第、个程序员,而她是著名的英国诗人 Lord byron的女儿。程序设计 语吉Ada则是以她命名的。 121第一代(1945-1955):真空管和穿孔卡片 从 cabbage失败之后一且到第∵次世界大战,效字计算机的建造几乎没什么展,第二次世界大 成刷了有关计算机研究的爆炸性开。w州立学的 hu asanas教授和他的学生 Cliford Berry 建迨了捃认为是第一台可工作的數宇计算机ε该机器使用了300^真營。大约在同时, Konrad use狂 柏林用继电器构建∫Z3计算机,英格兰布粜利园的一个小组在1944年焖建∫CQ!osus, Howard aiken 在哈佛大学速造」Mrk1,宾夕法尼业大学的 William Mauchley和他的学生 Presper Eckert建造了 ENIAC。这些机器有的是二迷間的,有的使用真笮賢,有的是可编程的,但是非管原始,甚至需要花 费数秒时同才能完成最单的运算。 在那个早期年代里、同一亼小组的人〔通常是上稞师们)设计、建造、编稆、撅作并维护·台机器 所有的程庠设计是用粹的机盎语言编写,甚至吏*糕,需要通过将上千根电缆接到插件板上连接成 电路,以控制机器的基本功能。没有晨序设计语言(甚至汇編培言也没有),操作系统则从来没有听 悦过。使用机器的一般卢式是、程序员在墙上的扎时表上预约一段时间,然后到机房中将他的括件板接 到计算机里,在接下来的几小时里,期扮正在运行中的两万多个真空管会烧坏。那时,所有的计算问 题实际都只是简单的数运算,如制作正弦,乐弦及对数表等。 到了20世纪50年代早期有了改进,出了穿孔卡片,这时就可以将程序写在片上,然后读入计算 机而不用拍代板,佤其低过程刺依然如旧。 22第二代(1955-1965):晶体管和批处理系统 如世氾5年代晶伓管的发明极大地改变了整个状况。计算杌已经很可靠,厂商可以成批地生产扦销 售计算机给用户,用户可以指绿计算机长时可运行,完成一些有判的工作。此时,设计人员.生产人员 操作人员、根人员和维护人员之间第一次有∫明确的分工 这些桃器,现在被称作大型机( mainframe),锁在’专用空诃的房闾中,由专咂操作人员运行。只 有少数大公司、重要的政府部门或大学才接受数白万关元的标价。要运行一个作业:job,即一个或 组程序),积员首先将序在纸上(用 FORTRAN语言戏汇柴语音),然后穿扎成卡片,雨将卡片盒 带到输入室,交给操作员,接着就喝咖啡直到输H完成 计算村运行完当前的任务后,其计算结果从打即机上辎出,操作员到打印机上撕下运算结果并送到 输出室,程锌员稍后就可取到结果。然后,操作员从山送到输人室的卜片盒中读人另 生务。如果需 要 FORTRAN编详器,荣作员还要从文件柜把它取来读入计算机。当操作员在机房里走米走去时许多机 时被浪费掉了。 H丁当时的计算机非常昂贵,人们很自然地要想办法减少机时的浪费。通常采用的解决法就是批 处理系统〔 batch systerm)。其思想是:在输入室收集全部作业,然后用一台对便宜的讣算机,如 IBM1401计算机,将它们读到磁带上。IBM1401计箅机适用于读卡片、复制磁带和输出打印,但不适 用于数值算。另外用较昂贵的计算机,如IBM7094来完成真正的计算。这些悖况如图1-3所 输入 输出 磁帮机 磁带系统碰带磁骷 读卡机 H图 打印札 1401 1401 佟3一种早期的批处翔系统:8程序员将卡片食到1401机处:b)1401机将批处理作业读到磁带上 e)操作员将人入带送至94积,d)70%4机进行计算;c)操作员将繪出磁带送到1401机:1401机打印输出 仼收集了大约一个小时的扯量作业之后,这些片被读进磁带,然后磁带被送到机房里并装到磁带 机上。随后,操作员装入一个特削程序(代譟系统的前身),它从磁带上读入一个作业升运行, 其输出写到第二盘碰」;而不打印。每个作业结束后,操作系统白动从磁带上读入下一个作业并运 行。当一批阼业完全结末后,馍作员取下输廴和输绀磁對,将翰入嵫带换成∮一玭作业,并把輪出磁带 拿到一台140机器上进行脱机〔术与主计算礼联机)打卬。 典型的输人作业结构如图1-4所示。一开始是弦SJOB卡片,它标识出所需的最大运行时间〔以分钟 为单位)、计费账号以及程序贯的名字。接着是$ FORTRAN卡片,通知操作系统从系统磙带上装人 FORTRANⅰ吉编译器。,之后就是待編评的源程序,然后是$OAD卡片,通知操作系统装入骗评好的 标程序。接着是$RUN卡片,告诉操仵系统运行该程序并使用随后的数据。最后,$ND卡片标识作业结 束。这些湛本的控制卡片是现弋shel和命令解释器的先驱。 SENL 程序的数 岁HLN LOALY 二 FORTRAN稈序 FORTRAN B,·016102ARN下 ANENB4 图14典型的EMS作业结私 第二代大型计算札主窭用于科学与工程计算,例如,解偏微分方程。这些题目大多用 FORTRAN语 言和礼编语言编写。典型的操伫系统是FMS( ORTRAN Monitor SysteⅢ, FORTEAN监控系统)和 第!章 IBSYS(1BM为7094机配备的提作系统) 123第三代(1965~1980)g集成电路芯片和多道程序设计 20世纪60年代初謝,大多数计算机“商都有两条不同并且完全不兼容的生产线。-条是面向宇的 大型的科学用计算机,诸如Mπ4,主要用于科学和工程计算。另一条是而向字的、商用计算机 如BM1401,银行和保险公司主要用它从事磁带归档和打印服务 开发和维护两种完全不同的产品,对厂来说是昂贵的。另外,许多新的计算村用户·开始时只需 要一台小计算机,后来可能又耑要一合较大的计算机,而且希望能够更快地执行原有的程序 IBM公司试图通过兰入 System/360来一次性地解决这两个问题。360是一个软件兼容的计算机系列 其低档机与I41相当,高档机则比7094功筢强很多。这些计算枳只在价格和性能(大存储器容量、处 哩器速度、允许的IO设备数量竽)上有差昇。由丁所有的计算机都有相司的体系结灼和指令集,因此, 在烨论上,为一种型号机器编写的程序可以在其他听有型号的忛器上远行。而且36被设计成既可川于 科学计算,又可用于肖业计算:这样,一个系列的计算机佣可以满所有用广的要求。在随后的儿年里, IBM使用更现代的技术陆续推出了360的绥机型,如著名的370、4300、308和3090系列。∠Seri是这 个系列的最新机型,不过它与早期的机型桕比变化非常之大 360是第一个采用(小规標〕芯片〔集成电路〕的主流机型,与采用分立品休答制造的第二代计算 机相比、其性能/价格北有很大提高。360很快就荻得了成功,其他主要厂商也很快采纳了系列兼容机的 思想。这华计算机的后代仍在大型的计算中心里使用。现在,这些计算机的后代经食用来管理大型数 库(如航无定票系统)戍作为web站点的服务器,这些服务器铄渺必须理数千次的请求 “单一家族”思想的最大优点同时也是其最大的缺点。原在于所有的软件,包括操作系统OS360 要能够在有机器上运行。从小的代替1401把片复制到磁带上的机器,到用于代替7094进行气象预报 及其他鰲重汁算的大型机;从只能带很少外部设备的机器到有很多外设的机器;从商业领域到科学计算 领域等。恩之,它要有效地适用于所有这些不同的用途 IBM〔或其他公可〕无法写出同时满足这些柜冲突需要的坎件。其结果是一个庞大的又极其复杂 的梹作系统,它比FMS大∫约2一3个数量级规模。其中包含数千名程序员写的数百万行汇编语言代码 也包含成千上万处钳误,这就导致IBM不晰地发行新的版本试逐更正这些错误。每个新版本在修正老锆 误的同吋又引人了新错误,所以随着时间的流逝,错误的数量可能人致保持不变。 OS/360的设计者之一 Fred brooks后来写过一4既诙谐又尖毙的书〔 Brooks,1996),描述他在开发 Os1360过程中的经验。我们不可能在这里复述该书的全部大容,不过其封面已经充分表述了 Hied Bruk 的观点,-群史前动物陷入泥潭而不能白按。 Silberschatz等人著作(2005)的封面表达了操作系统如 后恐龙-·艘类似观 抛开05360的庞大和存在的问题,OS}361和其也公司类似的第三代操作系统的确合理地满足了大 多數用户的要求。同时、们使第二代操作系统所皱乏附几項关锉技术得到了广泛成用。其中最重要 的应该是多道程庠设计( multiprogramming。在4机上,若当前作业 因等待磁带或其他○操作而暂停时,CPU就只能简单地踏步直至该I/O 作业3 戌。对于CPU操作密集的科学计算问题,IO操作较少,因此浪费的时闬 作业2 很少。然而、对于商业数据处.I操作法的时间通常占到8%~90 所以必须取某种措崺少(昂贵的)CPU空阑时闩的浪费。 作业1 分区 解决方案是将内存分几个部分,每一部分存放不同的作业,如图15 操作系铣 所小。当一个作业等往O操作完成时,另一个作业可以使用CPU。如果 内存中可以同时存放足像多的作业,则CPU利用率可以接近109%。在内图1 个内中有三个作 存十同时犹留多个作业需要特殊的硬件来对其进行保护,以避免作业的信 总被窃取或受到攻击。360及其他第三代计算机都配有此类硬件 业的多道程序系统 第一代计算机的另·个锊性足,卡片被拿到机房后能够很快地将作业从十片读入盘。」是,任何 时刻当一个作业运行结朿时;澡作系统就記将一个新作业从磁盘读出,装进空出来的內存冈域运行。这 种技术叫做同时的外部设备联札搡作( Simultaneous Peripheral Operation On Line, SPOOLing),该技 杙同时也用于输出。当来用∫ SPOOLin技术后,就不再要BM1401积,也不必再将磁带来搬去了 第三代操怍系统很适于大型科学计算和繁忙的商务数据处理,但其实质上仍旧是批处系统。许多 茌序员很怀念第一代计算机的佳用式。那时,他『可以几个小时地独占一台机器,可以即附地调试他 们的程序,而对第二代计算机而高,从一个作业提交到运算结果取回往往长达数小叶,更专甚者,一个 逗号的误用就会导致编译失败;而可能浪费了程序员半天的时间。 程序员们的希望很快得到了响应,这种需求导致了分时系就( timesharing)的出现。它际上是多 道程序的一个变体,毎个用户都有一个联机终端。在分时系统中,假设有20个用户登录,其中17个在思 考,谈讼惑喝咖啡,则CU可分配绐其他三亼需要咝作业轮流执行。出于调试程序的用户堂常只发出简 短的命令〔如編评·一个五贞的源文件),而狐少有长的费时命令(如上百万条记录的支件排序),所以计 箅机能够为许多用户提供快速约交互式服务,同时在CPU空时还可能在后台运行个大作业。第一个 通用约分时统,兼容分时系銳(Coπ patibie Time$ haring System,CTSs)是MI{麻省理工学院)在 改装过的7094机上严发成功的( Format等人,1962年}。但直到第三代计算机广泛采用了必需的保 护硬吽之后,分时系统才逐渐流行开来a 在CTSS成功硏制之后,MT、风尔实验宝和通用电气公司(GF,当时一个主要的计算制造丿商 决定开发一种“公用计算服务系统”,能够同时芠桲数百名分时用户的一种机器。它的模型借鉴了供电 系统一当要电能时只需将电气设备接到墙上的插座即可,于是,在合哩范内,所需要的电能随 时可提俱。该系统称作 MULTICS( MULTiplexed Information and Computing Service),其设计者着眼 于建造满定波土顿地区所有用户计算需求的→台机器。在当时看来,仅攵40年之后,就能成百万台地销 售(价值不到1千美元)这度是-645主机10000倍哟计算机,完全是科学幻想。这种想法同现在关于 穿越大西洋的超音速海底列车的想法一样,是幻想 MULTICS得到一种混合式的成功。尽答这台机翠具有较强的O能力.却要在一台仅仅比Intl386 PC性能强一点的机器上支持数百个用户。可是这个想法并不像表面上那么笼唐,因为那时的人们已经知 道如何编与精练的高效猩序,而这种技巧随后逐渐丢失了。有许多原因造成 MULTICS没有能够普及到 全世界,少它不应该釆用PL編写,因为P八编译推迟了好几年才完成,好不容易完成的编译器又 极少能够成功运行。另外,当时的MTCS有太大的野心,犹如9世纪中期 Charles babbage的分析机。 简要地说, MULTIC$在计算机文献中播撤了许多原创的概念,但要将共造成一台真正孔器井想 实现商业上的巨大成功的研制难度超出了所有人的预料。尔实验宝退出了,通用电气公司乜退以∫计 算杌领域。但是MT坚持下来并且最终使 MULTICS成功运行。 MULTTICS最后成为断业产,出购买 了通升电气公司计算机业务的公司( Honeywell)销售:并安装在世界各地80多个大型公司和大学中。 尽管 MULTICS的数量很小,但是 MULTICS的用户们却非常忠诚,例如,通用汽车、福特和美国国家安 全忌直到20廿纪代后黠,在试图让 Honeywell更新其硬件多年之后,才关闭了他们的 MULTICS系统, 而这已经是在 MULTICS推出之后30年了。 日前,计算服务的概念已经坡遗弃,但是这个概念是可以回归的,以大量的、附有相对单用户机 器的、集中此 interne服务器形式回归。在这种形式中,主要工作在大型服务器上完成。而回归的动机可 能是多数人不愿意管埋日盎过分复杂的计算机系统,宁可让那些运行服务器公司的专业团队去妆。电子 商务已经向这个方向演北了,各种公司在多处理器的混务器⊥营各自的电了商场,倚单的客户端连接 着多处理器服务器,这同 MULTICS的设计精神非常类似。 尽管 MUTICS在商业上失败了2但MUCS对随后的操作系统却有着巨大的影响:详情请参阅有 关文献和书籍( Corbate竽人,1972: Corban6和 yssotsky,1965, Daley和 Dennis,1968; Organick, 1972;Saltzer,t974)。还有一个曾经(现在仍然)活跃的web站点www.ullicians.org,上面有人量关 于系统、设计人员以及其用户的信息资料 另--个第三代计算机的主要进展是小型机的崛起,以1961年DEC的PDP1作为起点。PDP1计算机 只有4K个18位的内存,每台传价12000美元(不到IBM7094的5%〕,该机型非常热销。对于某些非数 值的计算,它和7094几乎一样快。PDP1开辟了一个全新的产业。很快有了一系列PDP机型〔与BM系 列机不同,它们互不兼容},其顶峰为PDP1] 第l 位瞥参加过 MCETICS研制的贝尔实验室计算机科学家 Ken Thompson,后来找到一台无人使用的 PDP7机器,并廾始廾发一个倫化的、单用户版 MUJLTECS。他的工作后来导致了UNX操作系统的诞生 接着,UNX在学术界,政部门以及许多公司中流行 有关UNIX的历史到处可以找到(例如Salu,1994)。这段事的部分放在第0章中介绍。现在, 有充分理由认为,出三到处可以得到源代码,各种构发展了自己的(不兼容)版本,从而导纹了混乱 UNIX有两个要的版本,源自A&T的 System v,以及源自加州伯克利大学的BS( Berkeley Sulla Distribut:on)。当然还有…些小的变种。为了使编的程序能够在任何版本的UNX上运行,[EE提出了 一个UNDX的标谁,称性POSX,山前大多数UNX版本都持它。 POSI定义了…个凡是UNX必须支 持的小型系统惆用接」。事实上,杲些其低操作系统也支持POS]X接凵 顺使值得一提的是,在197年,本书作者发布了一个UNX的小型克隆,称为MNX,用于教学目 的。在功能卜,MNX非常类似于UNx,包括对P∩SX的支持。从那时以后,MNJX的原始版本已 演化为MNIX3,该系统是高唼模块代的,并专注于高可靠性。它具有快速检测和替代有放障甚至已崩 澧模块(如/O设各动器)的能力,不用重启也不会下扰运行着的程序。有一木述其内部操作,井 在附录中列出源代码的书《℃ anen baut和 woodhull2006),该书现在仍然有售。在特网的地址wWw minx3上、MNX3是免费使用的(包括∫所有源代码 对UNX版本免费产品【不同于教育目的)的愿望,导致芬兰学生 Linus Torvalds編写了 Linux。这 个系统直接受到在MIⅠX开发的启示;而且原本支持各种 MINIX的功能(例如MNX文件系轨)。尽管 它已经通过多种方式扩展,但是该系统仍然保留了某些与MNX和UNIX共同的低结构。对Lnux和开 啟源码运动其体历史毖兴趣的读者可以阅读 Glyn Moody的书籍(2001)。本书所叙述的关UNX的多 数内容,也适用于 System V,MINⅨX、Limx以及UNX的其他版本和克隆。 124第四代《1980年至今):个人计算机 随肴LSI(大规模集成电路)的发展:在毎平方厘米的硅片芯片上可以集成数千个晶体管,个人计 算杋时代到来了。从体系结枃上看,个人计算杋(最早称为微型计算机〕与PDP-11并无二致,但就价格 而言却相去甚远。以往,公的一个部门业大学里的一个院系才配备一兮小型机,而微处理器却使每个 人都能拥有自己的计算残。 1974年,当Itel8080,第一代通用8位CPU出现时, Intel希望有一个用于808操作桑统,部分是 为了测试月的。 Intel请求其顾问 Gary Kildal输写。Kid叫l位明首先为新推出约 Shugart Associates 8寸软盘构造了个控制器,并把这个软酸盘同880相连,从而制造了第一个配磁盘的微空计算机。 然后Klda它写了一个基于磁盘的操作系轨,称为CPM( Control Program for Mie-ucoImputer)。出于 Inl不认为基干磁盘的微型计算机有什么木来前景,所以当Klda1要求CPM的版权时,Inel同意『他的 要求。 Kildall于是组建了一家公可 Digital Research,进步开发和销售CPM。 1977年, Digital Research写了CPM.使其可在使用8080、zig280以及其他CPU芯片的多种 微型计算机上运行,从而使得CPM完仝控制了微犁计算机世界达5年之久。 在20纪80年代的早期,邛BM设计! IBM PC疒寻找可在上面运行的软件。来白IBM的人员同Bl Gate s联系有关他的BAsC解释器的许可证事宜,他们也询冋是否他道可在PC机上运行的操作系绕 Gates建议IM同 Digital Reseal联杂,即瀏时世界上主宰操作系统的公司。在做出毫天疑问是近代历史上 最糟的商业决策后, Kildall拒绝与BM会见,代替他的是一位次要人员。为了使事情吏糟糕、他的律甚 至拒绝签磐佀M的有关尚未公开的PC的保密办议。结果,IBM回头询向 Gates可否提供他们一个操作系统 在IBM返画时,Gaes了解到一家本地计算机制造商, Seattle Computer Products,有合适的操作系 统DOS( Disk. Opera乱 ing Systetm)。他联系对方井提!购买(宜称7500美元),对方接受了。熱后Gae 提供给IBM成套的 DOS/BASIC;BM也接受了。IM祇望做某些修改,予是Gae佣了那个s的 作者, Tim paterson,作为Gaes的微软公司早期的个雇员:并井展工作。修改版称为Ms-DOs ( MicruSuIt Disk Operating Syalcm},并且很快主导 rIBM PC市场。同 Kildall试图将CPM每次卖给用户 个产品比(至少开始是这样),这里一个关键因泰是 Gates(冋啊起*,极共聪明)的决策,将Ms DOS与计算机公司的硬件梱绑在一起出售。在所有这一切烟消云散之后, Kildall突然不幸大仕,其原因 引论 从米没有公布过 1983年, IBM PC后缤机型 IBM PC/AT推出,配有ie806CPL。此时,Ms-DOS氏经确立了地 位,而CPM只剩下最后的攴掉。MSDO后米在80386和80486中得到广泛的应用。管 MS-DOS的早 期版本是当原始的,但是后期的版本提供∫吏多釣先选功能,包括许多源自UNX的功能。〔微软对 UNⅨ是如此娴熟,甚至在公小的早期销售过一个微型计算机版本,称为XFNX)。 肘于早期微型计算机的CPM、MS-DDS和其他操作系统,都是通过键盘输入命令的。山于Doug Engelbart于2世纰60年代在斯坦福研究院 Stanford researc institute)工作,这种情况最终有了改变 Doug Engelbart发明了图形用户界面,包括窗凵,图标、菜单[及鼠标。这些思想被 Xerox PARC的研究 人员采用,并用在了他们所研制的机器中。 一天, Steve jobs(和共他人一起在汽4库里发明了苹果讨算机)访向PARC,Jbs一看到GUI,W 即意识到它的潜在价值,而Xex管理层恰好没有认识到。这种战路失误的庞大比例,导致名为《摸素 末来》一书的出版〔Smih与 Alexander;198年)Jm阬后着手设计带冇GI的苹果计算机。这个项 目导致了isa的准出,佤是Lisa过于昂贵,所以它在商业上失败了。Jobs的第二次尝试,即荜果 Macintosh,取得了巨大的成功,这不仪是因为它比Lia便宜得多,而亡还是对用户友好的(user Friendly),也就是说,它是为那坛不仅没有计算机知识,而且也艰本不打算学丬计算机的用户们准备的 在矧象设计、专业数码長影,以及专业数字视频生产的创意世界里, Macintosh得到广泛的应用,这些 用户对苹果公司及 Macintosh有着极大的热情。 在微软决定构建MS-DOs的后继产品时,雯到∫ Macintosh成功的巳大影响。微软开发了名为 Windows的基于(U的系统,早期它运行Ms-层(它更像she而不像真正的操作系统)。在从 1985年至19954的10年之问, window其是在 MS-DOS上层的一个图形境。然而,到了1995年,一个 独立 window版本,具有许多换作系统功能的wndw9发布了。 window95仅仅把底层的MSDS 作为启动和运行老的MS-DO程序之用。1998年:一个稍做絛改的系统, windows98发布。不过 Wⅲws95和 Windows98仍然使用∫大量16位 Intel编语吉。 另一个微软操作系轳是 WindOws Nt(NT表示新技术),它包-定的范围内回 windows95容,但 是内路是完全新编写的。它是一个3位系轨。 Windows NT的首席设计师是 Dayid cutler,他也是x VMS操作系轨的设计师之一,所以有些VMS的概念用在了NT土。事实上,NT中有太多的来白ⅤMS的 思想所以VMS的所有砻DEC公司控告了微公司。法院对该案件判决的结果引聞了…大笔需奠用多位 数字表达的金钱。微软公司期待NT的第一个版本可以消灭 MS-DOS和其他的 Windows板本,因为Nr是 个巨大的超级系统,但是这个想法失败了。只有 Mindows nt40踏上了成功之政,别在企业网络方 面取得了成功。1999年初, windows nt50改名为Wndw200。{软期望它成为wdws98和 Windows Nt40的接替者。 不过这两个方面都不太成功,于是微软公哥发布了 windows98的另一个版本,名为 Windows Me 千年版)。2001年,发 windows200的一个稍圳升级的版本,称为 Windows X。这个版本的寿命 比较长(6年〕,基本上替代 f Windows所有厨先版本。在2007年1月,微软公司发布了 windows XP的后 继版,名为Wsa。它有一个新的到形接凵Aer,以及许多其他新的成升级的用户程序。微轨公可希望 Vsa能够完全替代XP,但是这个过程可能需要将近十年的时间。 在个人计隼机世界口:另…个上要竞争者是NX(和它的各种变体)UNX在网络和企业服务器等 领域强大,在台式计算机上,特别是在诸如印度和中国这些发展国家里,UNX使用也在当加。在基 Pentium的计算杋上,Lηnuκ成为学生和不所增加的企业用户们代替 Windows的通行选择。顺便提及 在本书中,我们使用“ Pentium"这个名词代表 Pentium I,Ⅱ,I和4,以及它们的后继者,春刻Core2 Du。术语86有时仍日来表示nl公训的包括8086的←PU,而 Pentium”则用于表示从 Pentium I开 始的所有CPU。很显然,这个术语并不完美:但是没有更好的方。人们很奇怿,是Ine公司的哪个天 才把华个世界都知晓和尊重的品名( Pentium)扔掉,并替代以“ Core 2 du。”这栏一个几乎没有人京 圳理解的术 2”是仆么意思,而“Duo”又是什么意思?也许“ Pentium5”(者“ Pentium5 dual core)太难记忆吧。至于 FreeBSD,-个源自于 Berkeley的BSD项H,也是个淤行的CNX变体。 IO 第1幸 所有塊代 Macintosh计算机都运行着 FreeBSD的一个修改版。在使用高性能RSC悲片的工作站上,堵如 Hewlett-Packard公司和 Sun Microsystem公司销售的那些机器上,UNX系统也是一种标准配置。 尽管许多UNX用户,特判是富有经验的程序员们更偏好基于命令的界面而不是GUI,但是几乎所 有的UNX系统都支持由MI开发的称为 X window5的视窗系统(如众所周知的x1)。这个系统处理基 夲的视窗管理妫能,允许用户通过鼠标创建、删除、栘动和变比视窗。对于那些希望有图形系统的 UNIX用户,通常在X之上还提供一个完整的GUI,诸如 Tneme或KDE,从而使得UNX在外观和感觉 上类似于 Macintosh或 Microsoft windows 另·个吓始亍2世纪80年代中期的冇趣发展是,那些运行阿绉操作系妩和分布式操作系统 (丁 dnenbeu和vamS,2C07)的个人计算机网络的增长。仁阙络操作系统中,用户紐道多台计算机 的冇在,用户能够登录到台远地机器上井将文件从一台机器复制到另一台机器,每台计算机都运行自 己本地的嗓作系统,并有自己的本地用户(或多个用户)。 网络作系统与处理器的操作系统没有本质区别。很明罷,它们需要一个网终接口挖制器以及 些槟层软件来驱动它,同时还需要一些程序来进行远程登录和远稈文件访问,但这些附加成分并标改变 操作系统的本质结构。 相反,分布式操作系统是以一种传统单处理器操作系统的形式出现在用户面前的,尽管它实际上是 由多处理器组成的。用户应该不知晓他们的程序在间处运行或者他们的文件存放于何处,这些应该由操 作系统白动和有效地处理。 真正的分布式操作系统不仅仪是在单机操作系統上增添一小段代码,因为分布式系统与集中式系统 有本质的区刿。例如,分布式系统通常允阡一个应用在多台处理器上同时运行,因此,需要更复杂的处 理器调度算法来获得最大的并行度优化 网络中的通信延迟往往导致分布式算法必须能适应信息不亢备、信息过时苌至信息不正确的环境, 这与单机系统完全不同,对于后者,操作系统掌握着整个系统的完备信息。 1.3计算机硬件介绍 操怍系统与运行该操作系统的计箅机绠件联系密切。操作系统扩展了计算机指令集升管理计算机的 资蘇。为了能够工作,操作糸统必须∫解大量的硬件,至少需要了解硬伫如何面对程序员。出于这个原 因,这里攪们先简要地仝绍现代个人计算机中的计算机硬件,然后开始讨论操作系统的具俩工作细节。 从概念上併,一台简单的个人计算机叫以抽象为类似于图1-6中的模型。CPU、为存以及O设备都 由一糸系统总线连接起来井通过总线与其他设备通信。现代个人计算机结构更加复杂,包含多重总线 们将在后面讨论之。目前,这一模式还是够用的。在下面各八丶节中,我们将简要地介绍这些部件,并 且讨论些操作系统设计师们所考虑的硬件问题。壅无疑问,这是个非简要的都括介绍。现仁有不 少讨论计算机硬件和计算机组织的籍。其两本有名的书的作者分别是 TanenbauM(2006)和 Patterson 与Hen且esy(2014) 监视器 SE 硬盘 键盘 打印机 驱动器 视频 健盘 USB 硬盘 存值器 控制器 控制器 控制器 挖制器 总线 图16償单个人计算机中的一些郭件

...展开详情
试读 127P 现代操作系统 中文
立即下载 低至0.43元/次 身份认证VIP会员低至7折
抢沙发
一个资源只可评论一次,评论内容不能少于5个字
关注 私信 TA的资源
上传资源赚积分,得勋章
最新推荐
现代操作系统 中文 50积分/C币 立即下载
1/127
现代操作系统 中文第1页
现代操作系统 中文第2页
现代操作系统 中文第3页
现代操作系统 中文第4页
现代操作系统 中文第5页
现代操作系统 中文第6页
现代操作系统 中文第7页
现代操作系统 中文第8页
现代操作系统 中文第9页
现代操作系统 中文第10页
现代操作系统 中文第11页
现代操作系统 中文第12页
现代操作系统 中文第13页
现代操作系统 中文第14页
现代操作系统 中文第15页
现代操作系统 中文第16页
现代操作系统 中文第17页
现代操作系统 中文第18页
现代操作系统 中文第19页
现代操作系统 中文第20页

试读结束, 可继续阅读

50积分/C币 立即下载 >