是否可以使用java制作操作系统?

我想知道是否有可能像使用C语言编写的windows-xp这样的操作,就像我在java中编写的那样,这样我将具有与C中编写的相同的function

理论上是的,但你仍然需要一些低级汇编代码来引导将在机器上运行的Java VM,以及用于访问硬件驱动程序的低级代码。

来自维基百科 :

鉴于Sun Microsystems的Java是当今最主要的面向对象语言之一,因此基于Java的操作系统的尝试就不足为奇了。 在这个领域,理想情况下,内核将包含支持JVM所需的最低限度。 这是这种操作系统的唯一组件,必须用Java以外的语言编写。 基于JVM和基本硬件支持,可以用Java编写其余的操作系统; 甚至传统上用较低级语言编写的系统部分,例如C,例如设备驱动程序,都可以用Java编写。

这种操作系统的尝试示例包括JX,JNode和JavaOS。

从理论上讲,是的。 但是你需要以某种方式使用低级代码来运行Java VM(除非你想将Java编译成汇编,这可能是不可能的,而不会牺牲很多Java的function)。

从理论上讲,您实际上可以使用Java处理器在Java中编写整个操作系统。 基本上它使用Java字节码作为处理器的指令集

这取决于你认为的“function”。 如果你的意思是图形界面,花哨的窗口效果等,那么是的,虽然你需要汇编语言或C代表最低位(即与I / O端口连接等)。 如果您还将Windows ABI作为一项function包含在内,那么它会越来越难以遵循Pascal调用约定。

操作系统更接近硬件(如驱动程序)。 在我看来,这不是Java领域(只是问题域操作系统的错误解决方案)。

正如上面提到的其他人一样,它已经进行了尝试。 Jnode是唯一经受住时间考验的人,虽然他们多年没有发布新版本,但他们正在积极开展工作。 但是,如果你看看他们的Git提交,他们正在写一篇即将发布的文章。 我是Java的粉丝,期待发布。 讨厌像Java这样冗长的命令式语言的人会对这个想法感到畏缩,但并不适合所有人。

有趣的是在硬件中实现Java字节代码的想法。 我认为这不会随处可见,因为Java的优势在于你不需要担心硬件问题。 您只需要使用Java获得操作系统,它就可以在任何JVM上运行。

我认为Java在操作系统领域的真正威力是虚拟化。 我无法想到拥有虚拟操作系统的更好方法,因为Java无处不在。

正如上面提到的其他海报,如果没有Java硬件实现,它无法在Java中完全实现。 Jnode完全用汇编和Java编写。 但是,所有现代操作系统都使用一些汇编语言。