Технологии виртуализации вчера, сегодня, завтра


Виртуализация сегодня и завтра: Intel VT и AMD «Pacifica»


Корпорация Intel пошла достаточно прямолинейным путём, попросту выпустив «минимально необходимую» заплатку к x86. Полное название «заплатки» - Intel Virtualization Techology for x86 (VT-x); одновременно была выпущена аналогичная виртуализационная «технология» для процессоров Intel Itanium (VT-i). Впрочем, рассматривать последнюю технологию мы не будем, поскольку по сути своей она практически полностью аналогична VT-x. Напомним, что ранее данная технология была известна под кодовыми именами Vanderpool (для персональных компьютеров) и Silvervale (для серверов).

Что же сделала Intel? Довольно нетривиальную, хотя и напрашивающуюся вещь. Разработчик архитектуры IA-32 попросту ввела в своих процессорах специальный «режим выполнения виртуальной машины» (Virtual Machine eXecution mode, VMX), предназначенный специально для виртуализационного ПО (Virtual Machine Manager, VMM), и определила для этого режима несколько ключевых «виртуализационных» инструкций, таких как, к примеру, «создать виртуальный компьютер» и «запустить виртуальный компьютер». Собственно этот самый «виртуальный компьютер» в VT-x описывается специальной структурой под названием VMCS (Virtual Machine Control Structure) и по сути своей является небольшим участком физической оперативной памяти, хранящим минимально необходимые данные для запуска гостевой операционной системы, а также данные, необходимые для безопасного выхода из режима работы гостевой ОС, и некоторые настройки, относящиеся к управлению этой виртуальной машиной.

Программист практически вручную создаёт эту структуру, полностью описывающую необходимый ему виртуальный компьютер и его свойства, после чего «загружает» её в специальный аппаратный регистр «текущей виртуальной машины». Затем программист может «запустить» свежесозданную виртуальную машину специальной инструкцией.

Запущенная виртуальная машина работает на обычных аппаратных ресурсах компьютера (указанных VMM в описании виртуальной машины) и для запущенного на ней программного обеспечения практически ничем не отличается от обычной «физической» машины.


Начало    Вперед