完全仮想化とは、ハードウェアでサポートされている仮想化を意味する場合、ゲストのCPLは、ベアメタルで実行されている場合と同じです。
Xenがバイナリを書き換えることはありません。
これはVMWareが(私が理解している限りでは)何かです。私の理解の限りでは(ただし、VMWareソースコードを見たことがありません)、このメソッドは基本的に、異なる方法で実行する必要のあるコードのランタイムパッチを実行することで構成されます-通常、これには既存のオペコードを別のものに置き換えることが含まれます-いずれかが発生しますハイパーバイザーへのトラップ、または「正しいことを行う」コードの置換セット。これがVMWareでどのように機能するかを理解している場合、ハイパーバイザーはブロックをシングルステップで実行することでコードを「学習」し、バイナリパッチを適用するか、セクションを「クリア」としてマークします(変更する必要はありません)。次回このコードが実行されるときは、すでにパッチが適用されているか、クリアされているため、「フルスピード」で実行できます。
Xenでは、準仮想化(リング圧縮)を使用して、OSのコードが仮想化環境を認識するように変更されているため、特定のことを理解するために「信頼」されています。ただし、ハイパーバイザーは、たとえばページテーブルへの書き込みをトラップします(そうでない場合、誰かがページテーブルを変更して別のゲストのメモリなどにマップする悪意のあるカーネルモジュールを作成する可能性があります)。
HVMメソッドは特定の命令をインターセプトしますが、AMDのSVMやIntelプロセッサのVMXなどの最新のプロセッサのハードウェアサポートのおかげで、残りのコードは通常のフルスピードで実行されます。ARMのプロセッサの最新モデルにも同様のテクノロジがありますが、その名前がわかりません。
私があなたの質問のかなりすべてに答えたかどうか、私が何かを逃したかどうか、またはそれが十分に明確でないかどうかはわかりません、遠慮なく尋ねてください...