JamVM是一个新的Java虚拟机,它符合JVM规范第二版。
JamVM的特点是极小,在PowerPC上仅有大约200KB,而在Intel处理器上仅有180KB。
不像其他的小虚拟机(如KVM),JamVM支持完整的规范,包括支持对象终结(Object Finalization)、软/弱/虚引用、类卸载(class-unloading)、Java本地接口(JNI)和反射API。
JamVM 解释器是高度优化的,吸收了许多最新的技术如stack-caching(堆栈缓存)和direct-threading(直接线程)技术。其最新版本扩 展了这些,包括一个代码复制的JIT编译器,且编译器也可移植。JamVM的大多数代码均用C语言实现,易于移植到新架构。
JamVM支持下列OS/架构:
一、Linux
1)PowerPC
JamVM开发的主要平台,在G3和G4系统得到良好的测试。
2)i386
在i586、i686 (Pentium III)、Pentium 4、Athlon和Core 2 Duo等建立和测试。
3)ARM
运行Linux的iPAQ等
4)AMD64
在AMD Athlon 64、Pentium 4和Core 2 Duo上建立和测试
5)MIPS
在O32 ABI上建立和测试
二、Mac OS X / Darwin
1)PowerPC
Mac OS X 10.3 (Panther)和10.4 (Tiger)上建立和测试
2)PowerPC64
G5上建立和测试
3)i386
Apple MacBook Pro (Intel Core Duo and Core 2 Duo)上建立和测试
4)ARM
使用非官方的toolchain建立并测试
JamVM使用GNU Classpath的Java类库,大量的引用类必须为指定的VM进行修改。使用Classpath的0.97版肯定能工作。
注意:JamVM与Sun或IBM的虚拟机或OpenJDK一起将不能工作。
1.jamvm ubuntu下安装 1.1 JDK安装 1.百度云盘或官网下载JDK压缩包jdk-8u221-linux-x64.tar.gz;该安装包是64位,具体根据安装环境选择。 2.解压安装 tar -zxf jdk-8u221-linux-x64.tar.gz export PATH 1.2 classpath 安装 1.下载classpath-0.98.tar.gz;http://w
简介 在前面的文章中有介绍过 miniJVM 的具体实现,但是 miniJVM 的解释器部分仍然是比较简单的 Switch 指令分发,从执行效率上来说是比较落后的。 同样是轻量级的 JVM,jamvm 在性能方面就要优秀很多,最新版本 2.0.0 支持了 openjdk8,并且支持 java 8 的所有特性,包括 miniJVM 不支持的 Reference。 jamvm 已经非常古老了,Andr
搞了一个星期jamvm在mips上移植,目的在开发板上用虚拟机运行OSGI平台 所需要的软件包:linux平台下的jdk,zlib,libffi,classpath,jamvm。这些软件包都可以在对应的官网上能下载。 jdk是为了编译classpath时需要找到java的环境。 zlib和libffi是jamvm的依赖库 classpath和jamvm就不需要说明了吧 我使用的jdk版本是1.8.
JamVM JamVM是一个新的Java虚拟机,它符合JVM规范第二版。 其最新版本JamesVM 1.5.2,于2009年2月4日发布。此版本主要修正了一些bug,添加了一点小功能,与2003年发布的JamVM 1.0.0版一致。 JamVM的特点是极小,在PowerPC上仅有大约200KB,而在Intel处理器上仅有180KB。 不像其他的小虚拟机(如KVM),
jamvm-1.5.4/acinclude.m4 jamvm-1.5.4/ACKNOWLEDGEMENTS jamvm-1.5.4/aclocal.m4 jamvm-1.5.4/AUTHORS jamvm-1.5.4/ChangeLog jamvm-1.5.4/config.guess jamvm-1.5.4/config.sub jamvm-1.5.4/configure jamvm-1.5.4
学习源码,是代码技术提升的一个重要手段,在java相关的内容中,有各类框架的源码、tomcat的源码、android源码、jdk标准库的源码和jvm的源码等各种值得学习的内容。在这些内容当中,jvm的源码是唯一一种纯用c、c++完成的,因此对于很多写习惯了java的程序员来说,阅读jvm是一件不那么容易的事情,而且目前大多数的jvm源码相当冗长,不易于阅读,所以为了简单的了解jvm的运行机制,我们
1.编译classpath %cd xxx/classpath0.9.8 %./configure --disable-plugin %make && make install 2.编译jamvm %cd xxx/jamvm1.5.3 %./configure && make && make install 3.设置环境变量 %export PATH=/usr/local/jamvm/bin:$P
分为几个模块 1,class对象的认识 //待续 2,anno的认识: 首先初始化一些注解map, static int initAnnotation() { Class *enum_cls, *map_cls, *anno_inv_cls, *obj_ary_cls; Class *anno_ary_cls, *dbl_anno_ary_cls; enum_cls = f
经过两天的努力,总于在ubuntu以下编译好classpath-0.98与jamvm1.5.4,并能成功的运行类文件:jamvm hellowold,当屏幕上打印出“hello world!”的时候,按捺不住一阵兴奋!在这两天中,运行jamvm hellowold始终被有三类异常: 1) Exceptionoccurred while VM initialising java/lang/NoCla
1、zlib is missing 解决方法:下载zlib以及编译安装zlib到交叉编译链 http://blog.csdn.net/u010511175/article/details/11109739 2、zlib编译问题 /usr/bin/ld: adler32.lo: Relocations in generic ELF (EM: 40) adler32.lo: could not rea
编译Classpath ① $ tar zxf classpath-0.93.tar.gz 解压缩Classpath 0.93 ② $ cd classpath-0.93 进入classpath文件夹 ③ $ ./configure --prefix=/tmp/classpath --disable-gtk-peer --disable-gconf-peer --disa
一、运行时数据区域 程序计数器 Java 虚拟机栈 本地方法栈 堆 方法区 运行时常量池 直接内存 二、垃圾收集 判断一个对象是否可被回收 引用类型 垃圾收集算法 垃圾收集器 三、内存分配与回收策略 Minor GC 和 Full GC 内存分配策略 Full GC 的触发条件 四、类加载机制 类的生命周期 类加载过程 类初始化时机 类与类加载器 类加载器分类 双亲委派模型 自定义类加载器实现 参
一、前言 本部分内容是关于Java虚拟机的一些面试高频知识点的总结。说到对Java虚拟机的学习,就不得不提下这本书《深入理解Java虚拟机》。 本部分的内容也是基于这本书进行整理的,这本书基本是面试必备。 关于Java虚拟机,重点考察以下三个方面的内容: 内存区域/内存模型 类加载机制 垃圾收集算法/收集器 二、目录 对象的创建、内存布局和访问定位 Java内存区域与内存模型 Java类加载机制及
我正在读“Java虚拟机规范第7版”,有一些东西真的让我困惑,下面是问题: 在这种情况下,使用当前帧(§2.6)恢复调用器的状态,包括其局部变量和操作数堆栈,调用器的程序计数器适当增加以跳过方法调用指令。然后在调用方法的帧中正常地继续执行,返回的值(如果有的话)推送到该帧的操作数堆栈上。 那么“跳过方法调用指令”是什么意思呢?有人能解释一下吗?非常感谢!
问题内容: 在继承中虚拟函数如何在后台工作?编译器是否特别对待虚拟函数? 问题答案: 是的,编译器和运行时对虚拟方法的处理方式有所不同。JVM专门利用虚拟方法表进行虚拟方法分配: 对象的调度表将包含对象的动态绑定方法的地址。通过从对象的分派表中获取方法的地址来执行方法调用。属于同一类的所有对象的分发表都是相同的,因此通常在它们之间共享。属于类型兼容类的对象(例如,继承层次结构中的同级对象)将具有具
查看虚拟机相关的监控告警信息。 监控菜单下的虚拟机页面主要用于查看虚拟机相关的监控告警信息。 入口:在云管平台单击左上角导航菜单,在弹出的左侧菜单栏中单击 “监控/资源/虚拟机” 菜单项,进入虚拟机页面。 查看虚拟机列表 该功能用于查看虚拟机的监控告信息。 在虚拟机页面,支持查看以下信息: 名称:虚拟机的名称。 IP:虚拟机的IP地址。 监控状态:虚拟机是否设置告警以及发生告警。 状态:虚拟机的当
主机回收站用于存放用户删除的虚拟机和裸金属文件。 主机回收站用于存放用户删除的虚拟机和裸金属文件。回收站中主机文件默认保存3天,如有误删除的主机需要在3天内进行恢复操作,可以将其恢复到原来位置,超过3天后,文件将被彻底删除。 入口:在云管平台单击左上角导航菜单,在弹出的左侧菜单栏中单击 “主机/回收站/主机” 菜单项,进入主机回收站列表。 清除 当确定回收站中的主机无用后,可使用清除功能立即彻底删