代码之家  ›  专栏  ›  技术社区  ›  euphoria83

什么是Java虚拟机的优秀开源实现?[关闭]

  •  4
  • euphoria83  · 技术社区  · 15 年前

    我正在尝试编写自己的JVM。你能给我指出一些现有的开源实现吗? 谢谢。

    6 回复  |  直到 15 年前
        1
  •  6
  •   richq luc    15 年前

    Hotspot (GPL,太阳)

    Harmony (Apache,也是Android的Dalvik虚拟机的基础)

    JamVM

    CLDC - Connected Limited Device Configuration (再次声明)这个不是真正的开放源码,但是源代码是可用的。

        2
  •  10
  •   Pascal Thivent    15 年前

    退房 Alternative Java Implementations links page Kaffe 您将在下面找到其摘要的虚拟机(请检查原始站点中的链接):

    基于Kaffe的JVM

    • 拿铁咖啡

      基于kaffe的开源JVM。

    • 詹诺斯维姆

      目前犹他州正在开发多进程JVM。

    • 卡菲斯

      KAFEOS是一个允许多个执行的Java虚拟机。 在Kaffe内处理。它把 这些过程消耗的资源, 允许安全终止它们, 并提供直接共享 过程之间。

      帕特里克·塔尔曼说:

      (kaffe核心团队成员godmar back博士论文)来源不是 还可以,但我认为这只是 因为Godmar在 完成他的论文。

    • 杰西卡项目

      项目杰西卡(JAVA使能单系统图像计算) 建筑)和新杰西卡2 项目全部基于Kaffe to 创建用于运行的分布式JVM PC机上的多线程Java应用 集群。

    • 吉尔古尔

      • Gilgul是 爪哇。*它引入了一种新的观点 对象标识的概念。*它 允许动态对象替换 通过同时重新路由一组 作为原子操作的引用。* 因此,它为 未预料到的软件发展
    • 阿尔塔

      ALTA虚拟机是一个Java兼容的虚拟机 旨在提供嵌套进程 对Java应用程序的服务。Alta是 基于Kaffe。

    • 瓜兰

      瓜兰是一种以简洁为目标的反射式建筑, 灵活性、安全性和重用 元级代码。它用卡夫作为它的 基础。Guaran_ 在GPL下下载。

    • 袋鼠

      袋鼠是一个类似于J2ME/CLDC的虚拟机。

    免费软件JVM

    • Java语言(GCJ)的Red Hat SoSeCube项目。

      红帽(谁买了天鹅座)正在开发一个完整的免费软件 Java开发工具包 语言。GCJ是EGCS的一部分 项目和提供Java前端 以及一组运行时库 EGCS。还包括GIJ 解释器。

    • 杰特

      GNUgcj编译器前端和运行时系统的扩展 这增加了对大多数 实时所需的功能 Java规范(RTSJ)。

    • 开放式运行平台

      来自英特尔。

    • Jikes Research虚拟机(RVM)

      一个免费的、自托管的虚拟机(用Java编写的!)

    • JC

      用Java编写的将Java字节码转换成C的虚拟机。 在运行它之前。(来自Kaffe项目 铝合金)

    • 贾哈尔

      Japhar是饥饿程序员的Java虚拟机。它是从 在没有咨询Sun的情况下磨合 来源。Japhar被绑架了 可供下载。

    • 电气火灾

      ElectricalFire是一个开源项目,来自一个被取消的 Netscape和IS的商业项目 现在由Netscape赞助 Mozilla雨伞。

      EngalFi火是一个使用JIT(准时)的Java虚拟机。 加速编译技术 Java代码执行。电气火灾 从一开始就设计成 生成高性能机器代码 而且可以携带到许多不同的地方 处理器体系结构。

    • 瓦巴

      针对便携式设备的小型JVM。

      还有瓦巴斯夫和超级瓦巴。

    • JoeQ虚拟机

    • Kissme虚拟机

    • 萨布勒姆

    • 翁卡

      一个用于Java(TM)语言的洁净室虚拟机 由远程信息处理专家开发 阿库尼亚。它非常轻便,而且 独立的,并且可以选择 与自己的实时执行程序一起使用 (Oswald(tm))提供 嵌入式设备解决方案。

      另外,Wonkavm的首席Arhitect Chris Gray资助了一家公司 提供嵌入式Java解决方案 命名为mi k a(tm)。

    • 贾姆姆

    • 木星

    • IKVM

      一个用于.NET的Java虚拟机!.

    • 爪哇探路者

      一个运行时Java程序验证/模型检查工具 美国国家航空航天局实际上是一个州 匹配、回溯是一个 写入和的模型检查器 运行在Java之上!它可以(用) Kaffe项目校友Peter Mehlitz)

    • 宙斯盾虚拟机

      宙斯盾虚拟机项目是一项正在进行的工作,旨在开发 轻量级、安全的虚拟机 用于执行Java字节码。虚拟机是 旨在作为扩展框架 适用于以下应用程序或设备: 动态加载和执行不受信任的 扩展。

    • JAVS(主动对象系统上的Java)

      AOS系统的Java虚拟机及实例研究 Oberon之间的互操作性 和Java语言。

    • 可可树

      维也纳大学开发的Java虚拟机研究 并根据GPL发布。 虚拟机使用只编译的方法, 也就是说没有翻译 可用。优化JIT编译器 可用于许多 体系结构。

    • OVM项目

      一个用于构建编程语言运行时的开源框架 系统。OVM是DARPA资助的 普渡大学之间的合作 大学,Suny Oswego,大学 马里兰州和DLTECH。电流 对OVM的强调是产生一个Java 虚拟机兼容实时 Java规范。

    • MySaIFu JVM

      一个Java VM,它运行在Windows Mobile 2003软件上,用于掌上电脑 (Pocket PC 2003)根据 GPLv2(GNU公共许可版本2)。

    • 动态Java

      一个Java源码解释器,用Java编写。

    • 幻影机

      为手掌。

    • JNoad

      用Java编写的LGPL JVM和操作系统 本机代码编译器和字节码 解释器。没有C代码——只是Java和 大会!

    • JX-OS

      一个GPL的系统体系结构由一组Java组件组成 在JX核心上执行 负责系统初始化, CPU上下文切换和低级 域管理。Java代码是 组织在以下组件中: 已加载到域中,已验证,并且 翻译为本机代码。

    • 贾米加

      为Amiga开发了一个GPL的JVM。

    • 卡巴姆系统

      一个面向小型硬件设备的小型Java运行时。看日文 有关详细信息的网页。

    • 纳诺夫

      一个用于Atmel AVR ATMGA8 CPU的小型Java虚拟机 使用的AVR CPU系列,例如 DLR Asuro机器人。

    • Hormony(维基)

      Apache基金会致力于创建一个新的洁净室J2SE兼容 环境,和小盖尔马格纳森。 写了一个建议和这个wiki页面 有关详细信息。

    Sun JDK的端口

    • Sun微系统-java.sun.com

      首先Java来自哪里。他们还列出了 官方港口。

    • 用于FreeBSD的Java

      这是一个不受支持的Sun的Java开发工具包,移植到 FreeBSD。它正在测试 可能存在的问题。不知道 此时存在重大缺陷, 但不能保证 可用性。

    • 适用于Linux的关闭JDK

      BLASDOWN JDK是Sun的Java开发者工具包的一个端口。 Linux。

    这两个列表都不是最新的,也不是像 OpenJDK Apache Harmony 不见了。

    也就是说,我不知道您所说的“好的开源实现”到底是什么意思。对每个人来说,好并不意味着相同的事情,可能取决于环境。Kaffe是虚拟机教育和/或研究的理想选择,IBM的Jikes有一个非常快速的编译器,OpenJDK可能非常成熟,但可能不是用于教育目的的最佳选择,等等。它们都是很好的实现,但我不知道哪一个对您来说是“更好”的。事实上,我会让你决定的。

        3
  •  3
  •   dz.    15 年前

    我不认为,OpenJDK源代码是学习编写虚拟机的一个很好的起点。它太大了,太具体了。周围还有其他选择,比如:

    1. 据说, Parrot VM 能够运行 Java Bytecode . ParrotVM已经基于寄存器。
    2. ProjektShark(在OpenJDK IT Project Zero中)是OpenJDK的一个可移植的“fork”,没有汇编程序源。据我所知,它使用LLVM。打开 http://gbenson.net/ 有关于如何构建调试它的信息。
    3. 这个 LLVM 项目作为一个不完整的Java前端。
    4. Sun正在Java本身重写JVM。它被称为Maxine,并被考虑用于研究。见 http://wikis.sun.com/display/MaxineVM/Home 更多信息。

    有一个好 Wikipedia entry 关于可选的JVM实现。其中有些已经在这里提到过,有些没有。

        4
  •  2
  •   Binil Thomas    15 年前

    以下是两个玩具合资企业:

        5
  •  0
  •   alphazero    15 年前

    当然要使用RQ提供的源代码,但是如果要编写一个JVM,请考虑使用 register based implementation . 正如本文所描述的,基于寄存器的机器确实会导致指令膨胀,但应该更快。而且,由于目前似乎没有任何基于注册的JVM实现,您自己从头开始编写一个这样的实现会带来额外的好处。

        6
  •  0
  •   RAOF    15 年前

    如果你喜欢更具异国情调的高级产品, IKVM 是基于mono/.net clr构建的开源JVM。