Java物理机怎么样?

Xin*_*nus 13 java jvm

Java是移动设备最重要的语言,因为它允许通过在字节代码和机器之间插入JVM的虚拟层来在每台机器上执行相同的二进制/字节代码.

我们可以构建Java物理机器,它将采用字节代码而不是X86/arm的传统操作码和操作数吗?所以实际操作系统可以使用Java构建,它比在我们当前的操作系统上安装JVM高效/快速

我的猜测是它会限制安装新版本的JVM,但许多移动设备确实支持有限版本的JVM,这可能不是问题吗?

为什么有人没有尝试过对硬件实现相同的概念?

Gro*_*uez 13

这已经存在.第一次尝试是Sun的PicoJava规范,其中一些开源实现在某个时候发布.

可以直接运行Java字节码的CPU的当前示例:


pax*_*blo 7

我们可以建造这样的野兽吗?我们当然可以.我们也可以尝试用一根芹菜来砍伐卡里树,但这并不是一个好主意:-)

类似的事情是在Forth 许多月前完成的(Novix,我认为它被称为).我怀疑在这种特殊情况下由于多种原因会失败.

  1. 创建Java CPU的成本远远超过创建Java解释器的成本.这就是为什么有没有一百万个不同的CPU加工商,但一百万个不同的计算机语言(好吧,也许没有那么多,但它的很多).

  2. JIT编译器完全消除了对Java-in-silicon的需求,因为它们无论如何都要编译成汇编语言.

  3. 与第1点相关,想象一下修复CPU中的错误而不是解释器中的错误.除非你的CPU具有某种形式的可升级性(例如可替换微码),否则事情会变得昂贵.而且,如果你使用微码,你已经失去了一些本Java硅上的优势,因为你现在有片上的解释,而不是regualr操作系统上运行.

  4. 很多人已经使用了拥有Java的机器.你将面临很大的阻力转向你的解决方案的市场.

  • 错了3.这实际上取决于处理器的设计.通常,微处理器中逻辑的复杂性比典型程序简单得多.与软件不同,硬件在设计过程中通常会失败. (2认同)