【Java开源代码栏目提醒】:本文主要为网学会员提供“java虚拟机在armlinux平台的移植研究 - 期刊论文”,希望对需要java虚拟机在armlinux平台的移植研究 - 期刊论文网友有所帮助,学习一下!
quotquot虚拟机在 amp’ 平台的移植研究 杨海明 王新辉 quot昆明理工大学信息工程与自动化学院云南 昆明 -quotquotamp amp 摘要 quot 本文所讨论的是在嵌 入 式 ./012 系 统 下 的 运 行 环 境 的 实 现 论 述 了 开 放 源 代 码 的 虚 拟 机 34567 和 核 心 类 库389: ltgt7 在 AB6./012 平台的裁减和移植 关键词quot 虚拟机’456 ’89: ltgt ’BA6CDEF ’GGE 中图分类号 quotamp-amp 文献标识码 quot. 文章编号 quot//-0amp/1quot//230quotamp20/quot 4565789 : lt95 :7ltgt : 7ltA 89gt lt: lt95 .40BC Alt:7’ HA98 I/4/0JK LA98 M/01/ 3NltltOJO NP D0PNQ4/N0 R0J/0OOQ/0J 0S A1N4/T/N0K F104/0J :0/OQ/U NP EV/O0VO 0S WOV0NltNJUK F104/0J -quotquotampK /07 .D6lt78lt6EWO OU /0QNS1VOS O QOlt/T/N0 NP O0/QN04O0 Q100/0J X gtQNJQ4 /0 O4YOSSOS ./012 UO4Z WO Q/VltO S/V1O QOS1VOQ 0S gtNQ/0J NP NgtO0N1QVO /Q1lt 4V/0O34567 0S O X VNQO Vlt lt/YQQU389: ltgt7 /0 AB6./012 gtltPNQ4Z F5G H:7I6E /Q1lt 4V/0O 456 89: ltgt BA6CDEF GGE 引言 实现 它很易于和 567 F0quot99:quotlt 一同移植到嵌入式的 0A 平 台 随着软件业界内开源风气的日渐盛行 开源的 quotquot 虚拟机的 上quot开发呈现出一片欣欣向荣的景象quot 不少成熟的 quotquot 虚拟机已经被 ’ 在宿主机上的裁减与编译开发出来 乃至进入应用领域quot 除 amp 外业界也有诸如 ’quot OPK 搭建交叉编译环境-quot .quot/0 quot12 等一系列健全的 易于移植的并且符合标准 这个交叉编译环境通常被称做交叉编译工具链 Q0 Fltquotamp的开源 quotquot 虚拟机 quot 本文选取这些开源虚拟机中的最 适 合 34 主要包括预处理器 RFDDH 编译器 B5FFHF 库 B50/8S6Igt/H 汇编器等小型嵌入式设备的 quot12 进行移植研究 并结合 quotquot 核心类 BT.H和链接器 BgtUHquot 其中 FDD 处理所有的头文件和宏并生成 F 程库 567 80quot99:quotlt 的裁减与安装最终实现了在嵌入式 34gt 序文本文件quot 5FF 将经过预处理的 F 文件编译为汇编代码quot T. 将A 平台上运行标准 quotquot 程序的目的 quot 汇编代码生成二进制可重定位的目标对象文件 再由链接器 gtU 并 quot 虚拟机的概念 入引用到的预编译目标文件并绑定到地址最终生成可执行文件quot quotquot 虚 拟 机 B2C 是 quotquot 技 术 的 重 要 组 成 部 分 是 运 行 所 有 在文中的项目里使用了 VVWOON 的 T4 开发板 X 由华恒公司quotquot 程 序 的 抽 象 计 算 机 与 实 际 的 计 算 机 一 样 具 有 一 个 指 令 集 提供了 全 套 的 交 叉 编 译 工 具 链 安 装 到 宿 主 机 后 在 S:Slt9SquotJ并使用不同的存储区域 quot 它主要负责执行指令 还要管理数据 内 1O0S/ 下有全套的交叉编译工具 编译器 quotJ1O0-I0存和寄存器 quot AY88’ 汇 编 器 quotJ1O0 -I 0A quot9 ’ 链 接 器 quotJ1O0 quotquot 虚拟机是程序与底层操作系统和硬件无关的关键quot 它的 -I0A0Z ’ 调试器 quotJ1O0-IgtAYZ/ quot下 方 是 移 植 接 口 移 植 接 口 由 两 部 分 组 成 适 配 器 和 quotquot 操 作 系 OPW 安装 quotquot 类编译器 -9统 quot 其中依赖于平台的部分称为适配器 2 通过移植接口 在 具 直接运行下载的 4D 安装包 G-9KPWWKP9J8PJ:1 会 自 动 把体的平台和操作系统上实现 quot 在 2 的上方是 quotquot 的 基 本 类 库 -9 安装到宿主机 X 然后在系统提示符下运行 G-9 如看到和扩展库以及它们的 3DE quotquot 的平台无关性就是 因 为 有 2 实 JJlt9quot G-9现了程序与操作系统的分离 quot 9_ G-9 :9 09 0PGquotquotPPP ‘J 1J lt0:X J lt0: J J9P quotquot 源程序的执行过程为quotquot 源程序经过 quotquot 编译器编译 这样的提示信息表示安 装 成 功 可 以 用 G-9 来 编 译 Gquotquot 源生成字节码文件 然后由类装载器将字节码文件装载到方法区 文件了quot中 再进行连接验证 由 quotquot 虚拟机读取字节码 转换为特定平台 OPL 编译和安装 567 F0quot99:quotlt的指令并在对应的 FD7 中执行quot 下载类库包 80quot99:quotltNPaWPquotJPYb 并解 压 X 进 入 目 录 进 行 交 叉 本质上quotquot 虚拟机是就是一 个 程 序 当 它 在 命 令 行 上 启 动 编译quot 首先要指定编译工具即 Q08ltquot 的所在位置amp然后进行的时候 就开始执行保存在某字节码文 件 中 的 指 令 quot quotquot 语 言 的 配置 R 这里的配置是指运行 PS8YJ 程序 H 指定目标平台 lt9c可移植性正是建立在 quotquot 虚拟机的基础上 quot 但 是 2 要 依 赖 于 quotJ1O0-I0AX 并且要指明 Gquotquot 编译器为刚安装的 G-9 具体的操作平台所以要针对不平的平台来进行移植quot 指定 80quot99:quotlt 的安装目录为 SGquot11S0/S80quot99:quotlt amp ’ JJlt980quot99:quotltNPaWd FFcquotJ1e0-I0AY88 quot12 是一个新的 quotquot 虚拟机符合 2 规范第二版本quot 它 T4cquotJ1O0-I0AquotJ gtUcquotJ1O0-I0A0Z FDDc虽 然 小 但 支 持 完 整 的 规 范 包 括 支 持 对 象 的 收 尾 器 调 用 对 象 的 quotJ1O0-I0A8:: 4T6gtEfcquotJ1e0-I0AJquot0/次弱虚引用类卸载Gquotquot 本地接口 B6EH 与反射 3DE quot quot12 有 .Q4EDcquotJ1e0-I0A9J:两个最主要的特色 一个是极小的二进制码与其它虚 拟 机 不 管 PS8YJ lt9cquotJ1e0-I0A Z9quot/0Y-:J Z9quot/0Y8:J是免费的还是商业的 amp 相 比 显 得 非 常 小 DIJDF 上 KLM’ 而 E0 Z9quot/0:0Y上 KNN’ ampquot 另一个是高效率的 quotquot 解释器 目前 quot12 为了保证 IltG-9它的小尺寸只包括一个解释器 但照样具有很高的运行效率quot IltGquot12 的解释器效率一般是 ’quot 的五倍采用了一个 重 要 的 程 :JAcSGquot11S0/S80quot99:quotlt序设计技术就是堆栈缓冲 quot 因为 quot12 的大部分程序都用 F 来 在 配 置 选 项 里 结 合 项 目 的 要 求 对 F0quot99:quotlt 进 行 了 裁 减 X 把 收稿日期quotquotquotamp’ 作者简介杨海明quotampamp 男山西偏关人硕士研究生主要研究方向嵌入式系统与 技术 导师简介周兰江副教授研究方向 技术与分布式系统 -./0quot 图形库 标准图形桌面环境 amp’ 浏览器插件库禁掉不编译 quot 经过以上步骤完成环境变量设置后 quot 接下来 应 该 考 虑 把 裁 减并 考 虑 到 以 后 还 要 添 加 更 多 的 第 三 方 包 quot决 定 编 译 - 编 译 好 的 AFG 即 指 HA-A 下 的 所 有 子 目 录 和 文 件 Z 移 植 到 目./-0 ’.010 根据需求完成配置后开始编译amp 标平台 RSG:T/’5M 系统时应该放在哪里’ 21ampamp.34amp516amp7. 8779.6:ltgt AB0 下面提出了三种移植的方案 amp 编译完成后执行安装命令amp 第一种方案amp把 AFG 放在 盘里 21ampamp.34amp516amp7. 1ampamp.AB0 /’7.88 将编译好的的 H- 虚拟机quot即 HA-A 下的所有目录和文件复 这时 quotC8779.6 已经安装成功 制 到 一 个 盘 上 quot 在 启 动 RSG 板 上 的 8/’5M 系 统 后 quot 使 用 命 令 DltD 编译安装 EAFG Aamp5’. ‘0-7‘ A’. 把 盘挂载到目标板上 然后进行环境变量的 下载 HA-A:IltDltJlt.1ltK 并解压quot进入目录 配置quot完成上文提到的 D 步quot为了快速方便可以先写一个脚本文件 进行交叉编译前的配置quot同样的quot指定编译工具为 1A-D8:5’ amp’/ 放在 盘里quot 保存以后用命令 6Aamp‘ kM amp’/ 来付于其可B’ampL’:8/’5M:NO 包 括 PCCQRSQTUQCVVQWquotSXV 和 SRTXYZ quot 指 定 目 执行权限 这样挂载后直接运行文件 amp’/ 来配置环境变量 标平台为 6amp7.1A-D8:5’B’ampL’:8/’5Mquot指定 EAFG 虚拟机的安装 该 方 案 把 - 虚 拟 机 AFG 放 在 盘 里 quot使 虚 拟 机 具 有 了路径为 HA-AQ 同时还要指定与虚拟机配套的 E- 核心类库 RV 便携可移动的特性quot符合嵌入式的思想 在使用时可以直接插拔 即我们前面安装的 P C8779.6 的所在目录 quot 这是因为 EAFG 到具有 RSG:T/’5M 平台的目标板上 quot 不占用 876 空间 而且实现虚拟机用到了这些 8779.6 里面的包 不指定的话在运行 H- 字 比较简单quot不需要重新对内核与文件系统做任何改动节码时会出现错误 Z amp 第二种方案amp把 AFG 放到 SRGUXWl 21ampamp.34amp516amp7.HA-A :IltDltJ_ CC 1A-D8 :5’B’ampL’ :8/’5M : SRGUXWl 是使用磁盘文件系统的压宿镜像存放在 m876 中 quotRS1A-D8:5’B’ampL’:8/’5M:1 TU1A-D8:5’B’ampL’:8/’5M:8‘ CVV 在系统初始化时quot解压缩到 WUSRG 并挂载为根文件系统 该移植1A-D8:5’B’ampL’:8/’5M:99 SRTY1A-D8:5’B’ampL’:8/’5M:1’ 方案要先在宿主机上用 5’K/9 把要烧写到 m876 里的 1A‘/7Blt/A8/a WquotSV1A-D8:5’B’ampL’:8/’5M:7.1/9 ltamp’/510 0ltK 解压 quot 建一个挂载目录 1A‘/7BQ 然后 Aamp5’. – amp 8ampamp9 1A‘/7Blt ::6amp7. 1A-D8 :5’B’ampL’ :8/’5M :910/M HA-A ::L/.6 :877 /A01A‘/7B 这时把 HA-A 目录全部复制 1A‘/7B 下 quot 再修改启9.6:/’7.88:‘/1HA-A8/a8779.6 动脚本 /’/.lt‘ 文件来初始化 - 虚拟机的运行环境quot让 8/’5M 系统 配置完成后开始编译amp 启动后就可直接运行 AFG 最后 5Aamp5’.1A‘/7B 把文件系统镜 21ampamp.34amp516amp7. HA-A:IltDltJ AB0 像文件再压缩 quot 然后烧写到 m876 里面 这样就把 AFG 移植到 在编译过程中可能会提示一些出错信息quot根据 提 示 信 息 适 当修改源代码即可顺利通过 目标板上了 使用该方案时 SRGUXWl 离不开内核的支持quot这就要 再 执 行 安 装 命 令 quot 把 编 译 出 来 的 文 件 安 装 到 预 定 目 录 amp 求 在 移 植 和 编 译 8/’5M 内 核 时 对 SRGUXWl 的 支 持 做 相 应 的 参 数HA-A 设 置 将 AFG 放 在 SRGUXWl 的 特 点 是 速 度 快 quot 因 为 它 是 在 21ampamp.34amp516amp7. HA-A AB0 /’7.88 SRG 中运行的 缺点是每次系统掉电后quot前面创建的文件就会丢 安装完成后quot可以进入 HA-A 目录来查看安装的文件和目录 失当需要向 AFG 里另外添加包如对串口支持的 SnquotnampAAlt结构amp 21ampamp.34amp516amp7. HA-A 87 H1 时要修改 1A‘/7Blt/A0ltK quot 还要重新烧写 m876quot 很不方便 a/’ /’85‘0 8/a 7610 第三种方案amp使用 WWmgt 文件系统 进入 HA-Aa/’ 下会有一个 HA-A 文件quot 这就是将要在目标 对 于 mmWgtquot则 不 要 解 压 原 有 的 H7gtlt/A quot而 是 直 接 往 原 来 的板上运行的虚拟机的可执行文件 目录里面添加即可 mmWgt 支持在扇区上直接执行闪存擦除 写 读 Dltb 增加链接库文件 操 作 quot 而 且 系 统 掉 电 后 在 mmWgt 里 创 建 的 文 件 也 不 会 丢 失 将 AFG 在启动时需要读入两个 K/9 文件quot 这需要 K8/a 库文件 m876 存 储 空 间 分 为 四 个 区 quot分 别 用 来 存 放 cYampamp.8amp‘01 T/’5M 内 核的支持 找到宿主机上交叉编译工具链所在的目录quot进 入 到 库 文 压 缩 文 件 SA‘/7B 压 缩 文 件 mmWgt 文 件 系 统 做 一 个 mmWgt 的件所在的目录 amp 映像文件 7gtlt/A quot 把 HA-A 复 制 到 里 面 quot 根 据 对 m876 分 区 的 设 amp9.6amp7.1A-D81A-D8:5’B’ampL’:8/’5M8/a 把两个链接库文件 定quot把 7gtlt/A 烧写到 m876 中的正确位置quot为了使系统启动时能8/aKlt7amp 和 8/aKlt7ampltI 复制到 HA-A8/a8779.6下 够自动挂载 mmWgt 文件系统quot 在 SA‘/7Blt/A0ltK 的 启 动 脚 本 文 经过以上五步 quotHA-A 下的所有目录和文件就是要移植的虚 件里加入挂载命令 这样就可以像访问其他文件系统一样方便地拟 机 quot只 要 把 HA-A 移 植 到 目 标 平 台 上 quot对 环 境 变 量 进 行 相 应 的 访问 mmWgt 分区设置就可以使用 HA-A 来执行 H- 字节码 lt877 文件 Z quot 但是这 该方案实现了 AFG 与根文件系统 SRGUXWl 的分离 而且个 lt877 文件必须是在宿主机上用 H/B07 来编译生成的 编译的时 可以动态地向 AFG 里添加或删除 - 包 quot 缺点是 WWmgt 需要候应指明加载包名 即用如下命令来编译 ltH- 文件 amp 像内核一样专门移植quot增加了移植的工作量 /B07 :aampamp.8779.6 结束语 HA-A7610HA-A87707ltK/9cHA-A76108779.68/aHltK/9 本 文 针 对 - 虚 拟 机 AFG 在 RSG:T/’5M 平 台 下 如 何 移dltH- 植 做 了 详 细 论 述 quot介 绍 了 交 叉 编 译 的 方 法 quot在 目 标 平 台 上 构 建 了 移植到目标平台 quotamp’ 上 一个 - 程序的运行环境 由于项目的需要 quot 没有对图形库进行 要使 AFG 在 RSG 板上的 8/’5M 系统下运行 - 字节码文 移植quot使 AFG 无法运行带图形界面的应用程序quot还有让 AFG件 quot 应对 8/’5M 系统进行环境变量设置 amp 可实现对串口操作quot这些问题都有待进一步深入研究解决 IZ 指 定 类 路 径 即 amp0M9amp1. YeequotCTRWWVRquotf HA-A7610 参考文献HA-A87707ltK/9c HA-A76108779.68/aHltK/9 2I 孙 天 泽 Q 袁 文 菊 lt 嵌 入 式 设 计 及 T/’5M 驱 动 开 发 指 南 基 gtZ 指 定 TUgTYRShgVRquoti 环 境 变 量 到 HA-A8/a8779.6 于 RSG 处理器 2Glt 北京 c 电子工业出版社 QgtoltIlt下 quot 那 里 有 许 多 dlt7amp 文 件 quot 这 些 都 是 H- 核 心 类 库 RVX 的 C 程 序 2gtquot/A T/’‘6amp8AQm1’B h088/’ 美 Z 著 Q 玄 伟 剑 Q 等 译 lt - 虚 拟链接 即amp0M9amp1. TUgTXYSRShgVRquotiHA-A8/a8779.6 机规范 2Glt 北京 c 北京大学出版社 QIoltplt JZ在目标板上的 8/a 下建立链接amp 2J 曹 晓 钢 Q 蒋 靖 Q 译 lt 深 入 E- 虚 拟 机 原 书 第 gt 版 2Glt 北 8’ :7 HA-A8/a8779.68/aKlt7ampltI 8/a8/aKlt7ampltI 京 amp 机械工业出版社 QgtJlt 8’ :7 HA-A8/a8779.68/aKlt7amp 8/a8/aKlt7amp 2DEAFG 官方网站amp6..9cHA-Alt7amp510amp10lt’0.lt DZ添加环境变量 VRquoti amp0M9amp1. VRquotijVRquoticHA-Aa/’ 2bP 开源组织网站 c 6..9cLLLlt’5ltamp1lt quotJava虚拟机在ARM-Linux平台的移植研究作者: 杨海明, 王新辉, YANG Hai-ming, WANG Xin-hui作者单位: 昆明理工大学信息工程与自动化学院云南昆明650051刊名: 电脑知识与技术(学术交流)英文刊名: COMPUTER KNOWLEDGE AND TECHNOLOGY年,卷期: 2007,211引用次数: 0次参考文献5条1.孙天泽.袁文菊 嵌入式设计及Linux驱动开发指南-基于ARM9处理器 20072.Tim Lindholm.美Frank Yellin.玄伟剑 Java虚拟机规范 19973.曹晓钢.蒋靖 深入Java虚拟机 20034.查看详情5.查看详情相似文献2条1.期刊论文 王伟..