操作系统的演变与Elastos.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
操作系统的演变与Elastos

第十三章 操作系统的演变与 Elastos 操作系统与模块化设计思想 策略与机制的分离 虚拟机与操作系统 元数据:对使用机制的说明 构件中的发动机 Elastos: 构件化的操作系统 技术以人为本 本章讨论操作系统的设计思想演变过程。为了讨论方便,本书不讨论也不涉及 UUIX 系统出现之前的操作系统的开发理论与技术,有两个原因使作者作出了这样的决定:一是(以作者今天的眼光来看), UNIX 系统发明之前的操作系统在模块化设计理论的实践方面没有形成 UNIX 那么大的影响; 二是(与前面一点相关的), UNIX 系统的发明在操作系统理论发展历史上是一个里程碑, 以至于现在讨论新的操作系统的设计时, UNIX 成了操作系统家族中的一种标准参照物。 阅读本章时,可以参照阅读本书第二部分的第十一章关于 Elastos 实现上的一些细节。 第一节 操作系统与模块化设计思想 UNIX 操作系统的设计是相当模块化的。模块化的设计方法并不难理解: 对于一个复杂系统的构造, 我们总是试图从底层的一些积木式的基本模块开始, 等这些基本的积木模块构建好之后, 再开始利用这些基本的积木模块来搭建更加复杂的系统和更大的系统。这一方法因为便于工程实践, 因此从建造古埃及的金字塔, 到美国现代的阿波罗飞船登月等工程一直都在沿用这一方法。 UNIX是如此成功,大大超出了其创作者的最初预期,UNIX 成功的主要市场原因应该归结于它开发的发行方式,以及相对开放的开发模式。 而 UNIX 系统模块化的设计理念为后来开放的开发模式的成功运作提供了一个前提和基础。虽然在 UNIX 出现之前,我们不能说操作系统的设计技术中没有应用模块化的设计思想,但是只有等到 UNIX 出现后, 模块化的设计思想才真正成为操作系统设计理论的一个真正组成部分。 最初的 UNIX 系统分成内核, 实用工具和用户应用程序三层, 而内核可以按照功能划分 为以下几大模块: 进程管理模块 文件系统模块 设备控制模块 内存管理模块 网络功能模块 从技术上看,正式由于这些模块化的设计, 才使 UNIX 在操作系统家族中成了具有里程碑 意义的操作系统。在过去的 30 多年中, 尽管 UNIX 本身发生了相当大的变化, 但是模块化的设计思想一直没有改变。可以说,模块化的设计为 UNIX 的成功奠定了技术上的基础。 图13.1 UNIX Internal Structure 第二节 策略与机制的分离 最初的 UNIX 的设计贯彻“越小越完美”的思想, 使用一组较小规模的内核提供一组必要功能的最小集合。基本的模块就是操作系统提供的简单工具, 系统上这些许多小的工具完成简单的数据处理, 而用户可以灵活地将它们以“管道”(或者“流水线”)组合起来,形成更加强大的工具。值得注意的是, 这些工具中以操作文本的工具数量最多,以至于在相当大的程度上, 我们可以将 UNIX 系统视为一种文字处理系统。 在实现细节上, UNIX 在操作系统理论方面得到的重大成果之一在于清楚地区分了 “策略”和“机制”。最初的 UNIX 系统是 Thompson于 1970 年在 PDP--11 机器上用汇编语言实现的, 这体现了他作为一位伟大的程序员的毅力, 但是这一做法从操作系统理论角度却不值得提倡 —— 原因很简单: 使用汇编代码开发操作系统使得系统的维护和移植变得非常困难。故等到 C 语言发明之后, UNIX 被 C 语言彻底改写, 尽管汇编代码在 UNIX 系统上仍然存在, 但是总量已经被压缩降低到相当低的水平上, 系统的绝大部分代码使用 C 语言编写。 机制是指:系统应该提供什么样的功能(不言而喻,系统首先应该实现这些功能)。 策略是指:应该如何使用系统提供的功能(即,采用何种方法使用这些功能完成更高层的计算任务)。 简单地讲,在 UNIX 系统的内核内, 基本上使用 C 语言开发的代码实现了上面几个模块的“机制”,对外的系统调用的接口则规定了上层的应用程序应该如何使用系统调用来解决问题, 我们可以认为几乎整个 UNIX 系统都是用围绕如何用 C 语言来实现这些机制的编写的代码组成的。在内核的层面上, UNIX 的系统设计大师只提供一堆服务的接口,如何使用这些接口(某个任务应该用什么方法去解决)是用户自己的事情, 即“策略”的制定权和使用权留给了用户,为了方面用户, UNIX 系统提供了一批实用工具,用户既可以使用这些实用工具来编写应用程序,也可以直接使用内核提供的系统调用创建新的实用工具。 策略和机制的分离体现在 UNIX 系统设计的诸多方面。下面我们从几个方面来分析 UNIX 系统是如何分离策略和机制的。 13.2.1 UNIX 系统中的文件与文件系统 文件和进程是 UNIX 系统中的两个基本概念,这两者一静一动,关系十分

文档评论(0)

sunshaoying + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档