【问题标题】:Java VMs that do not require an operating system?不需要操作系统的 Java VM?
【发布时间】:2010-10-20 06:59:02
【问题描述】:

我知道 BEA 正在开发不需要底层操作系统的 LiquidVM,但想知道开源社区中是否有人正在开发类似的东西。

理想情况下,我想找到一个虚拟机直接由操作系统引导加载程序加载的实现。

【问题讨论】:

  • 您打算为哪种系统编写应用程序?
  • 哈哈,好问题。我喜欢听到这样的项目。顺便说一句,我记得读过一个开源项目,它让 CPython(标准 python 实现)在裸机上运行,​​并且正在努力用 python 构建操作系统 :) 可悲的是我'从那以后就失去了链接。

标签: java jvm vmware virtualization xen


【解决方案1】:

有一个 Sun 项目 Squawk,它是一个在硬件而不是底层操作系统上运行的 VM。对于像Sun SPOT 这样的嵌入式设备很有用,其中 Squawk 是操作系统。

Squawk 根据 GPLv2 获得许可。

【讨论】:

  • 请注意,Squawk 几乎已经死了,而且不是特别新(我认为它仍然是 1.3),所以我不推荐它用于任何新的开发。
【解决方案2】:

你需要什么?

也许 Sanos 可以在硬件和 JVM 之间为您提供一小段代码供您使用?

http://www.jbox.dk/sanos/

【讨论】:

  • Sanos 是否支持 JDK 1.6 和/或 64 位?
  • 据我所知没有。最新的是1.4。它是开源的,所以如果您需要,请随时加入。
  • 那么 SANOS 会因为没有引起足够的社区兴趣而消亡吗?
  • 不知道。询问项目开发人员:)
【解决方案3】:

还有Project Guest VM,它是托管在 Xen 管理程序上的 JVM。虽然主页似乎对细节很简单,但也有一个关于这个项目的Google Tech Talk

【讨论】:

  • 这确实是一个非常有趣和有前途的项目。您应该编辑您的答案并添加对 maxine 的引用:maxine.dev.java.net
【解决方案4】:

只是我看到和听到的一个小sn-p。

MIT 在 60 年代/70 年代开发了一台 Lisp 机器,这是一台本质上理解 Lisp 的机器,我认为他们也将其商业化。

我在 2002 年左右听说有人正在开发 JVM 芯片上的 FPGA 或 ASIC。

MIT/Lisp 的故事是真的,我在他们的博物馆里看到过,有谁知道片上 JVM 是否有任何真相?

谢谢, 马丁。

【讨论】:

  • 一些 ARM CPU 有 arm.com/products/multimedia/java/jazelle.html - 虽然我不知道它是否是全功能的 JVM(我的直觉说可能不是)
  • Jazelle 不是一个功能齐全的 JVM,它只是支持允许 CPU 执行 一些 字节码指令,从而使其更容易编写一个高性能的 JVM。
【解决方案5】:

JNode OS 是一个主要用 Java 编写的操作系统。

【讨论】:

  • 您对 JNODE 与 SANOS 的比较有何看法?
【解决方案6】:

与 SANOS 不同,JNode 操作系统是一个完整的操作系统,具有许多受支持的设备、文件系统、网络堆栈、GUI 堆栈、命令外壳和 50 个左右的命令等等。 JNode 目前在启用了一个处理器的 x86(32 位)上运行,但 x86-64 和多处理器版本正在开发中。 (JNode 99.99% 是 Java。移植到新架构需要重写汇编程序中 0.01% 的代码,创建/修改特定于硬件的驱动程序......并为新架构编写本机代码编译器。)

我们目前有大约 7 名活跃的开发人员,但我们一直在寻找新人加入团队,尤其是了解 Java 和代码生成、垃圾收集器、驱动程序等的人。

(对于它的价值,我们使用最新版本的 OpenJDK 类库:最后一次计算为 1.6u24。)

【讨论】:

    【解决方案7】:

    我是 Java 新手,而且我对电子学有一些了解。

    JVM 是一个实际运行在系统上的虚拟机。它可能是 windows 或 solares x86 平台。 但据我所知,JVM 本身充当了我们编译的字节码的系统。对于字节码,JVM 虚拟化它自己的 ALU、Heap、Stack 额外。它甚至有自己的机器和汇编语言。

    因此,如果我们能够在硬件芯片上实现 JVM 规范,那么它将不再是 JVM,但我将成为独立的 Java 机器,我们可以在其上开发 100% 用 Ja​​va 编写的操作系统。

    所以在这种情况下,JVM 将不是一个操作系统,而是一个直接理解 java 字节码的系统。

    【讨论】:

      【解决方案8】:

      Oracle 似乎又朝着这个方向努力了

      随着甲骨文收购 BEA Systems 获得... 甲骨文复兴了前卫 虚拟化技术:Java 直接运行的虚拟机 管理程序,无需操作 系统。

      【讨论】:

        【解决方案9】:

        JOE,Java On Everything,可以在没有操作系统的情况下运行 Java。全部是 Java,地址为 https://github.com/joekoolade/JOE

        JOE 可以通过将操作系统构建到程序中来运行没有操作系统的 Java 程序。这使程序更易于配置和部署。 JOE 可以使任何 Java 程序员成为嵌入式开发人员。

        JOE 是一个进程虚拟机,可以在没有操作系统的情况下运行 Java 应用程序。它通过虚拟化操作系统和硬件将操作系统构建到程序中。这消除了操作系统、硬件、用户代码和虚拟机之间的界限。用户/主管交叉、程序安全、内存保护、虚拟寻址和 JNI 库接口中的开销和复杂性被 Java 语言中更简单和更有效的机制所取代。 JOE 通过在 Java 中实现所有这些层,将它们无缝地融合在一起。这种虚拟化 Java 环境提供了从应用程序到硬件的安全、安全、内聚和一致的面向对象操作。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-07-12
          • 2019-04-07
          • 2016-10-03
          • 1970-01-01
          • 1970-01-01
          • 2017-08-30
          • 1970-01-01
          • 2011-01-26
          相关资源
          最近更新 更多