组件机制与操作系统的的实现.docVIP

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

组件机制与操作系统的实现 摘要 本文介绍了一个操作系统开发平台-OSKit,它提供了一套用于架构操作系统内核的库函数和一些组件。它的设计目标是降低进入操作系统研究与开发领域的门槛。OSKit在设计时借用了COM的思想,把操作系统的各个部分设计成尽量独立的组件,使开发者可以很方便地使用或替换这些组件来构造自己的操作系统。 关键字 组件 重用 操作系统 OSKit 1 引言当前,操作系统的功能不断扩展,操作系统的类型呈现出多样化的趋势。一个小规模的开发小组已经不可能完全从头开始实现一个实用的操作系统,而一般情况下,研究人员只对操作系统的一些特定领域感兴趣,而对于另外一些元素,如启动加载代码、核心启动代码、设备驱动程序和内存分配代码等往往不感兴趣,但是一个可运行的原型系统又必须包含这些内容。编写这些基础结构延缓了操作系统研究项目的进度,同时也增加了进行操作系统研究的代价。为了解决这一问题,犹他大学的FLUX研究小组开发了OSKit,它提供了一个框架和一组模块化的、具有简单接口的库以及一组清晰的、可重用的OS组件。OSKit可以用来构建操作系统内核、外层服务和其他核心OS功能模块。OSKit提供了各种功能模块,诸如简单自举,一个可用于内核的最小化POSIX环境、与物理内存和其约束一致的内存管理、广泛的调试支持,以及高层子系统如协议栈和文件系统。开发者可以根据自己的研究兴趣或所要考虑的性能来使用这些模块,或用他们自己的模块来替代标准的OSKit模块。OSKit公开了它内部的实现细节,允许用户从成熟的操作系统中不加修改地提取代码,然后通过一小部分经过仔细设计的粘接代码将它们合并到一起,隔离它们的依赖性,并输出良好定义的接口。OSKit使用这一技术整合了许多稳定而成熟的源代码,包括设备驱动、文件系统、网络协议等等。实践表明,使用组件软件架构和重用技术会给操作系统实现领域带来大的影响。2 组件技术简介 组件技术是一种较新的软件开发技术。到目前为止,还难以确定组件技术的明确定义。比如,对组件技术的常见说法有以下这些:“二进制软件单元”、“任意场合可部署的软件”、“特别适合第三方开发”和“规范定义的接口”等等。大致上可以这样理解:所谓组件,其实就是一种可部署软件的代码包,其中包括某些可执行模块。组件单独开发并作为软件单元使用,它具有明确的接口,软件就是通过这些接口调用组件所能提供的服务,多种组件可以联合起来构成更大型的组件乃至直接建立整个系统。组件的实现必须支持一种或者多种其用户所希望获得的接口。实现组件并不一定需要采用面向对象语言。为了构造新应用程序,软件开发人员找出适当的组件,将这些组件加入到正在开发中的应用程序,同时对应用程序进行测试并保证应用程序的组装工作按照预定的规划正常进行。采用组件技术能降低开发、测试和维护成本,提高可靠性和稳定性。3 Oskit组件综述 OSKIT的组件库提供了一般情况下更高层的功能,它通常只对外开放一些相关的公用调用接口。目标系统通过OSKit的面向对象的COM接口来与这些组件进行交互。以下几节概述了OSKit所提供的组件。3. 1 引导程序大多数操作系统多有自身的启动加载机制,彼此互不兼容。这种加载机制的多样性并不是由于每个OS所要求的自举服务不同而引起,而是由于构建启动加载器的特定方式造成的。因为从操作系统研究的立场来看,启动加载器是一个令人不敢兴趣的领域,因此OS开发者通常进行一个最小化、快捷的设计。由于设计理念和要求的轻微差别,每个启动加载器都不适用于下一个OS。为了解决这个问题,OSKit直接支持多启动标准,这一标准是由几个OS项目的成员共同设计的,它的目的是提供一个简单而通用的启动加载器与OS内核间的接口,从而允许一个启动加载器加载任何兼容的OS。在进行操作系统研究时,多启动标准非常有用,这其中的主要原因是启动加载器在加载内核自身的同时还具有加载附加文件或者启动模块的能力。这里的一个启动模块只是一个普通文件,启动加载器不以任何方式解释它,而仅仅把它随同内核映像一起加载到保留物理内存块中。在启动内核时,启动加载器提供给内核以下内容:物理地址的列表、所有已加载的启动模块的大小,以及与每个模块相联系的由用户定义的字符串。这些启动模块和与它们相联系的用户定义的字符串由内核解释。这样做的目的是为了通过提供内核启动时需要的数据,诸如初始化程序、设备驱动和文件系统服务器,来减轻内核启动的负担。3.2核心支持库 OSKit核心支持库的主要用途是让客户OS更容易访问硬件设施。它包含了一个较大的实用函数和符号定义的集合,该集合对于管理模式代码是非常具体的。与此相对应,OSKit的大多数其他库在用户模式代码中通常很有用。和OSKit的其余部分所不同的是,多数核心支持代码必须是针对特定系统结构的,而这些特定机器的细节对客户

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档