论文部分内容阅读
Java虚拟机是Java的核心技术之一,是Java技术实现“平台无关”特性的基础。Kaffe虚拟机是一款能够净室执行的开源Java虚拟机,是需要执行Java应用程序的开源嵌入式系统的很好选择。但Kaffe目前并不支持MMU(Memory Management Unit)-Less的嵌入式处理器和操作系统以简化系统设计,因此本文的研究目的就是通过对Kaffe的一些特性进行修改并附加相关类库,将其移植到正在广泛使用的ARM7/uClinux嵌入式平台上,构建“Java运行时环境”使该平台能够执行Java应用程序。本文为Kaffe虚拟机建立了全新的平台配置文件和初始化文件,对Kaffe虚拟机包含解释器和即时编译器等核心组成部分进行平台相关文件的完善和修改。根据ARM7处理器的指令长度和数据类型等方面的特点,对Kaffe虚拟机的数据结构进行了重新设置。根据ARM7和uClinux的MMU-Less的特点,在Kaffe的处理器配置文件中定义新的宏操作来协助ARM7访问内存,并且通过GLIBC来查找本地方法中内存管理的处理方法。因为ARM7处理器采用了FPA(浮点协处理器)和VFP(向量浮点协处理器)两种不同的浮点运算单元,而Kaffe虚拟机目前仅支持FPA方式,所以本文又设计了不同的处理机制完成Kaffe虚拟机对VFP方式的支持。采用iMocha和SciMark工具集对上述研究内容进行系统测试的结果表明,改进后的Kaffe虚拟机能够在MMU-Less的ARM7/uClinux嵌入式平台上运行,同时支持Java应用程序的正常执行。最后,对Kaffe虚拟机与Wonka虚拟机的运行数据进行了比较,结果证明Kaffe虚拟机不仅在一些操作上具有速度优势,并且能够完成Wonka虚拟机所不具备的字符动态连接和字符串连接的功能。