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

时间:2010-01-01 08:43:08

标签: java operating-system

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

7 个答案:

答案 0 :(得分:38)

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

来自wikipedia

  

鉴于Sun Microsystems的Java是   今天最具统治力的人之一   面向对象的语言,它是没有的   令人惊讶的是基于Java的操作   系统已经尝试过。在这   区域,理想情况下,内核会   由最低要求组成   支持JVM。这是唯一的   这种操作系统的组成部分   那必须写成一个   Java以外的语言。建立在   JVM和基本硬件支持,   剩下的就可以了   Java中的操作系统;甚至   更多的系统部分   传统上写在较低级别   C等语言,例如设备   驱动程序,可以用Java编写。

     

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

答案 1 :(得分:10)

答案 2 :(得分:5)

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

答案 3 :(得分:5)

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

答案 4 :(得分:3)

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

答案 5 :(得分:3)

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

答案 6 :(得分:3)

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

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

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

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