1

可能重复:
是否可以使用 java 制作操作系统?

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

4

3 回答 3

3

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

于 2012-11-25T05:00:06.460 回答
2

这取决于您所说的“整个操作系统”是什么意思:最可靠的方法是混合操作系统,它使用 Java 作为“用户空间”,并使用 Linux 作为底层操作系统进行硬件访问。

需要考虑的一些事项:

  • 显然JVM 本身需要在某些东西上运行。这可能是在另一个操作系统上运行的本机 JVM 实现,也可能是硬件,但无论哪种方式,它都需要在堆栈中的某个点使用纯 Java 以外的东西。因此,建议使用 Linux 之类的东西来扮演这个角色。
  • 除非您允许链接额外的本机代码,否则您与底层硬件/平台的交互将取决于 Java运行时环境中可用的内容(例如,用于文件访问的文件抽象等)。这当然足以实现一个正常工作的 OS shell,但可能不足以实现对许多设备的直接硬件访问,例如。
  • 对于现代操作系统,您可能希望将 OpenGL 用于图形(或类似的高性能图形库)。目前这不在标准 Java 运行时环境中,因此您需要找到一个解决方案来包含它(例如LWJGL
于 2012-11-25T13:24:17.003 回答
2

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

于 2012-11-25T04:58:51.047 回答