Java是移动设备中最重要的语言,因为它通过在字节码和机器之间插入虚拟JVM层,允许相同的二进制/字节码在每台机器上执行。
我们能否构建一个Java物理机器,它将接受字节码而不是传统的X86 / arm操作码和操作数?这样就可以使用Java构建实际的操作系统,并且它将比在当前操作系统上安装JVM更有效率/快速。
我猜想它将限制安装新版本的JVM,但许多移动设备确实支持有限版本的JVM,因此可能不是问题?
为什么没有人尝试将相同的概念应用到硬件上呢?
这已经存在。第一次尝试是Sun的PicoJava规范,其中有一个开源实现曾经发布过。
目前可以直接运行Java字节码的CPU示例:
据我所知,这已经完成了(请参阅PSC 1000微处理器参考手册)。引用:
PSC1000微处理器和Java虚拟机的堆栈架构非常相似。这导致只需要一个相对简单的字节码转换器(20K)即可从Java字节码生成可执行本机代码,而不是完整的即时编译器(200-400K)。结果是Java程序的初始执行速度更快,内存需求显著减小。此外,大多数现代语言都是基于堆栈模型实现的。允许PSC1000有效运行Java的功能同样适用于其他语言,如C、Forth和Postscript。
问题在于你没有规模经济。
与这些处理器相比,Intel/AMD处理器更便宜、更快,直到它们被广泛应用于每个CPU。当前基于软件的JVM比硬件更快,随着CPU速度的不断提高,没有动力去改变。
时代已经改变。当前架构下的CPU不会变得更快,因此现在使用Java非常适合多核应用程序。