0

好的,我一直在研究汇编语言。我已经知道如何用java编程。我在网上读到,如果你能提供足够的汇编代码来支持 Java 虚拟机,就可以用 Java 编写操作系统。有谁知道 Java 虚拟机从内核/程序集 bin 文件中需要什么?以及如何从汇编代码调用 JVM/使用预定义类启动 JVM?

4

2 回答 2

1

也许您的意思是JNode 之类的东西?它是一个用Java编写的完整操作系统。它有一个用汇编程序和 C 编写的小型微内核(称为纳米内核)。此代码取决于硬件。他们还编写了一个 Java 编译器,它将操作系统的 Java 部分编译为本机代码。

我希望它对你有所帮助。

于 2012-11-15T19:39:36.093 回答
0

您是否假设您已经拥有操作系统?如果是这样,就启动 JVM 所需的操作而言,您只需要进行系统调用来启动 JVM 应用程序并提供适当的参数。

如果您要问,“我需要编写什么代码才能让操作系统在 JVM 中自行运行?” 然后,引用卡尔萨根的话,“你首先必须发明宇宙。”

Java VM 提供了它所做的许多特性和功能,因为它使用来自底层系统的相同特性并将它们抽象到虚拟机中。因此,Windows JVM 是基于 Windows 功能构建的,而 Linux JVM 是基于 Linux 功能构建的,等等。这意味着,为了在 JVM 中托管您自己的操作系统,您需要编写引导代码以在硬件上托管 JVM,然后用 Java 编写操作系统代码以在 JVM 中运行。

“有谁知道 Java 虚拟机从内核/汇编 bin 文件中需要什么?”

是的,答案是,无论你想让计算机做什么,你都需要编写代码。文件系统支持、内存管理、线程——托管应用程序会要求 JVM 做的所有事情,Java 会转过身来询问较低级别——在这种情况下是你的代码——去做,所以你必须写下来。

于 2012-11-15T19:44:57.177 回答