仮想マシンではすべてのホスト CPU 拡張が許可されないのですか?

仮想マシンではすべてのホスト CPU 拡張が許可されないのですか?

便宜上、Windows 7 ホストの VirtualBox 内で、ゲストとして Gentoo Linux の「通常の」インストールを実行しようとしています。VirtualBox を使用してインストールをブートストラップしました。しかし、約 1 年、コンパイラ フラグに -march=native を指定して Portage 上のすべてのパッケージを必然的に再構築した後、すべての非自明なプログラム (自明なプログラム = ls、cd、cat、非自明なプログラム = vim、man、基本的に C++ 標準ライブラリにリンクされているもの) が起動時にほぼ即座に終了することがわかりました。カーネル ログには、プログラムがホスト CPU がサポートしていない CPU 拡張機能を使用してコンパイルされたかのように、不正な命令がトラップされたことが示されています。しかし、実際にはそうなのです! VirtualBox のようなハイパーバイザーについての私の理解は、プログラムは基本的にベアメタル上で実行されるべきであり、その最大の役割はゲスト OS とそのユーザーランド、およびホスト OS とそのユーザーランドの仮想メモリを分離しておくことです。

私の質問は、何が起こっているのかということです。VM はホスト CPU で利用可能な命令の一部しか使用できないのでしょうか? それとも、これはまったく別の問題なのでしょうか?

関連情報