0

さて、私はアセンブリ言語を調べてきました。私はすでにJavaでプログラミングする方法を知っています。Java 仮想マシンをサポートするのに十分なアセンブリ コードを提供できれば、Java で OS を作成できることをオンラインで読みました。Java 仮想マシンがカーネル/アセンブリ bin ファイルから必要なものを知っている人はいますか? また、アセンブリ コードから JVM を呼び出す方法や、事前定義されたクラスで JVM を開始する方法を教えてください。

4

2 に答える 2

1

多分あなたはJNodeのようなものを意味しますか? Java で書かれた完全なオペレーティング システムです。アセンブラと C で書かれた小さなマイクロ カーネル (ナノカーネルと呼ばれる) があります。このコードはハードウェアに依存します。彼らは、OS の Java 部分をネイティブ コードにコンパイルする Java コンパイラも作成しました。

お役に立てば幸いです。

于 2012-11-15T19:39:36.093 に答える
0

すでにオペレーティング システムを持っていると思いますか? その場合、JVM を開始するために必要なことに関しては、システム コールを作成して JVM アプリケーションを起動し、適切な引数を提供するだけです。

「JVM 内でそれ自体を実行する OS を作成するには、どのようなコードを作成する必要がありますか?」次に、カール・セーガンの言葉を借りれば、「まず宇宙を発明しなければならない」。

Java VM は、基盤となるシステムの同じ機能を使用し、それらを仮想マシンに抽象化するため、Java VM が提供する多くの機能を提供します。したがって、Windows JVM は Windows 機能上に構築され、Linux JVM は Linux 機能上に構築されます。つまり、JVM 内で独自の OS をホストするには、ハードウェア上で JVM をホストするためのブートストラップ コードを記述してから、JVM 内で実行する OS コードを Java で記述する必要があります。

「Java 仮想マシンがカーネル/アセンブリ bin ファイルから何を必要とするか知っている人はいますか?」

はい、答えは、コンピュータに何をさせたいとしても、コードを書く必要があるということです。ファイル システムのサポート、メモリ管理、スレッド化など、ホストされているアプリケーションが JVM に要求するすべてのことを、Java は方向転換して下位レベル (この場合はコード) に実行を要求します。書いてください。

于 2012-11-15T19:44:57.177 に答える