是否有可能开发一个完全位于JVM中的操作系统?

时间:2012-11-25 04:56:00

标签: java clojure

  

可能重复:
  Is it possible to make an operating system using java?

使用编译为Java字节代码的语言(例如Java或Clojure),理论上是否可以编写完全在Java虚拟机中运行的整个操作系统?

3 个答案:

答案 0 :(得分:3)

只有CPU能够执行Java字节码才能实现(参见:Java processor)。否则,您需要一些本机机器指令来初始化硬件并解释或JIT编译字节码。

答案 1 :(得分:2)

有一个(现已放弃的)项目,名为JavaOS,它试图按照你的建议去做。

答案 2 :(得分:2)

这取决于你对“整个操作系统”的意思:最可信的方法是使用Java作为“用户空间”的混合操作系统,以及类似Linux作为硬件访问的底层操作系统。

需要考虑的一些事项:

  • 显然 JVM本身需要运行。这可能是在另一个操作系统上运行的本机JVM实现,也可能是硬件,但无论哪种方式,它都需要在堆栈中的某个位置使用纯Java以外的东西。因此建议像Linux一样发挥这个作用。
  • 除非您允许链接额外的本机代码,否则您与底层硬件/平台的交互将由Java 运行时环境中可用的内容决定(例如,文件访问的文件抽象等)。这当然足以实现一个有效的操作系统shell,但可能还不足以实现对许多设备的直接硬件访问。例如。
  • 对于现代操作系统,您可能希望将OpenGL用于图形(或类似的高性能图形库)。目前不在标准Java运行时环境中,因此您需要找到一个包含此解决方案的解决方案(例如LWJGL