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

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

0