web-dev-qa-db-ja.com

QEMUユーザーモードエミュレーション

私は学生で、ユーザーエミュレーションモードでMINGW32でQEMUをコンパイルしようとしています。特定のドキュメントで、ユーザースペースエミュレーションで次のOSがサポートされていることを読みました。1。Linux(qemu-linux-userと呼ばれる)2。MacOS X/Darwin(qemu-darwin-userと呼ばれる)3。BSD(参照qemu-bsd-userとして)

Windows OS(mingwまたはcygwin経由)がQEMUユーザースペースエミュレーションでサポートされているかどうかを知りたいですか?誰かがそれを使おうとしましたか?

1
anurag.student

私の知る限り、QEMUのユーザーモードエミュレーションは、ホストOSがエミュレートしようとしているものと一致する場合にのみ機能します。これは、BSDとDarwinのエミュレーションをLinuxホストで動作させようとした私自身の経験に基づいています。

説明whyは少し複雑ですが、QEMUのユーザーモードエミュレーションは、基本的に、システムコール番号を適切にマッピングし、必要に応じてデータ構造を変換するマシンコードトランスレータであるという事実に大きく依存します。 (ビット幅とビット順序の変換)。 MingWはWindows上でUNIXライクな環境を提供しますが、QEMUのユーザーモードエミュレーションが変換できる完全なABIのいずれも実装していません。

ただし、(少なくともLinuxエミュレーションの場合)WSL環境内で実行すると、(ほとんど)完全なLinuxユーザースペースABIが提供されるため、運が良かったかもしれません。

4