我正在尝试编写自己的JVM.你能指点我一些现有的开源实现吗?谢谢.
退房的替代Java实现或链接页面中的Kaffe上的VM,而您会发现下面的摘录(检查链接原址):
基于Kaffe的JVM
拿铁
一个基于Kaffe的开源JVM.
JanosVM
目前犹他州在多进程JVM上工作.
KaffeOS
KaffeOS是一个Java虚拟机,允许在Kaffe中执行多个进程.它分离了这些进程所消耗的资源,允许它们被安全地终止,并提供进程之间的直接共享.
Patrick Tullman说:
(Kaffe核心团队成员Godmar Back的博士论文)来源尚不可用,但我认为这只是因为Godmar在完成他的论文后正在解压缩.
JESSICA项目
JESSICA项目(Java Enabled单系统映像计算架构)和新的JESSICA2项目都基于Kaffe创建分布式JVM,用于在PC集群上运行多线程Java应用程序.
Gilgul
Gilgul是Java的兼容扩展.*它引入了对象身份概念的新观点.*它允许通过同时将一组引用重新路由为原子操作来替换动态对象.*因此,它为意外的软件演变提供了手段
阿尔塔
Alta虚拟机是一个兼容Java的虚拟机,旨在为Java应用程序提供嵌套的进程服务.Alta以Kaffe为基础.
瓜拉纳
Guaraná是一种反射式架构,旨在实现元级代码的简单性,灵活性,安全性和重用性.它以Kaffe为基础.瓜拉可以通过GPL下载.
袋鼠
kangaroo是一个类似J2ME/CLDC的虚拟机.
自由软件JVM
用于Java语言的红帽源软件项目(gcj).
Red Hat(谁购买了Cygnus)正在开发一个完整的免费软件工具包,用于在Java语言中进行开发.gcj是egcs项目的一部分,作为Java前端和一组运行时库提供给egcs.还包括gij翻译.
jRate
GNU GCJ编译器前端和运行时系统的扩展,它增加了对Java实时规范(RTSJ)所需的大多数功能的支持.
ORP(开放运行时平台)
来自英特尔.
杰克斯研究虚拟机(RVM)
一个免费的自托管虚拟机(用Java编写!)
JC
用Java编写的虚拟机,在运行之前将Java字节码转换为C. (来自Kaffe项目校友Archie Cobbs)
Japhar
Japhar是Hungry Programmers的Java VM.它是在没有咨询Sun的消息来源的情况下从头开始构建的.Japhar是LGPLed并可供下载.
ElectricalFire
ElectricalFire是一个开源项目,来自Netscape取消的商业项目,现在由Netscape在Mozilla旗下赞助.
ElectricalFire是一个Java虚拟机,它使用JIT(即时)编译技术来加速Java代码执行.ElectricalFire从一开始就设计用于生成高性能机器代码,并可移植到许多不同的处理器架构.
WABA
一个针对便携式设备的小型JVM.
此外,Wabasoft和SuperWaba.
joeq虚拟机
kissme虚拟机
SableVM
旺卡
用于Java(tm)语言的洁净室虚拟机,最初由远程信息处理专家ACUNIA开发.它非常便携且独立,并且可以选择与其自己的实时执行程序(OSwald(tm))一起使用以提供完整的嵌入式设备解决方案.
此外,WonkaVM的主要负责人Chris Gray资助一家公司提供名为Mi | k | a(TM)的嵌入式Java解决方案.
JamVM
木星
IKVM
.Net的Java虚拟机!
Java Pathfinder
来自NASA的运行时Java程序验证/模型检查工具,它实际上是一个状态匹配,回溯JVM,它是一个模型检查器,它是在Java上编写并运行的!它可以(与Kaffe项目校友Peter Mehlitz)
Aegis VM
Aegis VM Projects是一项持续努力,旨在开发一个轻量级,安全的虚拟机来执行Java字节码.VM旨在成为动态加载和执行不受信任扩展的应用程序或设备的扩展框架.
JAOS(Java on Active Object System)
用于AOS系统的Java虚拟机以及Oberon和Java语言之间互操作性的案例研究.
可可
研究Java虚拟机在维也纳科技大学开发并在GPL下发布.VM使用仅编译方法,这意味着没有可用的解释器.优化JIT编译器可用于许多体系结构.
Ovm项目
用于构建编程语言运行时系统的开源框架.Ovm是DARPA资助的普渡大学,纽约州立大学奥斯威戈分校,马里兰大学和DLTech之间的合作项目.目前Ovm的重点是生成符合Java实时规范的Java VM.
Mysaifu JVM
一种Java VM,运行在用于Pocket PC(Pocket PC 2003)的Windows Mobile 2003软件上,由GPLv2(GNU公共许可证版本2)许可.
DynamicJava
Java源代码解释器,用Java编写.
幽灵机器
对于Palm.
JNode
用Java编写的LGPL JVM和操作系统,具有类似JIT的本机代码编译器和字节码解释器.没有C代码 - 只是Java和汇编!
JX-OS
GPL系统架构由在JX核心上执行的一组Java组件组成,负责系统初始化,CPU上下文切换和低级域管理.Java代码按组件进行组织,这些组件被加载到域中,经过验证并转换为本机代码.
JAmiga
Amiga的GPL'd JVM.
Kabavm系统
一个针对小型硬件设备的小型Java Runtime.有关详细信息,请参见日语网页
NanoVM
用于Atmel AVR ATmega8 CPU的微型Java虚拟机,是AVR CPU系列的成员,例如用于DLR Asuro机器人.
Hormony(维基)
Apache基金会努力创建一个新的洁净室J2SE兼容环境,Geir Magnusson Jr.写了一个提案和这个维基页面以获取详细信息.
Sun的JDK端口
Sun Microsystems - java.sun.com
Java首先来自哪里.他们还有一份官方港口清单.
用于FreeBSD的Java
这是一个不受支持的Sun的Java开发工具包版本,移植到FreeBSD.它正在测试可能存在的任何问题.目前还没有已知的重大错误,但不保证可用性.
Blackdown JDK for Linux
Blackdown JDK是Sun的Java Developer's Toolkit to Linux的一个端口.
这两个列表都不是最新的,并且缺少OpenJDK或Apache Harmony等计划.
也就是说,我不知道你的意思是"良好的开源实现".好并不意味着每个人都有同样的事情,可能取决于具体情况.Kaffe是虚拟机教育和/或研究基础的绝佳选择,IBM的Jikes有一个非常快速的编译器,OpenJDK可能非常成熟但可能不是教育目的的最佳选择,等等.它们都是很好的实现但是我不知道哪一个对你来说"更好".实际上,我会让你决定.
热点(GPL,由Sun提供)
和谐(Apache,也是Android的Dalvik VM的基础)
JamVM
CLDC - 连接受限设备配置(Sun再次)这个不是真正的开源,但源代码可用.