(この質問の半分はここに属し、半分はサーバー障害に属していると思います。より良い場所があると思われる場合はお知らせください。)
Xen やハイパーバイザーはどのようにしてハードウェアをゲスト OS に公開するのでしょうか?
たとえば、ネットワーク上で通信したいゲスト。ある段階で、その要求を NIC への要求に変換する必要があります。ハイパーバイザーは、ゲストが使用方法を知っていると想定するダミーのネットワーク デバイスを公開しますか? または、準仮想化されたゲストは、特定のハードウェアを直接要求する方法を知っていますか? (そうであれば、準仮想化されていないゲストは何をしますか?)
リクエストが行われると、誰がそれを処理しますか? ハイパーバイザーは (ドライバーの観点から) 物理ハードウェアについてほとんど知識を持っていないので、おそらく dom0 に到達する必要があると思います。右?
カーネル開発が好きなので質問しますが、ドライバーを書くのは雑用です。かなり優れたハードウェア サポート (Ubuntu など) を備えた dom0 に依存し、カーネルを記述して準仮想化を実行したり、Xen が公開するモック デバイスを使用したりできれば、私の人生はずっと楽になります。 . ただし、これらのトピックに関するドキュメントを見つけるのはかなり難しいので、次の目的地はおそらくさまざまな Xen ゲスト実装を調べることです。Haskell ソフトウェアを Xen ゲストとしてネイティブに実行するための GHC のポートであるHaLVMは、良いスタートのようです。
感謝と挨拶!
編集: Xen.org のこのマーケティング ドキュメントは、私の推測に沿って、domUs のブロック デバイスとネットワーク アクセスを容易にするために dom0 がドライバーを実行すると述べているようです。この場合、技術的な参考文献/仕様/etc. すごいでしょう!
編集:この(明らかに時代遅れの)ドキュメントは良さそうです。