JavaやClojureなどのJavaバイトコードにコンパイルされる言語を使用して、Java仮想マシンで完全に動作するオペレーティングシステム全体を理論的に作成することは可能でしょうか。
3 に答える
3
CPUがJavaバイトコードを実行できる場合にのみ可能です(Javaプロセッサを参照)。それ以外の場合は、ハードウェアを初期化し、バイトコードを解釈またはJITコンパイルするために、いくつかのネイティブマシン命令が必要になります。
于 2012-11-25T05:00:06.460 に答える
2
あなたが提案したことを実行しようとしたJavaOSと呼ばれる(現在は放棄された)プロジェクトがあります。
于 2012-11-25T04:58:51.047 に答える
2
「オペレーティングシステム全体」の意味によって異なります。最も信頼できるアプローチは、「ユーザースペース」にJavaを使用し、ハードウェアアクセスの基盤となるOSとしてLinuxのようなものを使用するハイブリッドOSです。
考慮すべきいくつかの事柄:
- 明らかに、JVM自体は何かで実行する必要があります。これは、別のOSで実行されているネイティブJVM実装である場合もあれば、ハードウェアである場合もありますが、いずれにしても、スタックのある時点で純粋なJava以外のものを使用する必要があります。したがって、この役割を果たすためのLinuxのようなものの提案。
- 追加のネイティブコードのリンクを許可しない限り、基盤となるハードウェア/プラットフォームとの相互作用は、Javaランタイム環境で利用できるもの(ファイルアクセス用のファイル抽象化など)によって決まります。これは、動作するOSシェルを実装するには確かに十分ですが、たとえば、多くのデバイスへの直接ハードウェアアクセスを実装するには十分ではない場合があります。
- 最新のOSの場合、グラフィックス(または同様の高性能グラフィックスライブラリ)にOpenGLを使用することをお勧めします。これは現在、標準のJavaランタイム環境にはないため、これを含めるためのソリューションを見つける必要があります(LWJGLなど) 。
于 2012-11-25T13:24:17.003 に答える