理論的には、ブートローダやカーネルにCPUエミュレーションを組み込むことは可能ですか?

理論的には、ブートローダやカーネルにCPUエミュレーションを組み込むことは可能ですか?

Linuxカーネルやqemu、またはCPUサポートが組み込まれているすべてのCPUタイプのカーネルを起動するために、どのような方法でgrubとqemuを混在させるのがクレイジーですか?

ブートローダがCPUをエミュレートする場合、ブートローダを切り離すことは不可能かもしれません。ただし、回避策は、ブートローダを分離できるようにLinuxカーネルにCPUエミュレーションを構築することです。しかし、このアイデアはクレイジーなのでしょうか、まったく効果がないのでしょうか、それとも誰かが余裕があるには多すぎるのでしょうか?

答え1

Qemuはホストオペレーティングシステムの上で実行されます。 GrubのようなブートローダはQemuに適切なサービスを提供しません。 Qemuはホスト内で通常のプロセスとして実行され、メモリ管理、ファイルシステムアクセスなどを実行するにはホストカーネルが必要です。

他のプロセッサアーキテクチャ用にコンパイルされたオペレーティングシステムを実行したい場合は機能しません。仮想マシンはまだすべてのハードウェアアクセスのためにホストシステムに依存しています。仮想マシン内のカーネルは、実際のハードウェアではなくQemuがエミュレートしたハードウェアにアクセスします。

Qemuを実行する唯一の理由は、さまざまなアーキテクチャ用にコンパイルされたプログラムがある場合です。これは、適切な物理デバイスを使用せずにそのプログラムをテストするのに役立ちます。

関連情報