為了方便起見,我嘗試在 Windows 7 主機上的 VirtualBox 中以訪客身分執行「常規」安裝的 Gentoo Linux。我甚至使用 VirtualBox 引導安裝。但現在,在我的編譯器標誌中不可避免地使用-march=native 重建Portage 上的所有軟體包大約一年之後,我發現所有非平凡的程式(平凡= ls、cd、cat、非平凡= vim 、man、基本上所有連結到 c++ 標準函式庫的東西都會在啟動時幾乎立即被殺死。核心日誌顯示它捕獲了非法指令,就好像程式是使用主機 CPU 不支援的 CPU 擴充編譯的一樣。但確實如此!我對像VirtualBox 這樣的虛擬機器管理程式的理解是,程式基本上仍然應該在裸機上運行,它最大的作用是保持來賓作業系統及其用戶區和主機作業系統及其用戶區的虛擬記憶體分離。
我的問題是,什麼給了?虛擬機器是否只允許使用主機 CPU 上可用的部分指令?或者這是一個完全不同的問題?