2012-11-25 32 views

回答

2

这取决于“整个操作系统”的含义:最可信的方法是混合操作系统,它将Java用于“用户空间”,并将Linux用作硬件访问的底层操作系统。

有些事情要考虑:

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

有一个(现已放弃)项目,名为JavaOS,它试图按照您的建议进行操作。

+0

OP询问是否有可能用* Java编写OS。 JavaOS在本地微内核之上运行。 –

3

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

相关问题