Java操作系统是如何实现的?

3

我听说过用Java编写的操作系统,整个过程对我来说就像魔术一样,尤其是因为直接内存访问这个原因。管理内存是非常低级的操作,而Java被有意设计成隐藏这种不安全的低级操作。它甚至没有指针。那么如何在Java中实现类似内存管理的东西呢?如何处理需要访问系统寄存器的上下文切换?如何进行任何低级操作呢?


你能举一个用Java编写的操作系统的例子吗?有一些使用Java编写的操作系统。 - Peter Lawrey
1
@Thomas 有JavaOS、JX,以及可能还有其他的。 - EpsilonVector
我不确定为什么这个问题被关闭了。但是,是的,你可以用几乎任何语言编写操作系统,只需要硬件能够理解生成的微码/字节码。旧的http://en.wikipedia.org/wiki/Lisp_machine就是一个例子。Java曾经有过硬件支持...我想它被称为http://en.wikipedia.org/wiki/PicoJava。 - Adam Gent
同意它不应该被关闭。你不能用Java编写整个操作系统。所谓的“Java操作系统”将需要一定量的本地代码。例如,在JX的情况下:“一个小型微内核,用C和汇编语言编写,包含无法在Java级别提供的功能(启动后的系统初始化、保存和恢复CPU状态、低级保护域管理和监视)。” - g051051
2个回答

1

内核不是用Java编写的,因为它必须支持JVM本身。操作系统的其他组件都可以用Java编写。甚至设备驱动程序也可以用Java编写。JNode就是一个例子。


0
即使在Unix/Windows操作系统上运行的JVM也有一些C代码用于执行低级别操作。该代码对JVM的用户隐藏,许多安全限制控制其执行。因此,我猜您听说的用Java编写的操作系统也有一些内部低级(C?)代码。

1
你可以用硬件实现JVM。 - gregory561

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接