已阅读5页,还剩77页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
二八 年 一 月 件支持平台的研究与实现 ( 国家 863 计划资助项目 编号: 2001 A in 2008 by 63 书脊 L i n u x 上 构 件 支 持 平 台 的 研 究 与 实 现 冯 世 光 同 济 大 学 学位论文版权使用授权书 本人完全了解同济大学关于收集、保存、使用学位论文的规定,同意如下各项内容:按照学校要求提交学位论文的印刷本和电子版本;学校有权保存学位论文的印刷本和电子版,并采用影印、缩印、扫描、数字化或其它手段保存论文;学校有权提供目录检索以及提供本学位论文全文或者部分的阅览服务;学校有权按有 关规定向国家有关部门或者机构送交论文的复印件和电子版;在不以赢利为目的的前提下,学校可以适当复制论文的部分或全部内容用于学术活动。 学位论文作者签名: 年 月 日 同济大学学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师指导下,进行研究工作所取得的成果。除文中已经注明引用的内容外,本学位论文的研究成果不包含任何他人创作的、已公开发表或者没有公开发表的作品的内容。对本论文所涉及的研究工作做出贡献的其他个人和集体,均已在文中以明确方式标明。本学位论文原创性声明的法律责任由本人承担。 学位论文作者签名: 年 月 日摘要 I 摘要 跨平台技术能实现 应用程序在不同 硬件平台或 操作系统 平台 上 运行。 他 屏蔽了 平台的差异 , 达到 了应用程序 在异构环境下顺利 运行的目的。 论文首先分析了 作系统 上的 件 运 行 平台 。 它 包括 : 核 接口,设备驱动程序接口和 件运行机制。 用程 序都是以构件接口的形式调用系统内核功能。保持 系统 接口的不变性,在其他宿主操作系统上 重新实现他们 , 可以实现 件的跨操作系统平台运行 。 台是 在 不同操作系统之上 模拟 的统一 件运行平台。通过台, 件可以二进制兼容地运行在不同的操作系统之上。 括 平台适配层和 拟层。 论文 中 提出了 种平台适配层,详细地阐述了他们的 函数 接口设计和实现。 平台适配层决定着 拟层的设计方式和实现, 两种适配层技术也就代表了两种不同的 构。论文详细分析了这两种架构 上 应用 程序 运行过程 , 运行 效率损失和平台模拟程度。 在 台 上 模拟了代理对象和存根对象 , 用进程间通信的方式实现件的自动列集散集机制 。通过向内核对象管理进程注册和查询服务 , 模拟 了 件的 命名服务机制 。 论文还针对 台 全部运行在宿主操作系统用户态 的特点,分析了 台上构件对象的生命周期问题。 最后,论文 比较 了 台 和其他的跨平台技术,也为 后的研究提出一些建议 。 关键词: 和欣操作系统,构件技术, 跨平台技术 ,软件复用 , 构件运行平台 I on S. It AR It AR on S by is a AR S It of in is PC be to a on of S, of is At of We we 录 第 1 章 引言 . 1 题的目的和意义 . 1 内外的研究现状 . 2 . 2 目 . 4 容内核 . 5 目 . 6 令集仿真 . 7 人所作的工作 . 8 文的组织和结构 . 8 第 2 章 相关技术与概念 . 10 体系架构 . 10 系统接口 . 12 口 . 13 程和线程接口 . 14 步对象接口 . 16 件技术 . 18 件技术的相关概念 . 20 件自动列集散集 . 22 件命名服务机制 . 24 备驱动服务 . 25 第 3 章 架构设计 . 27 总体架构 . 27 于 配层的 构 . 28 配层 . 29 于 拟内核 . 29 目录 的实现 . 31 口层和 通信协议 . 32 的内核对象管理 . 33 配层架构的优缺点 . 35 于 配层的 构 . 36 配层 . 37 于 拟内核 . 38 构的优缺点 . 40 种适配层的技术比较 . 41 备驱动程序的模拟 . 42 第 4 章 构件运行机制的设计 . 44 构件列集散集机制 . 44 理和存根的数据结构 . 44 输协议和元数据 . 47 据传输方式 . 49 务线程模型 . 50 种适配层上的差异 . 51 命名服务机制 . 51 构件生命周期管理 . 53 理对象和存根对象的生命周期 . 54 核对象的生命周期 . 55 其他跨平台技术比较 . 56 第 5 章 件运行机制的实现 . 57 制的封装 . 57 自动列集散集机制的实现 . 59 理对象的实现 . 59 根对象的实现 . 62 命名服务机制的实现 . 64 第 6 章 总结与展望 . 68 结 . 68 望 . 69 目录 V 致谢 . 70 参考文献 . 71 个人简历 在读期间发表的学术论文与研究成果 . 72 第 1 章 引言 1 第 1章 引言 课题的目的和意义 自从计算机诞生以来,信息产业迅猛发展。在这个发展过程中,各种技术和成果 层出不穷。计算机的性能不断提升,各种技术更是得到了差异化的发展。就 处理器 而言 , 现在常见的就有 等。 服务器和桌面 上 的 操作系统 可以分为各种 作系统 的变种 , 作系统和作系统 等等 。 与日俱增的应用软件则更是深入到了人们生活中的每一个细节。应用于不同领域的嵌入式芯片和各种特定的 操作系统 更是种类繁多 。计算机的这种差异化的发展,触及了各个领域,满足了人们各方面的需求。 但是这也造成了各种平台和技术各自为营的局面。各种技术和平台之间无法互通,应用程序通常只能在特定的硬件和操作系统平台上运行。 因此 ,在计算机的发展过程中,人们也一直进行 求同存异 。 各种国际化标准组织应运而生, 希望通过制定标准和 接口 规范 来统一应 用程序的运行环境 。在硬件领域,人们 一般通过制定 标准和规范来 统一各个厂商的不同产品和技术,使得他们 给用户提供一致的 功能或者 接口 ,例如: 准 。在软件领域, 也有类似的标准,比如操作系统中的 口。除了 制定 这些标准外,我们还可以 通过操作系统的 模拟 ,或者生成 中间代码的技术, 使得应用程序跨 硬件 平台 或操作系统平台 运行。 作系统是上海科泰世纪公司开发的智能手机操作系统。 作系统与其他操作系统相比的最大特色在于它完全基于构件技术 。 作系统各个部分的服务 以 件 的形式 来提供 。应用程序通过 接口 代理指针 的形 式访问操作系统内核 。 在操作系统层面上引入构件的概念, 能够为目前主流的网络编程和 供强大的平台支持。 作系统上的应用程序也都采用了 件编程模型, 作系统为 件提供了完整的运行平台 。 构件技术是 软件复用中的关键技术。构件技术能够实现软件的工厂化, 是提高软件生产率的“银弹”。 件技术不仅具备了构件技术的所有优点,第 1 章 引言 2 而且还添加了许多新的 技术 特性。研究 件的跨平台运行将能进一步提高软件的复用 程度 。 本课题 主要研究 件 跨操作系统平台 运行 技术。课题的目的是 要 在 搭建一个 与 而 使得 件可以二进制兼容地运行于 作 系统之上。 任何在 作系统上运行的应用程序可以二进制兼容地运行于 者其它操作系统之上。 这对于 进一步推广 作系统和 同时 也为 应用程序 跨平台 运行 技术的研究也起到 一个借鉴作用 。 国内外的研究现状 目前, 国内外关于应用程序 跨 平台 运行的技术 主要 有 容内核” 。 用的都是生成中间语言的技术。 用的是模拟 操作系统 方式。 著名的 开源项目 能够 跨 操作系统 平台运行 。他的设计 架构, 也 非常 值得我们学习 研究 。 另外, 仿真硬件指令集 可以实现应用程序跨硬件平台运行 。微软的 台上仿真 了令集 ,使得原本只能在 发板上运行的程序也可以运行在 。 台为应用程序和网络服务提供了很好的开发和运行平台。 台 是一个多语言的开发环境,可以运用 # + 进行开发。 台主要有包括公共 语言 运行环境,统一类库和 大部分。 公共语言 运行 环境 ( 是 核心。 它是 用程序的运行引擎 。它在 用 程序和 操作系统之间提供了 的 一个中间运行 层。公共语言运行环境类似于 拟机 ,但 它 又 不是一个解释器 。 言 的编译器( # 及其它编译器) 会把 程序生成托管代码 , 托管代码中包含了元数据和 微软中间语言 ( 。 托管代码与 间语言也与具体的处理器和操作系统无关。 正因为它们第 1 章 引言 3 使用了这种抽象形式进行表示,所以使用不同语言编写的 用都可以进行紧密的互操作,不仅可以彼此调用函数,而且还可以彼此进行类继承。 1 图 序编译运行的流程图。 图 管 用程序的建立和执行 1 图 看出, 源代码通过托管编译器生成了托管模块,其中包括元数据和中间语言代码。这些托管代码如果是在远程,则通过网络下载到本地。在本地,托管代码在公共语言运行环境上执行,加载程序读入元数据,为其生成内部的数据结构。 译器则读入 码,结合所需的内部数据结构,生成所在特定平台的本地代码。然后再执行这些本地代码。在 ,所有的代码都先被生成了 与硬件平台和具 体操作系统无关的托管模块。 他们在不同的平台上被编译成不同的本地代码,从而可以实现托管代码的跨平台运行。 行平台还可以验证类型安全,进行异常处理,与 象,普通的 行互操作。 情况与 致相似,也是通过生成中间语言来实现跨平台运行。程序先要编译成 件,这个 件就是 源 程序的字节码表示。这里的字节码就是中间代码, 他们 与具体的硬件平台和操作系统无关。 字节码再由 释器直接解释执行。 要靠 拟机( 实现 目标代码级的 平台无关性。 一种抽象机器,它附在具体操作系统之上,本身具有源代码 托管编译器 托管模块 码 元数据 公共语言运行环境 加载程序 译器 执行引擎 内部数据结构 本地代码 托管模块 元数据 码 第 1 章 引言 4 一套虚机器指令,并有自己的栈,寄存器组等等。 2 节码与具体的硬件平台和操作系统无关, 照虚拟机规范在不同的平台上有不同的实现。 是虚拟机规范保证了 序的跨平台运行。 任 何一台计算机只要安装了 可以运行 序。他们可以做到一次编写,到处运行( 实现 跨软硬件的目标代码级兼容。 目 开源项目 s 跨平台 运行 上使用 的是截然不同的技术。 目的是 在 运行 序。 它 在 完整地 模拟 出 作系统的 内核以及程序运行所必需的 口。 甚至能够在其上面进行 序的调试。 台 分为 载器, 部分 。 序都是 式的可执行文件, 作系统上所运行的都是式的可执行文件,无法识别 式的可执行文件。 载器的作用就是 在运行时把 式文件加载到内存中。其实现 方式是,首先把 式文件以文 件映射的方式映射到进程的地址空间中。然后,分析 件的各个节表,循环加载这个程序所依赖的其他 后,根据节表找出 件中的入口函数地址和 导出函数地址。 根据这些函数的地址来执行相应的程序。 件和 件在格式上会有所不同,但是其二进制代码在相同的处理器上都是相同的。 因此,无论是哪种格式的二进制文件,只要能将其二进制代码载入到内存,并且找到其入口地址,均可正常运行。 接库是 模拟出 有的系统 动态链接库,如 等。 序运行时 , 载器会自动加载这些模拟的系统库 。 序对系统函数的调用转调到了这些模拟的系统函数中。 这也是 序能够在 二进制兼容的 原因 之一 。 加鼓励 源代码兼容 方式的跨平台运行 ,即把 程序在重新编译,链接 提供的系统库函数,这样能够提升程序的运行速度。 是 模拟 了 作系统的内核 ,他是一个单独的进程 。 这 个 模拟 的内核 是为了弥补 核和 核之间的差异。 例如,第 1 章 引言 5 统中,都是以句柄 机制 访问内核对象, 没有 句柄 的概念 ,一般是通过文件描述符,进程号等访问内核对象 。 因此就需要一个全局的管理进程在 模拟 句柄机制。 除此之外, 内核对象语义也有非常大的差异。在 用一个单独的进程来 模拟 除了这主要的三部分以外, 提供了编译工具,用于在 编译 目和 序。 也提供了 常用的程序,例如:等。 目 为 序提供了非常完备的支持。 目的总体架构大致如下图所示: 图 构视图 图 载器是一个单独的进程, 加载 应用程序。是一个单独的进程,充当 核。 核心模块 ,由 他同 行 与内核相关的操作 。 系统 级动态链接库 。 序运行时,加载其所需的各个 目现在能够正常运行 许多 序,为跨操作系统运行提供了一个很好的范例。 容内核 目 中,应用程序每次请求内核都需要与 行交互,这样的进程间通信极大地降低了效率。因此, 还不能运行一些非常大型的程序。 另外, 是对内核对象进行了模拟,无法 模拟宿主操作系统 上不存在的设备驱动程序 。例如 一些硬件设备只有 设备驱动程序,序 各种其他 1 章 引言 6 在 没有相 应的驱动模块, 那么 就无法在 模拟 出 相应的驱动程序。 那么用到这些硬件设备的 序就无法正常运行。 由于 目上存在着这些问题。 毛德操先生提出了“兼容内核”的 设想和技术线路。其目的是:将 内核加以扩充,使其既支持 身的应用和设备驱动,又支持 应用和设备驱动,从而成为一个“兼容内核”。 3 他 实际上就是 要 把 核和 核合二 为一。 为实现这个“兼容内核”, 在 核中 必须加入 : 统调 用界面,通过这个系统调用界面, 系统调用可以直接调用到这个“兼容内核”中 的内核函数。 符合 备驱动程序 特征和要求的框架,即 备驱动框架,多个设备驱动模块装入到内核后,他们之间的关系和运行环境要像在核中一样。 核导出函数 ,对于设备驱动程序而言,这些函数就相当于由内核提供的库函数 。 3 核添加了这些内容成为“兼容内核”后, 序的所有系统调用就都可以转接 到这个“兼容内核”中, 设备驱动程序都可以顺利地调用这个“兼容内核”。 由于知识产权的原因,不能直接使用 等。 毛德操先生提出了把“兼容内核”与 目相结合的方法。 即把 目中原来调用 对 系统调用 改为直接调用“兼容内核” 。 这样可以复用 目的代码,也克服了 目中 速度慢,无法使用 动程序 的缺点。 毛德操 先生设想的这个“兼容内核”, 能够让 序兼容地运行在统上,而且没有效率上的损失。 开源项目,更改他的内核也具有 可行性。 作系统广泛运用于 大型 服务器和嵌入式系统中 ,其 卓越的性能,良好的 安全性 和开放性受到大家的追捧。 由于用户习惯的原因, 桌面系统仍然被 垄断。 “兼容内核” 的设想 对推广 面系统具有非常积极的作用, 也为 程序跨平台运行提供了新的启发。 目 目中 的 浏览器中的佼佼者,在浏览器领域占有主要地位。 架构设计非常 优异,具有非常良好的可移植性和可扩展性。 章 引言 7 也是一个跨平台的项目,下图是 分层视图。 图 层视图 4 从 图 看出, 跨平台技术,是在不同的操作系统上提供了一个统一的跨平台运行库,这包括 和 实现了线程,事件,信号量和文件等与具体操作系统相关的 抽象,让上层模块不受具体操作系统的影响。 有基于 操作系统的实现。一套图形处理程序,实现了画线、多边形、填充、颜色、字体等功能,让上层模块不受具体 影响。其下有基于 多种 一套窗口控件程序库,实现了象窗口、事件、拖放、剪切板功能,让上层模块不受具体 影响。其下也有基于 实现。 4 过 一个中间层为上层的模块提供统一的接口,使得上层模块不会受底层操作系统的影响。另外, 目中还运用了 术,从而实现上层应用跨平台运行。 指令集仿真 微软的 在 台上仿真 发板。其中最重要的部分就是要仿真 由于 也为仿真工作提供了方便。 宏指令来模拟 令集。每次从二进制文件中读入一段 进制代码, 找出代码中的每个函数S 移植运行库) 它 T/ S 开发的应用程序: 第 1 章 引言 8 入口, 把他们翻译为相应的宏操作。 并把翻译好的 码 以 红黑树节点的 方式 存储 。 下次 再用到这部分代码时就直接取用,提高 整体的运行速度。 从原理上讲, 可以模拟各种其他处理器。 指令仿真器的优点是可以跨硬件平台运行, 节省硬件成本, 提高 软件的开发效率。例如, 用程序一般都是在 台上开发,通过交叉编译生成进制 代码。 通过 真器在 台上运行,可以起到验证程序的效果。 由于是对二进制代码做即时翻译,程序的执行 速度 较慢。 另外,指令仿真器只是仿真了硬件,应用程序要在上面正常运行,还必须 为这些仿真硬件移植板卡支持程序和驱动程序。 除了以上所述项目 之外,还有一些硬件虚拟机,它们是在原有硬件的基础上,再 模拟 出相同的硬件平台。例如 C。它们实际上并没有提供 应用 程序跨平台运行的机制,而是虚拟了一套或者多套 相同 的硬件。在这些多套的硬件上,用户可以安装不同的操作系统,从而达到在一台机器上运行多个操作系统的目的。 硬件虚拟机能够更好地利用资源,特别是对 提高 利用服务器资源有很大的意义。 本人所作的工作 本人参与了基于 件运行平台的开发。参与了和 拟 层的设计和开发。在前面 研究人员 的基础上,扩展了 现了构件的 自动 列集散集机制,命名服务机制。 使得构件 模拟 运行 平台 能够支持 件的跨 进程 运行。 同时, 也探索 件统一运行平台 的新 架构, 分析 比较了 件运行平台的不同架构 ,为 构件 跨平台技术研究起到一定的参考作用。 论文的组织和结构 本篇论文较为系统地描述了实现 件跨平台运行所需的系统接口 和构件的各种 机制 的 模拟 实现 。 论文 共分为六 章。 第一章,“ 引言 ”。 主要介绍了当前国内外的主要跨平台技术,包括 容内核 ,硬件仿真器 等。 第 1 章 引言 9 第二章,“ 相关 技术 与概念 ”。 主要分析 了 作系统对 件所提供的系统接口, 主要包括 等。 也介绍了 件 技术, 作系统上 件的各种机制。 实现 件的跨平台运行,则必须在宿主操作系统上 模拟 出这些系统接口 和机制 。 第三 章 , “ 架构设计 ” 。 主要阐述了 种不同的 适配层的接口设计和实现。 两种适配层的设计 也决定了 他们上层的 拟层。这一章还详细分析了这两种架构上应用程序运行过程和运行效率损失。 第四 章, “ 构件运行机制的设计”。 这一章阐述了在 台上设计和实现 件的 进程间 散集列集 机制 和 命名服务机制 。也对 构件对象的生命周期作出了分析。 第五章,“ 件运行机制的实现 ” 。 这一章主要论述了在 现 件运行机制 的数据结构和程序框架 。 第六 章 , “ 总结和展望 ” 。 总结了设计 件运行 平台的要点, 对 后发展 提出了一些建议 。 第 2 章 相关技术与概念 10 第 2章 相关技术与概念 作系统是一个完全 面向构件技术 的操作系统。 理由是: 核基于构件技术, 所有内核对象 都对外提供一个接口 。 应用程序通过这些接口的用户态代理指针调用系统 功能 。 系统为 件的运行提供完整的机制 。 系统提供的库函数和应用程序的编程模型都是基于构件技术。这一章主要分析 统的整体架构,内核所提供的接口,以及系统对构件机制的支持 。 只有深入理解 统上的构件运行平台和 件编程 模型,才能够在其他宿主操作系统上 模拟 出构件运行平台。 体系架构 作系 统是 32 位嵌入式操作系统。 从结构上来 看,可以分为内核,件运行平台层和系统库函数。结构 如图 示。 图 统架构图 操作系统 内核设计 有 微内核( 和单一 内核( 种 模型。微内核模型是指只把最基本的 操作系统 功能放在内核之中。 比如 进件运行平台 用程序 系统 件库 第 2 章 相关技术与概念 11 程管理,线程调度,内存管理,进程间通信这些操作系统必备的功能。 其他的系统模块,例如文件系统,设备驱动程序,图形系统 等 都放在内核之外,以服务的形式注册到内核之中。微内核模型的优点 是 内核结构模块化, 安
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 昆虫标本采集制作工创新方法水平考核试卷含答案
- 矿灯和自救器管理工班组安全知识考核试卷含答案
- 四氯化钛精制工诚信道德知识考核试卷含答案
- 室内装修验房师变革管理模拟考核试卷含答案
- 洗衣机零部件制作工安全防护考核试卷含答案
- 墨汁制造工安全综合模拟考核试卷含答案
- 中药胶剂工岗前班组管理考核试卷含答案
- 2026百威al面试题目及答案
- 口腔护理并发症的病因学及发病机制
- 心脏外科术后患者自我管理能力培养
- 体检健康宣教课件
- 计算机网络基础IP地址课件
- 《西方哲学智慧》第十四讲:黑格尔哲学课件
- 2024年中智集团招聘笔试参考题库含答案解析
- 医院网络信息安全ppt
- DB13T 5714-2023 道路运输企业安全生产风险分级管控规范
- 建筑工程项目汇报ppt
- 2023年江苏第二师范学院招聘工作人员17人笔试备考试题及答案解析
- 输电线路工程组塔施工质量控制
- 最新人教部编版六年级下册语文《古诗词诵读:春夜喜雨》教学课件
- 公共伦理学(第三版)-课件
评论
0/150
提交评论