VMM ловушки привилегированные инструкции, и они переводятся с помощью двоичного перевода, но на самом деле в , на что переведены эти специальные инструкции?
Спасибо
VMM ловушки привилегированные инструкции, и они переводятся с помощью двоичного перевода, но на самом деле в , на что переведены эти специальные инструкции?
Спасибо
См. VMware_paravirtualization.pdf, страницы 3 и 4.
Этот подход, изображенный на рисунке 5, переводит код ядра для замены невращающиеся инструкции с новыми последовательности инструкций, которые предполагаемый эффект на виртуальном аппаратное обеспечение.
Таким образом, привилегированные инструкции переводятся в другие инструкции, которые получают доступ к виртуальному BIOS, управлению памятью и устройствам, предоставляемым монитором виртуальной машины, вместо того, чтобы выполнять непосредственно на реальном оборудовании.
Именно то, что представляют эти инструкции, определяется реализацией VM. Поставщики программного обеспечения для виртуализации не обязательно публикуют свои двоичные методы перевода.
Двоичный перевод - это метод виртуализации системы.
Чувствительные инструкции в двоичном формате гостевой ОС заменяются либо вызовами Hypervisor, которые безопасно обрабатывают такие чувствительные инструкции, либо некоторыми кодами undefined, которые приводят к ловушке CPU. Такая ловушка процессора обрабатывается гипервизором.
В большинстве современных процессоров контекстно-зависимые инструкции не являются виртуализируемыми. Бинарный перевод - это метод преодоления этого ограничения.
Например, если Гость захотел изменить/прочитать состояние состояния процессора CPU, содержащее важные флаги/управляющие битовые поля, хост-программа сканирует гостевой двоичный файл для таких инструкций и заменяет их либо вызовом гипервизора, либо каким-то манекеном опкод.
Пара-виртуализация, с другой стороны, является методом, в котором изменяется исходный код гостевой ОС. Весь связанный с системным ресурсом код модифицируется с помощью API-интерфейсов Hypervisor.