Разве виртуальные машины не допускают все расширения ЦП хоста?

Разве виртуальные машины не допускают все расширения ЦП хоста?

Ради удобства я пытаюсь запустить в остальном "обычную" установку Gentoo Linux в качестве гостя внутри VirtualBox на хосте Windows 7. Я даже загрузил установку с помощью VirtualBox. Но теперь, после примерно года неизбежной перекомпиляции всех пакетов в Portage с -march=native в моих флагах компилятора, я обнаружил, что все нетривиальные программы (тривиальные = ls, cd, cat, нетривиальные = vim, man, в основном все, что связано со стандартной библиотекой c++) убиваются почти сразу при запуске. Журнал ядра показывает, что оно перехватило недопустимые инструкции, как будто программа была скомпилирована с расширениями ЦП, которые ЦП хоста не поддерживает. Но это так! Я понимаю гипервизоры, такие как VirtualBox, так что программы должны по-прежнему работать в основном на голом железе, его самая большая роль заключается в разделении гостевой ОС и ее пользовательского пространства, а также хостовой ОС и виртуальной памяти ее пользовательского пространства.

Мой вопрос: что это дает? Виртуальным машинам разрешено использовать только некоторые инструкции, доступные на хостовом процессоре? Или это совсем другая проблема?

Связанный контент