基于ARM嵌入式Linux的虚拟机移植技术研究及应用_第1页
基于ARM嵌入式Linux的虚拟机移植技术研究及应用_第2页
基于ARM嵌入式Linux的虚拟机移植技术研究及应用_第3页
基于ARM嵌入式Linux的虚拟机移植技术研究及应用_第4页
基于ARM嵌入式Linux的虚拟机移植技术研究及应用_第5页
已阅读5页,还剩76页未读 继续免费阅读

基于ARM嵌入式Linux的虚拟机移植技术研究及应用.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

上海交通大学 硕士学位论文 基于ARM嵌入式Linux的虚拟机移植技术研究及应用 姓名:顾叶锋 申请学位级别:硕士 专业:计算机科学与工程 指导教师:陈进 20050101 上海交通大学硕士研究生论文 iv 基于 A R M嵌入式L i n u x的虚拟机移植技术研究及应用 摘要 虚拟机是由软件构成的运行时系统指令可以完全在这种运行时系统 上运行而不是由物理处理器来直接执行使用虚拟机就可以在遇到一种新 硬件平台或者新操作系统时唯一需要移植的应用级软件就是虚拟机本 身虚拟机技术在 PC 机等很多环境已经拥有了非常广泛的应用然而在 嵌入式系统方面的应用还有待研究发展 本文首先从程序可移植性讲起深入阐述了虚拟机的概念设计及移 植等问题然后介绍了Gnuboy 这个 8位掌上游戏机 Gameboy 的软件模拟 器它也是本文研究的主要目标对象同时介绍了 Gnuboy 和下面将介绍 的所构建平台系统的关系Gnuboy 是基于 Qt 系统的本文构建平台下采 用的是嵌入式系统的 QT 版本QT/Embedded 和 Qtopia(QPE)这有助于 模拟器的移植 现在基于 ARM的嵌入式 Linux 平台在 PDA 等嵌入式产品开发中是 非常流行的一种解决方案因此本文选用这样一个平台来进行研究工作 接下来就介绍了我们所构建的 ARM linux 平台的硬件环境软件环境及其 本文后面工作时用到的一些工具软件 Gnuboy虚拟机的运行机制是本文研究的重点之一 本文在研究 gnuboy 源代码的基础上从虚拟机设计的角度出发初步研究了 gnuboy 的机器 设计内存管理运行时的生命周期图像的显示模块的设计声音模块 和调试模块部分的一些问题 上海交通大学硕士研究生论文 v 在研究了解它的运行机制之后实现它在我们构建的平台上的移植和 优化工作是本文的另一个重点由于 gnuboy 是基于 qt 的所以首先需要 实现 qt 的移植然后是 gnuboy 自身的移植这个过程需要解决的主要问 题包括中断Framebuffer支持数据存储格式和启动路径编译等 优化是为了解决虚拟机运行速度的问题首先通过对 Gnuboy 的调 试确定需要优化的重点部分这里的优化主要分为 C 语言级的和机器相 关级的本文对 C 语言级用到的各种优化方法作了比较全面的阐述这些 方法可直接用到 gnuboy C语言级的优化中我们这里所说的机器相关级 的优化也就是采用嵌入 ARM 汇编方式来进行的优化这里用到了基于 图着色技术的寄存器分配算法的一种简化方法用这种方法对 gnuboy 源 代码中的几个重点函数进行了优化处理同时对应用后的效果进行了测试 和评估这里还没有充分去实现 gnuboy 的优化而是部分的优化但更 重要的是通过我们的实例和分析指明了更多优化的途径和方法 关键词 ARMLinuxGnuboy虚拟机移植优化 上海交通大学硕士研究生论文 vi VIRTUAL MACHINE TRANSPLANTATION TECHNOLOGY RESEARCH AND APPLIANCE BASED ON ARM LINUX ABSTRACT Virtual machine is runtime system constructed entirely by software. Instructions can be executed in this system, without directly in physical cpu. With the using of virtual machine, the only thing needed to transplant for application is virtual machine when we encounter a new hardware platform or new operation system. Virtual machine technology has a extensive application under some machines, like pc and so on. But it has limited applications under embedded system. At first, I describe the concept of program transplantation performance, the concept of virtual machine, the problem of virtual machine design and transplantation. Then, I describe gnuboy, a 8-bit Gameboy emulator (Following called Gnuboy). It is the main research object. Here, I expound the relationship of gnuboy and platform for our experiment, which I will describe later. Gnuboy is based on qt. Here, I use QT/Embedded and Qtopia(QPE),the qt for embedded system. It is helpful for the transplantation of emulator. 上海交通大学硕士研究生论文 vii Now, embedded Linux platform based on ARM920T is a very popular solution for development of embedded products. So I decide to do my research work on this platform, I describe the hardware system, software system and some software tools, which will be used later. The runtime mechanism of gnuboy is one of the research emphasis in this paper. From the point of view of virtual machine design, I summarize some conclusions about the machine design, memory management, lifecycle of runtime, video module, sound module and debug module of gnuboy, on the base of research of source code of gnuboy. After the research of runtime mechanism of gnuboy, the transplantation and optimization to our platform is another emphasis in this article. Gnuboy is based on qt, so the first step is the transplantation of qt, then the transplantation of gnuboy. The main problems to solve when transplanting gunboy are interruptionframebuffer support, data storage type and start up path setting. The aim of optimization is to enhance the speed of gnuboy. By debugging, we can know those key parts which affect speed, they are also the main objects to optimize. Here, the optimization methods are mainly C level and machine- related level optimization. In this article, I introduce many optimization methods on C level, which can be used in gnuboy. Here, machine-related level optimizaiton is the way to embed arm assemble language in gnuboy, which is written by C. Here a simple method of registers-allot algorithm based on graph 上海交通大学硕士研究生论文 viii coloring technology are adopted. Several function in Gnuboy source code are optimized in this way and the optimization effect can be tested with some tool. In this article, I didnt completely embody all possible optimization of gnuboy, I implemented part of optimization work,but more important,with the examples and analysis, its also the efficient path for more optimization. KeyWords: ARM,Linux,Gnuboy,virtual machne,Transplantation, Optimization 上海交通大学硕士研究生论文 ii 上海交通大学 学位论文原创性声明 本人郑重声明所呈交的学位论文是本人在导师的指导下独立进 行研究工作所取得的成果除文中已经注明引用的内容外本论文不包含 任何其他个人或集体已经发表或撰写过的作品成果对本文的研究做出重 要贡献的个人和集体均已在文中以明确方式标明本人完全意识到本声 明的法律结果由本人承担 学位论文作者签名顾叶锋 日期2 0 0 5 年 1 月 1 4 日 上海交通大学硕士研究生论文 iii 上海交通大学 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留使用学位论文的规定同意 学校保留并向国家有关部门或机构送交论文的复印件和电子版允许论文 被查阅和借阅本人授权上海交通大学可以将本学位论文的全部或部分内 容编入有关数据库进行检索可以采用影印缩印或扫描等复制手段保存 和汇编本学位论文 保密在 年解密后适用本授权书 本学位论文属于 不保密 请在以上方框内打 学位论文作者签名顾叶锋 指导教师签名陈 进 日期2 0 0 5年 1 月 1 4 日 日期2 0 0 5年 1 月 1 4 日 上海交通大学硕士研究生论文 1 第一章 绪论 1 . 1虚拟机技术及移植概述 在计算机软件工程领域经常用到有关虚拟机的概念比如 JAVA 虚拟机 Windows9X的虚拟机以及一些虚拟设备等 JAVA 虚拟机是为了保证 JAVA 语言的硬件平台无关性遵循已制定的规范与平 台有关的 JAVA语言解释器可以使要运行的 JAVA 程序无需改动就可以在不同的硬件 平台上实现其实是一个语言解释程序 Windows9X 系统的虚拟机机制是针对在 Windows9X 系统中对系统底层的操作被 屏蔽对系统底层进行操作时只能通过虚拟的设备及其驱动程序访问的情况而虚拟 出全部或者部分资源供应用程序使用但是对于功能不同的应用程序不能通用 除此之外还有其他一些虚拟机制只是虚拟了某种特殊功能的硬件以达到所需 要的目的 例如虚拟光驱利用虚拟光驱可以延长物理光驱和光盘的使用寿命 虚拟网络设备提高系统的整体安全性包过滤虚拟机挂接在网络不同层之间为网 络设备提供本身不具有的包过滤功能而包过滤则是网络安全防范的一个重要手段 等但是以上所说的虚拟机都不足以组成一个完整的计算机系统有些仅仅具有计 算机的一般模型有些甚至只具备简单的仿真功能 虚拟机可以是如 JAVA 虚拟机这样的仅仅相当于一个语言解释程序也可以是具 有真实计算机全部功能的虚拟计算机包含完整的硬件系统在前一种情况下符合 虚拟机规范的应用程序可以直接在上面执行而与硬件平台无关后一种情况则可以运 行完整的操作系统如目前应用很广的 VMware 一台虚拟机与一台真实存在的计算机的不同之处在于前者只是一个技术规范 1 这个技术规范由一系列规则构成而软件工程师可以采用任何他自己认为适当的手段 来实现这些规则这就使虚拟机能够做到与具体的计算机平台无关对一台虚拟机来 说只要它能够遵从其技术规范里的各项规则就可以存在于任何一种计算机平台上 就可以用任何一种计算机语言来编写 不管某个系统基于哪一种硬件平台程序在其上运行的基本机制都是完全一样的 指令从二级存储器被加载到内存并由处理器来执行它们 虚拟机可运行于不同的平台上在现存的各种平台和操作系统上实现虚拟机的 功能就涉及到虚拟机的移植问题本文主要内容自第二章开始从程序可移植性讲 起 进一步阐述了虚拟机的概念 设计和移植等问题 接着讲述了用于实验的 ARM Linux 的软硬件平台环境以 Gameboy这种 8 位机为例在研究了它的运行机制的基础上 把它移植到建立的目标平台上并且进行了一些优化研究和测试工作下面先介绍一 下研究所用的平台和本项目的背景目标和意义 上海交通大学硕士研究生论文 2 1 . 2 A R M L i n u x平台概述 1 . 2 . 1 A R M概述 1 . A R M体系的发展历史 CISC 体系由于指令集庞大指令长度不固定指令执行周期有长有短使指令译 码和流水线的实现在硬件上非常复杂给芯片的设计开发和成本的降低带来了极大困 难 针对这些明显的弱点美国加州大学伯克利分校的 Patterson 教授领导的研究生团 队设计和实现了伯克利 RISC I处理器他们在此基础之上又发展了后来 SUN 公司 的 SPARC 系列 RISC 处理器并使得采用该处理器的 SUN 工作站名振一时与此同 时斯坦福大学也在 RISC研究领域取得了重大进展开发并产业化了 MIPS系列 RISC 处理器后来被 SGI 公司收购并广泛用于 SGI 的图形工作站被这两种 RISC 处理 器所取得的巨大成功所鼓舞英国的 Acorn计算机公司在 1983 到 1985 年之间也开发 出了第一代 ARM RISC处理器当时 ARM 还只是 Acorn RISC Machine 的缩写之后 于 1990年 公司又把名字改为简单的 ARM limited 并且是 Advanced RISC Machine 先 进 RISC机器的缩写 ARM 公司在 32位 RISC CPU开发领域不断取得突破 其结构已经从 V3发展到V6 由于 ARM 公司成立以来一直以 IP 提供者的身份向各大半导体制造商出售知识产权 而自己从不介入芯片的生产销售加上其设计的芯核具有功耗低成本低等显著优点 因此获得众多的半导体厂家和整机厂商的大力支持在 32 位嵌入式应用领域获得了巨 大的成功目前已经占有 70%以上的 32 位嵌入式产品市场在低功耗低成本的嵌入 式应用领域确立了市场领导地位现在设计生产 ARM芯片的国际大公司已经超过 50 多家国内中兴通讯和华为通讯等公司也已经购买 ARM 公司的芯核用于通讯专用芯 片的设计经过这么多年的发展ARM已经形成了如下系列表 1-1的大家族 表1-1 中 的 核 心 Core 包 括 处 理 器 核 Processor Core(ARM7TDMI,ARM 8,StrongARM,ARM9TDMI 资源有限. 随着软硬件的发展嵌入式系统也采用操作系统来 管理各种资源但是由于嵌入式系统具有上述两个特点它对操作系统提出了特殊的 需求: 可配置, 可移植开销小 上海交通大学硕士研究生论文 5 L i n u x 基本满足嵌入式系统对操作系统的要求首先L i n u x 是模块化设计的操作 系统它虽然不是微内核结构 但是用户可以对其方便地进行配置 去除系统不需 要的模块以减小开销第二L i n u x 已经成功地运行在从3 2 位到6 4 位的多种体系 的处理器上 其中大部分都可以用于嵌入式系统 第三L i n u x 体积较小, 其核心 部分仅数百K 第四L i n u x 在进程管理内存管理网络支持等方面功能强大可以 满足嵌入式系统绝大多数应用的复杂性要求最后, L i n u x 可靠性较高 2 如何选用合适的L i n u x 版本 L i n u x 的版本主要有四大类( 1 ) 标准的L i n u x 版本2 小型化的嵌入式版本 3 具有实时扩展功能的L i n u x 版本( 4 ) L i n u x 特殊应用版本例如有许多针对不同 的如瘦服务器或防火墙应用的小型化实时特性增强的版本 所有的L i n u x 发行版本都是在同一个框架结构类型下发展演变的它们使用的基本 模块都相同其中包括L i n u x 内核S h e l l 命令命令执行解释模块以及许多的通用 工具不同的是数以百计的L i n u x 应用程序被包含在不同的发行版本当中安装的 进程处理程序也不同 L i n u x 原本不是为嵌入式系统设计的操作系统将其应用到嵌入式系统会遇到一 些问题. 这些问题包括 ? 系统运行开销 ? 实时响应性能 ? 虚拟内存对硬件MMU 的依赖 ? 图形界面等 上述问题有些只对部分嵌入式应用会产生影响 例如实时响应性能对手持移动设 备并不重要 同样并非所有嵌入式系统应用都需要图形界面 但是 系统运行开 销是一个涉及到所有使用L i n u x 的嵌入式系统的问题嵌入式系统的特点之一是资源 有限而桌面L i n u x 系统的开销是几乎所有嵌入式系统无法接受的也是没有必要的 尽管L i n u x 是自由的但购买一个商业版本的L i n u x 有许多好处 这包括开发工具 辅助工具软件及在线支持许多公司在开发及发行L i n u x 时致力于开发软件工具及提 供服务以使得他们的发行版本优于别的版本这些版本一般包括如下一些特点 ? 安装工具的自动化简化安装对L i n u x 的配置使得一个特殊硬件平台的开发能够 节省几个星期甚至几个月的时间 ? 提供类似于W i n d o w s 的图形界面有不同的大小外观特征能够支持种类众多 的嵌入式需要 ? 能够满足用户对不同的嵌入式实时计算平台及环境的特殊需要 诸如特殊的 C o m p a c t P C I 总线系统的特性虽然L i n u x 有多元化的特性但是所有的L i n u x 实现 都是基于通用的核心包括内核驱动程序多个图形界面接口及许多工具 上海交通大学硕士研究生论文 6 3 . L i n u x 的小型化 对于嵌入式L i n u x 的主要挑战是把系统资源的需要减少以适应诸如内存固态 电子盘容量处理器速度及节能的限制嵌入式操作系统需要从一个芯片级盘片或者 闪存式电子盘启动 启动并运行于没有显示及键盘的环境中 或从一个远程设备上 通过以太网连接加载应用程序现在已经有一些可参考的小型L i n u x 的来源其中又发 展出大量的L i n u x 配置及发行版本用来满足特别的需要诸如路由器 防火墙 I n t e r n e t 以及网络应用网络服务器网关等等 使用时可以有选择地生成所需要的嵌入式L i n u x 从一个标准发行版中开始裁减不 需要的模块甚至可以从别人配置过的版本开始开发 因为他人的嵌入式版本也开 放源代码的 最突出的优点是在他人的工作的基础上建立自己的系统这在L i n u x 开 发群体中不仅是合法的而且是受到鼓励和支持的 由于L i n u x 作为开放源代码的自由软件使用户可以根据应用系统设计的具体需要 对L i n u x 内核源代码进行修改裁剪增加以及重新编译系统实现步骤为 ? 重新编译L i n u x 内核( k e r n e l ) 去掉内核中不需要的模块诸如P C M I A 之类的外设支 持模块等 ? 编写B o o t L o a d e r 制作B o o t R O M 用于加载嵌入式L i n u x 内核到内存中 ? 重新设计以太网驱动程序以及串7 并口驱动程序 ? 设计嵌入式L i n u x 应用程序管理打印服务的应用 ? 嵌入式L i n u x 系统执行流程如图1 - 2 所示 L o a d L i n u x k e r n e lR u n l i n u xk e r n e l , i n i t i a l i z ed e v i c e , l o a d t a s k e t c .R u n A p p l i c a t i o n 图 1-2 嵌入式 L i n u x 系统执行流程 F i g u r e 1 - 2 E m b e d d e d l i n u x e x e c u t e f l o w 上海交通大学硕士研究生论文 7 1 . 3 研究背景目标和意义 1 . 3 . 1项目研究背景 面对如今规模庞大而又杂乱的信息系统和日新月异的技术发明虚拟机的优点日 益体现出来现在虚拟机在游戏系统的测试软件的测试或教学等方面都开始有 了广泛的应用 从展望未来的角度看摩尔定律迟早会遭遇真正的物理学定律晶体管的尺寸终 将会到达一个限度到那时在芯片上增加晶体管数量的办法就只剩下加大芯片自身 面积这一个了为了让处理器保持一个恰当的尺寸使用硬件的软件算法就必须变得 越来越高效为了提高商业软件的执行性能开发商业软件的工程师们习惯于投入更 多的硬件设备一方面是因为它具有立竿见影的效果另一方面则是因为它能缩短产 品面市的时间但在未来的 5 0年里投资开发更好的软件可能会比依赖于高速的机器 更具有成本效益虚拟机的前途不可限量 A R M H o l d i n g s 被D a t a q u e s t 誉为世界第一的知识产权供应商它拥有众多的授权 用户包括半导体和系统厂商实时系统开发商第三方电子设计自动化和工具供应 商晶片制造商和设计中心这些合作伙伴通过使用A R M 高效的I P 核技术研制生产 微处理器外围设备和系统芯片1 9 9 9 年这些厂商发售采用A R M I P 核的芯片1 . 8 亿 2 0 0 0 年发货量达到4 亿2 0 0 1 年A R M 占据了R I S C 微处理器市场7 5 % 的份额可以说 A R M 的3 2 位嵌入式处理器技术是世界上应用最为普遍的微处理器架构而在中国A R M 公司用了一年多的时间已初步形成了产业价值链不管是在A R M 技术授权方面还是 在开发工具销售和实时操作系统的开发方面均有众多的中国企业与之成为了合作伙 伴而且A R M 还和中国的大学合作启动教育项目以进一步推广A R M 技术应用 L i n u x 从1 9 9 2 问世到现在已经发展成为功能强大设计完善的操作系统它不仅在 服务器领域取得了成功在嵌入式领域也获得了飞速发展由于L i n u x 能支持X 8 6 A R M I P S A L P H A A P A R C 等多种体系结构同时具有内核功能强大性能高效稳定多任务 开发源码软件丰富完善的网络通信和文件管理机制支持大量周边硬件设备驱 动丰富大小功能都可定制等优点目前正在开发的嵌入式系统中4 9 % 的项目选择 L i n u x 作为嵌入式操作系统 G a m e B o y 是目前比较流行的8 位掌上游戏机 通常被简称为G B它的最终态G a m e B o y C o l o r G B C 是完全向后兼容的任天堂 G a m e b o y虚拟机在游戏行业有着广泛的市场 G n u b o y是 G B / G B C的软件模拟器是一种自由软件它是基于 Q t系统的能够运行几 乎所有的黑白和彩色的 G B / G B C 游戏 R O M 目前 G n u b o y 在 P C 环境下运行良好但在 A R M L i n u x 下还没有得到好的应用 上海交通大学硕士研究生论文 8 1 . 3 . 2项目研究目标 本课题的目的在于通过对 G n u b o y这种虚拟机的运行机制的研究利用基于 A R M 9 2 0 T核的 S O C芯片M o t o r o l a的 M X 1 搭建试验用的嵌入式 L i n u x平台探讨虚 拟机 G n u b o y的移植和优化问题希望对将来有打算在产品上应用 G n u b o y的 s m a r t p h o n e P D A等嵌入式产品项目有积极的参考价值同时对希望了解虚拟机及其 移植技术的朋友提供有益的帮助 1 . 3 . 3项目研究意义 G n u b o y已经实现了 i 3 8 6汇编代码的一些优化工作能够在奔腾机器上运行良好 除此之外到目前为止它能够运行的平台还很有限随着嵌入式系统设计技术的发 展P D A S m a r t p h o n e 等嵌入式产品的功能不断的得到扩展适应用户的需要G n u b o y 在嵌入式产品中的移植应用非常具有前景目前 G n u b o y在 A R M L i n u x下还没有得到很 好的应用本文就是在构建的基于 A R M 9 2 0 T L i n u x的嵌入式平台上对 g n u b o y运用进行 的尝试性工作同时G n u b o y作为一种虚拟机技术本文对它的运行机制的研究对 研究虚拟机技术在 A R M L i n u x 中的应用也具有一定的价值 上海交通大学硕士研究生论文 9 第二章 虚拟机移植及G n u b o y 2 . 1虚拟机及其移植技术 2 . 1 . 1程序可移植性及虚拟机 不存在完全可移植的代码仅仅是可移植代码多和少的问题一个可以产生尽可 能多的可移植代码的方法包括尽量采用标准库函数的代码虚拟机迫使你在编写软件 时要在所需支持的结构上采用尽可能少的非公共标准如实地支持不同结构中的不同 特性需要额外的工作而且并不一定总是一个可行的选择总体上讲虚拟机方法将所 有不同的平台平等对待来自一定的协定 可移植性 4 意味着简单的重新编译一下软件就可以运行在另一个平台上而跨平 台意味着只要编译一次代码就能够运行在任何地方或者说编译一次就可以运行在任 何它可以运行的地方跨平台代码与可移植代码不同但是可以认为跨平台代码是 所有可移植代码的根源 编译器产生的二进制指令被称为字节代码是由一组崭新的虚拟机本身的低级 机器指令组成用于解释已编译字节代码的虚拟机作为新创建的一个软件机器本质上 讲可以运行在任何计算机上 甚至可以被创建为一个新的硬件平台它使用编译的 字节代码作为它自身的机器指令 代码在虚拟机上被执行之前通过将虚拟机字节代码编译为不同的本地代码可以改 变虚拟机的运行特点因此取代解释该程序你可以正常的执行它这给了你在源 代码级上的移植性使你可以保留程序的优点在首选位置为自己的计算机编译高效 的代码这也提高了虚拟机的执行性能现在大多数虚拟机都带有一个用来把虚拟机 的字节码转换为计算机机器码的工具这些工具的具体机制主要有以下三种用一个 字节码到机器码编译器对虚拟机程序进行编译把其中的字节码一次性地全部转 换为计算机本身的机器代码然后再执行或者用一个即时( j u s - i n - t i m e , J I T ) 编译器 一边编译模拟机程序一边执行还有就是让运行时系统监控哪段字节码的执行效率最 高然后把那些最经常被执行的字节码指令在运行时转换为机器代码 解释型的语言本身并不意味着它的程序自然可以有跨平台的兼容性因为程序中 的所有因素取决于其下的操作系统世界目前还没有一个公用的方法来从不同的操作 系统中获取这些要素因此除了掌握他们首选的编程语言外软件开发者坚持学习 不同的应用程序编程接口或者A P I 即使你对C 语言熟悉的就象自己的手背一样要 开发各种各样平台上的C 应用程序意味着你必须也要成为一个各种A P I 的专家事实上 目标平台上提供的各种A P I 之间的区别是设计可移植程序的关键 通过使用带有类似G N U C 这样完善的引用库的C 语言是提高可移植性的途径 上海交通大学硕士研究生论文 10 运行时系统是各种计算机程序在其中得以执行的一个环境它提供了程序在 执行时所需要的一切东西运行时系统的种类有很多对运行时系统进行分类的办法 是把它们按执行程序指令的基本方式进行划分对那些以处理器本身的机器码为指令 的程序而言某计算机的处理器和操作系统就构成了与之对应的运行时系统处理器 提供了一种执行程序指令的机制C P U把编码为数值形式的指令从内存里取出并根据 那些指令完成相应的动作操作系统则实现了由处理器和操作系统构成的这个运 行时系统的策略部分C P U负责执行指令操作系统负责决定事情何时何地以及如 何发生我们可以把操作系统想像成一套完整的规则而 C P U将根据这套规则来执行 程序中的各条指令也就说对那些用机器指令编写的程序来说计算机本身就是一 个运行时系统程序的指令由物理 C P U在机器级上执行指令执行的具体过程由操作 系统管理这类运行时系统涉及计算机硬件和软件 那些指令不是由物理处理器来直接运行的程序需要一个完全由软件构成的运行时 系统在这种情况下程序的指令将由一台虚拟机来执行虚拟机是类似于计算机的 一个软件程序它会像真正的处理器那样取出并执行程序指令但两者的区别在于虚 拟机的指令执行过程发生在软件级而不是硬件级即指令是由软件而不是由硬件执行 的一般说来虚拟机应该包含管理执行路径所必须的有关功能并且还要提供通常 由操作系统负责提供的各种服务的接口 编写虚拟机是软件开发项目的一种它体现了一种使投资价值最大化的思路把 软件包从一种平台移植到另一个平台的工作需要花费不小的成本而且也不是所有的 软件包都能移植到所有的平台上去软件包所能支持的平台数量是有限度的使用虚 拟机就可以在遇到一种新硬件平台或者新操作系统时唯一需要移植的应用级软件就 是虚拟机本身可移植性好程序使用周期长是虚拟机最大的优点但一直以来很多 人反对使用虚拟机他们的观点很多其中最主要的就是虚拟机会降低程序的执行性 能随着计算机速度的飞速发展采用虚拟机的这些额外的开销和麻烦还是很值得的 因为它在可移植性方面的优势足以弥补这些其实慢不了多少的性能损失 2 . 1 . 2虚拟机的设计和移植 建造一个运行时系统需要经过一系列步骤描述和分析其中的关键路径的最佳方 法就是画出一个网络图来所谓关键路径就是一条贯穿整个项目网络的路径对 它的任何修改都会对整个项目造成影响建造虚拟机的关键路径如图2 - 1 所示 上海交通大学硕士研究生论文 11 4 6 7Write accessorial programto check the outputresult of compilerWrite binary executablefile and testConstructDebugger Process the executablefile produced by compiler under virtual maichine 图 2-1 虚拟机设计的关键路径 Figure 2-1 virtual machine design Critical path 首先必须建立一套游戏基本规则也就是确定自己的执行环境是基于堆栈 还是基于寄存器和虚拟机将使用什么样的地址空间之后还必须创建一个指令集 接下来的工作可以根据个人特点来安排你可以先去建造汇编器也可以先去建 造虚拟机但最终你必须把这两个部分合并到一起并且要保证汇编器能够生成正确 的指令虚拟机能够对汇编器生成的指令进行正确的处理 建造虚拟机的工作往往要比建造汇编器的工作更困难所以先建造虚拟机是很不 错的一种选择如果想透彻把握虚拟机对每一种指令的处理行为唯一的办法就是一 个字节一个字节地去建立一个字节码可执行文件只有这样才能对不同指令的操作 行为做到了如指掌才能对它们的执行结果做出正确的分析和判断有了虚拟机就 可以有的放矢地去建造汇编器 在一种平台和系统上设计好虚拟机可以运行符合这种虚拟机规范的所有程序 而此时如果需要在另一种平台上运用针对此虚拟机的现有程序就必须把虚拟机移 植到该平台上这就是虚拟机的移植问题如果还要在该平台上进行针对虚拟机的程 序开发还需要把汇编器也移植过去 虚拟机的移植一般涉及到以下一些问题编写虚拟机使用的语言使用基本数据 类型数据存储格式函数可重入问题中断的问题系统特定功能实现的接口等 以下分别介绍 1 . 语言 虚拟机的实现往往不止使用一种语言一般情况是大部分是用某一中高级语言 上海交通大学硕士研究生论文 12 比如 C语言而某些特定的功能实现可能用的是平台相关的汇编语言一般来说虚 拟机的实现所选用的语言越高级可移植性就越高并且实现代码高级语言比例越大 移植性越好 2 . 基本数据类型 在不同的计算机体系结构上基本数据类型的往往大小不同虚拟机移植到对应 平台时需要通过预定义等方式解决一致性问题 3 . 数据存储格式 多字节数据的降序或升序存储方式是把代码从一种平台移植到另一种平台时所必 须解决的一个主要问题假设有一个多字节值0 x 1 2 3 4 5 6 7 8 存放在内存中的某个地 方假设从地址 1 0 0开始存放这个数据的降序和升序表示法如图 2 - 2所示以降 序方式表示的数据也称为网络顺序这是因为 T C P / I P等网络协议要求通过网络传 输的信息数据都必须采用降序方式虚拟机在运行时必须保证程序的多字节数据存储 格式与目标计算机上的本地格式一致 3 4 5 67 81 2l i t t l e - e n d i a n 1 0 01 0 1 1 0 2 1 0 3t h e a d d r e s s o f f i r s t b y t e 图 2-2 多字节数据值在内存中的存放方式 Figure 2-2 the storage mode of multi-type data in memory 4 . 函数可重入问题 许多嵌入式操作系统不采用存储管理技术即不采用虚拟存储的技术进一步 许多嵌入式操作系统还不划分系统空间和用户空间换言之C P U一直在同 一种运行状态或模式一般是系统态下运行这意味着从一个应用进 程的代码中不仅可以直接调用内核中的函数还可以调用为其他应用进程而开 发的函数这样如果在这些函数中可以发生调度那就有多个进程并发进入这个函 数的可能这就要求被调用的函数是可重入的就是不访问全局变量的可是当 初在设计这个函数时可能并没有考虑到这一点这就带来了问题所以把通用操作 系统上运行的软件移植到这样的系统上时需要特别小心 5 . 中断的问题 虚拟机需要依赖宿主操作系统来提供诸如输入/ 输出和 I P C之类的基本服务让自 己游离于硬件通信细节之外将使虚拟机得到更好的可移植性反之虚拟机操作硬件细 节的代码越多则可移植性越差虚拟机对机器的操作的抽象至少有两个层次用来 隔离核心级汇编语言例程的系统调用以及用来封装系统调用的函数库调用如图 2 - 3 所示 上海交通大学硕士研究生论文 13 S y s t e m C a l l C o d e ( O s )- P r o c e s s M a n a g e r- M e m o r y M a n a g e r- D r i v e r I n t e r f a c eD r i v e r C o d eH a r d w a r e 图2-3 虚拟机对机器操作的抽象层次 Figure 2-3 the abstract operation layer of virtual machine 系统调用通常都是用软件中断实现的 而产生软件中断的办法只有一种 如在I n t e l 平台上使用的 I N T指令换句话说系统调用其实就是一系列相同的基本指令编写 出不同的变化组合除了标准函数库提供的操作系统服务有的系统调用服务需要通 过软件厂商的专用 A P I 或者自己开发的驱动程序接口才能在用户程序里使用 如果虚拟机对硬件的操作是在系统调用及其以下层次或者用到非标准的 A P I 则在移植时需要针对宿主操作系统修改相应的代码 6 . 系统特定功能实现的接口 在不同的系统和平台上访问图形设备声音设备等接口实现的技术会有不同 虚拟机要在上面正常运行必须提供对这些技术的支持 2 . 2 G n u b o y和整个系统关系 G n u b o y 是基于Q t 系统的可从图2 - 4 中看出它和整个系统的关系本文构建的基于 A R M 9 2 0 T 的嵌入式L i n u x 平台下采用的是嵌入式系统的Q T 版本Q T / E m b e d d e d 和 Q t o p i a ( Q P E ) 这有助于模拟器的移植 上海交通大学硕士研究生论文 14 Hardware SystemBased On MX1Embedded Linux 图2-4 系统软硬件结构图 Figure 2-4 the structure of hardware and software in system Q t / E m b e d d e d 是跨平台 C + + 图形用户界面( G U I ) 工具包, 因其面向对象跨 平台界面设计更美观而得到广泛的应用基于 Q t 的 X W i n d o w 程序可以非常方便地 移植到 Q t / E m b e d d e d 版本上因此, 自从 Q t / E m b e d d e d 以 G P L 条款形式发布以来, 就有大量的嵌入式 L i n u x 开发商转到了 Q t / E m b e d d e d 系统上 Q t o p i a , 即 Q P E ( Q t P a l m t o p E n v i r o n m e n t ) 是由 T r o l l t e c h 公司基于 Q t / E m b e d d e d 开发的第一个嵌入式的窗口环境和应用程序, 广泛用于 P D A 掌上设备网络设施等 它包括全套的个人信息管理 P I M ( P e r s o n a l I n f o r m a t i o n M a n a g e m e n t ) , 如地址本 电脑日程安排M P E G播放图像显示浏览器等, 当然也有 E 2 m a i l 游戏配置工 具 使用 T r o l l t e c h 公司的 X 开发平台自由软件的自由版Q t / E m b e d d e d 2 . 3 . 2 版 本和 Q t o p i a 1 . 5 . 0 版本, 下载 R P M 包并安装Q t 配置系统支持跨平台的编译器 摩托罗拉 M X 1 微处理器是 A R M 9 2 0 T 内核所以在 L i n u x / x 8 6 上进行如下配置和编译 . / c o n f i g u r e - q c o n f i g q p e - x p l a t f o r m l i n u x - x 8 6 - g + + - x p l a t f o r m a r m - l i n u x - g + + Q t o p i a开发工具包 S D K ( S o f t w a r e D e v e l o p m e n t K i t ) 是 Q t o p i a 开发环境的核 心部分, 编译后得到如下创建应用程序所需的工具包 虚拟帧缓冲 q v f b ( v i r t u a l f r a m e b u f f e r ) 是 X 窗口用来运行和测试 Q t o p i a 应 用程序的系统程序为运行 Q t / E m b e d d e d , 嵌入式 L i n u x 内核要支持帧缓冲( f r a m e b u f f e r ) Q t / E m b e d d e d 和 Q t o p i a 函数库( l i b r a r y ) Q t / E m b e d d e d 2 1 3 1 2 和 Q t o p i a 1 1 5 1 0 的核心函数库 Q P E ( Q t o p i a e x e c u t a b l e ) 用于处理所有的用户界面问题 m k i p k s 为配置 P D A 而产生 i p k 文件的包 此外还有用于 Q t 开发的典型工具 D e s i g n e r 用于设计窗口组件( w i d g e t s ) 的应用程序; t m a k e 跨平台 M a k e f i l e 生成器; m o c 用于 Q t C + + 扩展( e x t e n s i o n s ) 的 m e t a 2 o b j e c t 编译器 上海交通大学硕士研究生论文 15 u i c 从 X M L 文件生成代码的用户界面编译器 有了这些工具, 再加上 g + + ( G N U C + + 编译器) , 就可以进行基于 Q t / E m b e d d e d 的 Q t o p i a 应用程序的开发编译和调试 Q T / E m b e d d e d 实现了对下层输入设备的驱动和底层图形接口以及各基类和 A P I , 它 在编译后生成函数库被应用程序调用Q t o p i a 也是以客户/ 服务器的方式通过消息 机制来管理各种应用程序图 2 - 5 描述了 Q T 应用程序的执行方式及系统结构其中 X S e r v e r 是核心 X serverReceive requestand process Push eventsto queueLayer relative with devicesHardware and Os 图2 - 5 Q t 应用程序执行过程 F i g u r e 2 - 5 A p p l i c a t i o n e x e c u t a t i o n p r o c e s s 上海交通大学硕士研究生论文 16 第三章 平台的搭建 3 . 1硬件环境 3 . 1 . 1 M o t o r o l a M X 1介绍 自1995 年Motorola 推出龙珠系列微处理器以来龙珠系列微处理器已经 成为全球最畅销的掌上电脑微处理器2001 年底Motorola 又推出了基于ARM 核技 术的MX15 微处理器为便携式产品市场提供了完整的外围设备智能接口MX1 微处 理器是首款基于ARM 核心的龙珠产品瞄

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论