【vfp开源代码栏目提醒】:文章导读:在新的一年中,各位网友都进入紧张的学习或是工作阶段。
网学会员整理了vfp开源代码-基于kaffe虚拟机运行过程的研究 - 期刊论文的相关内容供大家参考,祝大家在新的一年里工作和学习顺利!
科赫 科l技I论I坛 基于Kaffe虚拟机运行过程的研究 金玉苹 (牡丹江师范学院数学系,黑龙江牡丹江157012) 摘要:虚拟机是Java的核·心技术之一.是Java技术实现“平台无关”特性的基础。
Kaffe虚拟机是一款能够净室执行的
开源Java虚拟机,是需要执行Java应用程序的
开源嵌入式系统很好的选择。
但Kaffe目前并不支持MMU—Less嵌入式处理器和操作系统,通过对Kaffe的结构和特点进行了研究和分析,构建“Java运行时环境”,使该平台能够执行Java应用程序。
关键词:Java虚拟机;Kaffe虚拟机;ARM处理器;uClinux 1概述 为main20方法寻找方法标识 Mainfl主函数 Kaffe虚拟机是目前流行的源码开放的 符,并建立字符串类型数组(JvM,虽然没有进行SUNtl认证,但是它提出的 0env一>NewObjectArray)“净室系统”的概念完全兼容并能良好支持Java =NewObjectArray),最后将参 初始化虚似机 初始化基础类技术。
另外,K/life虚拟机能够支持绝大多数版 数转换成UTF8字符串形式( Jni初C始rea化te变lav量aVM_◆ f——一 i本的嵌入式处理器和嵌人式操作系统,在本设 产env->NewStringUTF)。
计中选择比较稳定的工业版Kaffe一1.0.b4,而不 下面对执行过程中所涉是最新开发的katie一1.1.X版本,因为新版本仍 及的主要方法进行简要的介 绍: 装载类 装栽静态类_◆装栽超类-+纂篓慧在研发的过程中,存在着许多没有发现的Bug。
2 Kaffe源码的组织结构 3.2.1第一步:mcls=(*env) 在Kaffe的根目录中包含着实现不同功能 一>n??_字:忙竺,竺xJ; 验证 4 验证格式 _ 验证字节码曲的程序。
2.1 developers目录中包含为Kaffe继续开 此语句墨只/kaffe/kaf-8 f。
辱矗再i的≤方挂 evm/jni/jni.c中的Kaffe_Find一::。
‘1图 ………lv……………“ 参考文献发准备的不同文件; Class0方法,Fi。
dCl。
。
0方法通过调用一个Java 2.2 方法(class.forNam。
)直接使用虚拟机,节省了在 〔1〕Bill Venners.深入Java虚拟机〔M〕.北京:机械 config目录中的包含着不同硬件平台 工业出版社-2003·相关的处理
代码和调用它们所需要的文件,并 方法区或数据结构中的查找工作,Kaffe执行 C1asS.forN。
m。
所用的方法如下: 〔2〕闫伟,谷建华.Java虚拟机即时编译器的一种保存在不同名称(如alpha、m68k和mips等)的子目录中。
另外,在此目录中还包括了10、数学 do execute_java clas8一method (&retval, “Ja一 实现原理〔J〕.微处理机,2007(5)· 〔3〕Zhang Dunhua,Liu Jian.Java class loading和信号等方法的配置; va/lang/ClassLoader”,NULL. 2.3 and its application·Computer engi— include目录中提供的本地方法的接 “getSystemCl∞sLoader”, “OLjava/lang/Class—mechanism and design,2004.25(3). 口定义,这些接口都是平台相关的文件所需要 Loader;”): neering 〔41Sun Microsystems Inc.The Java virtual ma—的; 3.2.2第二步: chine specification· libraries目录中包括Java类库以及任 2.4 mmth = (+env)一>GetStaticMethodiD(env,何它所依赖的本地方法; mels,“main”,“(〔Ljava/lang/String;)V’’);http://java.sun-eorn/docs/books/vmspec/2nd—edi一 2.5 libltdl目录为GNU libtoolt31准备的一 这个方法是虚拟机执行程序的入口,它从tion/html/VMSpecTOC·doc个系统独立的dlopen包; J。
va程用程序类执行带有类型指针和Jav。
方法〔5〕李允,罗蕾,雷昊峰,熊光泽.嵌入式虚拟机的性 2.6 kaffe目录包含了虚拟机的核心
代码; 指针两个参数的主方法,当方法返回代表了应 能优化技术〔J〕.计算机工程,2004,30(18)· 作者简介:金玉苹(1981~),女,汉族,黑龙 2.7 test目录包含了对不同功能的测试用 用程序执行完毕。
例,包括unico、calc等。
3.2.3第三步:KaffeVM_callMethodV(m, 江省巴彦县人,讲师,硕士研究生,主要研究领 另外,在主目录中还包含着Kaffe的说明 METHOD NATIVECODE(m),0bi’ar鼬,&retval); 域为计算机应用技术、模式识别。
文件和此版本的更新
文档。
在/kaffe/kaffevm/support.C中定义的此方法 3 Kaffe虚拟机的运行过程 用来调用一个本地或者Java方法,它会分析一 同一般的应用程序一样,Kaffe虚拟机也从 个调用是本地方法还是Java方法,是一个静态它的主文件开始执行(/kaffe/kaffe/main.C),其中 类田方法还是一个对象方法,并且采用安全的方包括了两个方法:main(int argc,char*argv〔1)和 法进行调用。
main2(JNIEnv8 env,char 4argv口,int farg,int Void KaffeVM_safeCallMethodV(Method8argc)。
当main函数执行结束后,将使用return meth,void4 func,void8 obj,va-list args,jval—语句返回到main2函数中执行。
如图1是主方 He+ret){BEGIN_EXCEPTION_HANDLING—VOI法的执行顺序,是执行Java程序最重要的路 D 0;KaffeVM——callMethodV(meth,func,obj,args,径。
re0;END EXCEPTION HANDLING0;) 3.1初始化虚拟机 最后该方法会根据执行的Java程序的内 其中main方法的主要
工作是对JNI_Cre— 容,调用解释器或者即时编译器。
ateJavaVM全局变量嗍进行初始化,并且结合局 4结论部变量的地址计算出main方法堆栈的上限,此 通过本文的分析可以看出,Kaffe虚拟机同上限值十分重要,它同下限值一起主要为垃圾 所有的JVM一样,具有所有JVM所具有的特收集器标志出对内存扫描时的边界。
点。
它能够按照JVM的标准方式,通过建立 3.2
程序的运行过程 JVM实例来装载和执行Java应用程序。
通过针 main20方法是直接让应用程序执行的方 对ARM7/uClinux平台的分析,得到了本设计过法,在main20方法中首先是调用带有类型名称 程中应该进行的工作方向,并总结出在实际移的FindClass0方法,然后调用GetStaticMethod() 植的过程中应该重点关注的特点。
一56— 万方数据基于Kaffe虚拟机运行过程的研究作者: 金玉苹作者单位: 牡丹江师范学院数学系黑龙江牡丹江157012刊名: 黑龙江科技信息英文刊名: HEILONGJIANG SCIENCE AND TECHNOLOGY INFORMATION年,卷期: 2010,quotquot4引用次数: 0次参考文献5条1.Bill Venners.深入Java虚拟机M.北京:机械工业出版社.2003.2.闫伟谷建华.Java虚拟机即时编译器的一种实现原理J.微处理机20075.3.Zhang DunhuaLiu Jian.Java class loading mechanism and its application.Computer engineefing anddesign2004.253.4.Sun Microsystems Inc.The Java virtual machinespecification.http://java.sun.eorn/docs/books/vmspec/2nd-edition/html/VMSpecTOC.doc5.李允罗蕾雷昊峰熊光泽.嵌入式虚拟机的性能优化技术J.计算机工程20043018.相似文献10条1.期刊论文 闫伟.谷建华.YAN Wei.GU Jian-hua Java虚拟机即时编译器的一种实现原理 -微处理机2007285 深入分析了Kaffe虚拟机的JITJust-In-Time实现原理以及在JIT中如何利用Trampoline技术来作为跳板达到提高Kaffe虚拟机的执行性能并通过在i386上结合实例来具体了解Trampoline的实现.最后深入分析了作为JIT核心的翻译器在JIT中如何将字节码映射成为中间码并翻译成为本地
代码的实现原理.2.学位论文 阎慧 基于微内核的实时Java虚拟机的实时技术研究 1998 Java技术是一种新的跨平台运行的计算机技术.它的出现和不断完善改变了传统的编程方式和计算模式为实时系统的应用和发展带来了新的思路和方法.该文从介绍实时Java技术的基本原理和一般模型入手详细阐述了Java虚拟机的基本结构和运行机制认真总结了一个具体的Java虚拟机-Kaffe虚拟机源
代码的分析和研究结果.在此基础上重点探讨构筑在微内核操作系统之上的实时Java虚拟机的总体设计思想和线程机制、垃圾回收器等相关部分的实时化算法和技术.最后简要介绍了一个包含主要思想和算法的实时Java虚拟机模型的.3.期刊论文 杨敏华.谷建华.闫伟.Yang Min-hua.GU Jian-hua.YAN Wei 基于MiniGUI的嵌入式Java虚拟机实现 -微电子学与
计算机2005225 针对现有的运行于QT图形库上的Kaffe虚拟机中存在的诸多问题通过深入分析Kaffe虚拟机的原理及体系结构提出了将Kaffe的AWT类库移植到嵌入式图形库MiniGUI上的方案并在嵌入式Linux上给予了完整的实现.结果表明采用该方案所实现的系统很好的克服了基于QT的旧系统上存在的各种问题.4.学位论文 郑超峰 基于ARM7/uClinux的JVM移植研究 2008 Java虚拟机是Java的核心技术之一,是Java技术实现“平台无关”特性的基础。
Kaffe虚拟机是一款能够净室执行的
开源Java虚拟机,是需要执行Java应用程序的
开源嵌入式系统的很好选择。
但Kaffe目前并不支持MMUMemory Management Unit—Less的嵌入式处理器和操作
系统以简化系统设计,因此本文的研究目的就是通过对Kaffe的一些特性进行修改并附加相关类库,将其移植到正在广泛使用的ARM7/uClinux嵌入式平台上,构建“Java运行时环境”使该平台能够执行Java应用程序。
本文为Kaffe虚拟机建立了全新的平台配置文件和初始化文件,对Kaffe虚拟机包含解释器和即时编译器等核心组成部分进行平台相关文件的完善和修改。
根据ARM7处理器的指令长度和数据类型等方面的特点,对Kaffe虚拟机的数据结构进行了重新设置。
根据ARM7和uC
linux的MMU—Less的特点,在Kaffe的处理器配置文件中定义新的宏操作来协助ARM7访问内存,并且通过GLIBC来查找本地方法中内存管理的处理方法。
因为ARM7处理器采用了FPA浮点协处理器和
VFP向量浮点协处理器两种不同的浮点运算单元,而Kaffe虚拟机目前仅支持FPA方式,所以本文又设计了不同的处理机制完成Kaffe虚拟机对
VFP方式的支持。
采用iMocha和SciMark工具集对上述研究内容进行系统测试的结果表明,改进后的Kaffe虚拟机能够在MMU—Less的ARM7/uClinux嵌入式平台上运行,同时支持Java应用程序的正常执行。
最后,对Kaffe虚拟机与Wonka虚拟机的运行数据进行了比较,结果证明Kaffe虚拟机不仅在一些操作上具有速度优势,并且能够完成Wonka虚拟机所不具备的字符动态连接和字符串连接的功能。
5.学位论文 闫伟 Java虚拟机的研究以及在数字电视中间件上的应用 2006 本文就是在这样的背景下对基于源
代码开放的Kaffe虚拟机进行深入的研究,并对部分模块提出了相应的改进
设计。
研究了Kaffe虚拟机的模块组织结构,以驱动模块为核心层层分析。
接着,深入分析了Kaffe虚拟机的即时编译器的实现原理,着重论述了它的Trampoline实现机制和中间
代码的应用,并根据Kaffe虚拟机的JIT特点提出了并发运行模型的改进方案。
深入研究了Kaffe虚拟机内存管理机制的分离存储的空闲
列表的实现原理。
还对其基于三色模型的保守垃圾回收算法进行了论述,并提出了改进设计
方案。
最后通过研究数字电视中间件模型,设计并实现了将Kaffe移植到Qt/E图形库之上,并针对嵌入式平台的需要,对Kaffe进行适当的裁减。
通过对Kaffe虚拟机的研究与改进,为Java虚拟机在嵌入式领域平台开发与移植提供了重要的参考价值。
6.期刊论文 杨丽洁.YANG Li-jie 虚拟机控制流的途径 -河北工业大学成人教育学院学报2005204 本文通过深入分析Kaffe虚拟机的控制流源码遵循Java应用程序在Java虚拟机中运行的实际流程从初始化和装载以及执行两个方面论述了Kaffe虚拟机对
Java应用程序的处理机制.同时针对网络计算机从改善虚拟机运行性能兼顾硬件、软件条件且保证功能性的角度提出了一些优化Kaffe虚拟机控制流的途径其中涉及一种基于解释器的优化方式及几项提升优化效果的设计.这些优化途径将成为后续优化实施方案的重要组成部分.7.学位论文 吕海涛 基于Kaffe的实时Java实现研究 2005 随着Java语言在计算机
软件开发领域的广泛使用,人们开始考虑把它用于实时系统开发的可能性。
经过一批专家的努力,《实时Java规范》简称RTSJ1的最终版本在2001年11月公布。
在RTSJ推出后,很多个人和组织投入到规范的研究中,这些研究包括关于RTSJ机制的理论研究,也包括关于如何实现RTSJ的实际研究。
实时Java规范为其实现者提供了足够的灵活性,使他们可以构造出适合自己需求的实现。
在这篇论文的工作中,我们深入研究和分析了实时Java规范,分析了Timesys公司为规范提供的参考实现,进而提出了基于公
开源码的Java平台Kaffe3实现实时Java规范的一种思路。
Kaffe是用C语言开发的一个Java虚拟机的完整实现,源
代码完全公开。
我们对Kaffe虚拟机进行了一系列的修改和扩充,增加了其对实时Java规范的支持,同时还提供了实时类库的一个简单实现。
实时Java规范是对标准Java规范8的扩充,而最主要的扩充之一就在于为了实时应用的需要,扩充了Java虚拟机的内存管理功能,提出了基于作用域的领域内存,以及不朽内存、物理内存等概念。
本文的主要工作集中在讨论实时Java规范的内存模型及其实现细节。
实时Java规范的线程模型和内存模型紧密地联系在一起,是内存模型的主要使用者,因此我们也研究了线程模型的
问题。
8.期刊论文 赵新亭 基于Linux
网络计算机Java虚拟机的性能优化 -中国新技术新产品2008quotquot12 目前Linux网络计算机中的Java虚拟机在运行Java应用程序时存在着执行性能较低的问题.该文实现一种优化方案:在Kaffe虚拟机中应用并改良直接线索式解释器优化技术.旨在兼顾Linux NC现有的硬件配置和软件模式有效地提升Java虚拟机运行效率并保证较低的CPU和内存成本.从而改善虚拟机的性能表现.9.学位论文 徐国恩 Wolf Linux Java虚拟机研究 2004 自从Java问世到今天已经从一种编程语言发展成为一个技术体系从嵌入式应用到分布式计算系统Java都有着独特的优势.Java与嵌入式系统相结合使嵌入式开发技术进入了一个新的层次成为嵌入式系统研究的重要方向.但是由于嵌入式系统固有的可预测性特点Java虚拟机的垃圾回收机制成为影响具有实时性要求的嵌入式系统的瓶颈主要表现在两个方面:一个是不能预测其垃圾回收所需要的时间另一个是无法预测垃圾回收发生的时间这些内存问题将严重影响应用程序的安全性削弱系统的性能.该文通过介绍Java技术特点研究Java虚拟机的实.