программная виртуализация против аппаратной виртуализации

Что на самом деле происходит при включении аппаратной виртуализации? в противном случае гипервизор использует двоичную трансляцию. но, когда аппаратная виртуализация включена, я читал, что она использует ловушку и эмуляцию. поэтому гостевой код выполняется непосредственно на центральном процессоре, если это привилегированная инструкция, которую процессор передает управление гипервизору, гипервизор эмулирует эту инструкцию, а затем выполняет ее.

Итак, что здесь означает эмуляция? выполняется ли такая же двоичная трансляция при включенной аппаратной виртуализации?


person Droider    schedule 14.11.2013    source источник


Ответы (1)


Включение аппаратной виртуализации устанавливает флаг vmx в Intel и svm в AMD.

В архитектуре Intel это позволяет вызовам пользовательского пространства работать как есть на нижнем кольце защиты., поскольку они не могут потенциально мешать работе ОС хоста. С другой стороны, вызовы пространства ядра вируализированной ОС перехватываются и двоично транслируются гипервизором.

Это сделано для того, чтобы частично убрать интенсивную трансляцию CPU для тривиальных вызовов. Сколько этого произойдет, зависит от типа виртуализации: полная, частичная или паравиртуальная.

Двоичный перевод - это часть более сложного процесса эмуляции. Он выравнивает код гостя, чтобы он мог работать на хост-архитектуре.

person erbdex    schedule 14.11.2013
comment
да, я читал о защитных кольцах в различных документах, но что конкретно такое защитное кольцо? - person Droider; 14.11.2013
comment
Прочтите это - osronline.com/article.cfm?article=224 Если вы есть конкретные вопросы, задавайте. - person erbdex; 14.11.2013
comment
Это очень проницательный пост - duartes.org/gustavo/blog / post / - person erbdex; 21.01.2014