【问题标题】:can bytecode be run without a virtual machine字节码可以在没有虚拟机的情况下运行吗
【发布时间】:2012-11-08 22:08:34
【问题描述】:

可以在没有虚拟机的情况下运行字节码吗?

例如,一个微内核操作系统是否可以有一个执行服务器,可以 JIT(将字节码转换为本地代码并运行)它而无需完整的虚拟机环境。

或者是否需要虚拟机的其他一些组件来运行程序?

为什么它会起作用?

【问题讨论】:

  • 简短的回答是肯定的。后续问题是为什么?
  • 您的“微内核”将是虚拟机。一旦你实现了,添加一个字节码解释器,Bob 是你母亲的妹妹的兄弟。真正的问题是你的微内核能做什么以及它是如何做到的。
  • 我正处于制作一个的设计阶段,我认为最好先确保我不会走上不可能的道路。我现在几乎有了整个设计,除了这一部分。这也将在 AROS OS 等托管的其他操作系统之上运行。

标签: kernel virtual-machine bytecode jit


【解决方案1】:

我相信,您始终可以将任何字节码转换为本机字节码。

基本上,它的缺点是需要完成一个额外的步骤 + 平台依赖性,但最后你的代码理论上应该:) 运行得更快。

其实例如在java中,有所谓的JIT编译(http://en.wikipedia.org/wiki/Just-in-time_compilation),让经常运行的东西可以跑的很快。

【讨论】:

  • 作为系统的一部分,它对虚拟机的额外平台依赖性是什么?
  • 好的,你是对的 :) 如果你将编译器作为系统的一部分提供并添加编译优先级以运行,则没有这样的事情。另一方面,您也可以在您的开发环境中编译为原生代码,然后将原生代码交付给您的系统,然后您可以认为它依赖于平台
  • 谢谢,所以按照我想的方式是可能的。
最近更新 更多