Аппаратная виртуализация позволяет запускать несколько независимых виртуальных машин в соответствующих разделах аппаратного, а не программного пространства компьютера (подробно см. http://www.tadviser.ru/index.php/Статья:Аппаратная_виртуализация).
Идея аппаратной виртуализации впервые она была реализована в процессорах Intel386 под названием V86 mode. Этот режим работы 8086-го процессора той же фирмы (процессор первых IBM-совместимых компьютеров) позволял запускать параллельно несколько DOS-приложений (первая операционная система IBM-совместимых компьютеров на базе только командной строки). Теперь аппаратная виртуализация позволяет запускать несколько независимых виртуальных машин в соответствующих разделах аппаратного пространства компьютера. Грубо говоря, сам процессор или маленькая программа (гипервизор) разбивает реальный компьютер на несколько виртуальных.
Компания Intel первая начала работу над усовершенствованием архитектуры x86 в целях поддержки платформ виртуализации в начале 2005 года, затем через несколько месяцев – фирма AMD. Перечень процессоров Intel и AMD с поддержкой виртуализации приведен на странице http://www.tadviser.ru/index.php/Статья:Аппаратная_виртуализация.
Технология Hyper Threading в широком смысле также представляет собой аппаратную технологию виртуализации, поскольку при ее использовании в рамках одного физического процессора происходит симуляция двух виртуальных процессоров с помощью техники Symmetric Multi Processing (SMP). Технология виртуального SMP позволяет представлять несколько виртуальных процессоров в гостевой ОС (при наличии технологии Hyper Threading или нескольких ядер в физическом процессоре).
Аппаратная виртуализация имеет перед программной следующие преимущества.
1. Потери быстродействия составляют порядка 5%, а не в несколько раз, как у программной, поскольку управление виртуальными гостевыми системами производится напрямую с помощью небольшой программы (гипервизора). В перспективе ожидается увеличение быстродействия платформ виртуализации на основе аппаратных гипервизоров.
2. Возможность независимого запуска нескольких виртуальных платформ с переключением между ними на аппаратном уровне, что позволит увеличить защищенность виртуальных машин за счет их полной изоляции.
3. Независимость гостевой системы от архитектуры хостовой платформы и реализации платформы виртуализации. С помощью технологий аппаратной виртуализации возможен запуск 64-битных гостевых систем из 32-битных хостовых систем с запущенными в них 32-битными средами виртуализации.
Чтобы перевести процессор в режим виртуализации, платформа (программа) виртуализации должна передать управление гипервизору с помощью соответствующей инструкции (команды), который запускает виртуальную гостевую систему. Гипервизор может выйти из режима виртуализации процессора, вызвав соответствующую инструкцию.
Возможность управления гостевыми системами посредством гипервизора, а также простота написания платформы виртуализации с использованием аппаратных техник, дают возможность разрабатывать вредоносное программное обеспечение, которое после получения контроля над хостовой операционной системой через уязвимость (недостаток в ОС, позволяющий вирусам проникать в нее), виртуализует ее и осуществляет все действия за ее пределами. Антивирусному программному обеспечение после осуществления процедуры миграции сложно обнаружить вредоносный код, поскольку он находится за пределами виртуализованной системы.
Такие вирусы относятся к категории руткитов. «Организационным» способом борьбы с руткитами является работа пользователя под учетной записью с ограниченными правами (User, а не Администратор). В этом случае руткит не сможет получить права администратора, необходимые для его работы. Для установки приложений пользователю придется каждый раз вводить пароль администратора или заходить в ОС под учетной записью администратора.
Заметим, что средства аппаратной виртуализации обычно отключены по умолчанию. Они могут быть включены при загрузке компьютера в настройках системной платы. Для этого надо войти в программу управления базовой системой ввода-вывода (БСВВ, BIOS или Setup) – сразу после нажатия кнопки включения компьютера удерживать или нажимать с частотой раз в секунду клавишу Del для стационарного компьютера (F2 или Del – для ноутбука). Например, для AMI BIOS это может быть раздел Advanced/CPU Config/Secure Virtual Machine Mode/Enabled (включено).