В биосе virtualization technology – Как включить аппаратную виртуализацию в BIOS? Virtualization Technology — технология аппаратной виртуализации гостевых ОС (с фото)

Содержание

Как включить аппаратную виртуализацию в BIOS? Virtualization Technology — технология аппаратной виртуализации гостевых ОС (с фото)

Опция Virtualization Technology. Включение данной опции включает технологию аппаратной виртуализации,  основанной на специальной процессорной архитектуре.   В отличие от программной виртуализации, с помощью данной техники возможно использование изолированных гостевых систем (виртуальных машинах — VMware, Virtual PC и тд.), управляемых гипервизором напрямую. Гостевая система не зависит от архитектуры хостовой платформы и реализации платформы виртуализации.

На работу программ пользователя в стандартной операционной системе данная опция практически не влияет.

Значения опции:

 

Опция также может иметь другие названия:

  • Virtualization Technology
  • Vanderpool Technology
  • VT Technology
  • Virtualization

 

Примечание 1

.Аппаратная виртуализация виртуализация с поддержкой специальной процессорной архитектуры. Аппаратная виртуализация обеспечивает производительность, сравнимую с производительностью невиртуализованной машины, что дает виртуализации возможность практического использования и влечет её широкое распространение. Наиболее распространены технологии виртуализации Intel-VT и AMD-V.

  1. В Intel VT (Intel Virtualization Technology) реализована виртуализация режима реальной адресации (режим совместимости с 8086). Соответствующая аппаратная виртуализация ввода-вывода — VT-d. Часто обозначается аббревиатурой VMX (Virtual Machine eXtension). Кодовое название — Vanderpool.
  2. AMD-V часто обозначается аббревиатурой SVM (Secure Virtual Machines). Кодовое название — Pacifica. Соответствующая технология виртуализации ввода-вывода — IOMMU. AMD-V проще и эффективнее, чем Intel VT. Поддержка AMD-V появилась в Xen 3.3.

Intel VT (Intel Virtualization Technology) — intel virtualization technology что это?

Intel VT — это аппаратная основа для программного создания виртуализации, через уменьшение ее размера, стоимости и сложности.  Например, при использовании такими системами  кэш-памяти, системе ввода-вывод. Применяется в основном пользователями в корпоративном, облачном, коммуникационном секторах.

VT-x 13 ноября 2005 года Intel выпустила две модели Pentium 4 (модели 662 и 672), которые стали первыми процессорами, поддерживающими VT-x («Vanderpool»). VT-x представляет собой технологию виртуализации Intel режима реальной адресации на платформе x86 — VMX (Virtual Machine eXtension).

Реализована виртуализация режима реальной адресации (режим совместимости с 8086). 

VT-d (Virtualization technology for directed I/O) — технология аппаратной виртуализации ввода-вывода , созданная корпорацией Intel в дополнение к её технологии виртуализации вычислений VT-x. Виртуализация ввода-вывода позволяет пробрасывать (pass-through) устройства на шине PCI (и более современных подобных шинах) в гостевую ОС, таким образом, что она может работать с ним с помощью своих штатных средств. Чтобы такое было возможно, в логических схемах системной платы используется специальное устройство управления памятью ввода-вывода (IOMMU), работающее аналогично MMU центрального процессора, используя таблицы страниц и специальную таблицу отображения DMA (DMA remapping table — DMAR), которую гипервизор получает от BIOS через ACPI. Отображение DMA необходимо, поскольку гипервизор ничего не знает о специфике работы устройства с памятью по физическим адресам, которые известны лишь драйверу. С помощью DMAR он создает таблицы отображения таким образом, что драйвер гостевой ОС видит виртуальные адреса IOMMU аналогично тому, как бы он видел физические без него и гипервизора.

Intel Virtualization Technology for Directed I/O (VT-d) — это следующий важный шаг на пути к всеобъемлющей аппаратной поддержке виртуализации платформ на базе Intel. VT-d расширяет возможности технологии Virtualization Technology (VT), существующей в IA-32 (VT-x) и Itanium (VT-i), и добавляет поддержку виртуализации новых устройств ввода-вывода. Ознакомиться подробнее с технической стороной вопроса можно здесь https://ru.wikipedia.org/wiki/

 

Программа Setup BIOS фирмы AWARD Software International Inc на системных платах GIGABYTE TECHNOLOGY

Название данной опции у данного производителя в данной версии BIOS:

Virtualization значение по умолчанию [Disabled]

Возможное значение:

Обозначение опции BIOSОписание опции в БИОСеПереведенное значение опции БИОС

Hardware assisted VirtuaIization Technology which help improve performance of system running VirtuaI Machine Softwares.

Virtual Machine allows multiple OS on one conputer simultaneously.

Оборудование для помощи VirtuaIization — технология которая помогает повысить производительность системы, работающей на VirtuaI-машине.

Виртуальная машина позволяет запускать более производительно несколько ОС на одном компьютерные одновременно.

[Disabled]

Не включать технологию аппаратной виртуализации,  основанной на специальной процессорной архитектуре.

[Enabled]

Включает технологию аппаратной виртуализации,  основанной на специальной процессорной архитектуре.

Программа Aptio Setup Utility — BIOS фирмы American Megatrends Inc на системных платах Dell Inc.

Название данной опции у данного производителя в данной версии BIOS (ноутбук):

Virtualization значение по умолчанию  [Enabled]

Возможное значение:

Обозначение опции BIOSОписание опции в БИОСе Переведенное значение опции БИОС

This option specifies whether a Virtual Machine Monitor (VMM) can utilize the additional hardware capabilities provided by Intel(R) Virtualization Technology.

Эта опция определяет, будет ли монитор виртуальных машин (VMM) использовать дополнительные аппаратные возможности, обеспечиваемые Intel (R) Virtualization Technology.

[Disabled] Disabled = Disable Virtualization Technology. Отключен = Отключить Технология виртуализации.
[Enabled] Enabled = Enable Virtualization Technology.

The factory default setting is Enabled.

Введено = Включить Virtualization Technology.

Заводская настройка по умолчанию — Включена поддержка.

Программа BIOS Insydeh30 Setup Utility компании Insyde Software на на системных платах Hewlett-Packard Company (HP)

Название данной опции у данного производителя в данной версии BIOS:

Virtualization Technology значение по умолчанию  [Disabled]

Данная опция находится на вкладке: «System Configuration»

Обозначение опции BIOSОписание опции в БИОСеПереведенное значение опции БИОС
 

Hardware VT enables a processor feature for running multiple simultaneous virtual machines allowing specialized software application to run in full isolation of each other. HP recommends that this feature remain disabled unless specialized unless specialized application are being user.

Аппаратные средства VT включают функции процессора для запуска нескольких виртуальных машин одновременно, позволяя специализированным прикладным программам запускать в полной изоляции друг от друга приложения. HP рекомендует, чтобы эта функция оставалась отключенной, если пользователь не использует специально предназначенное для этого специализированное приложение.

[ Disabled ]

 

 

[ Enabled ]    

Навигация и настройка значений  БИОС Insydeh30 Setup Utility фирмы Insyde Software осуществляется стандартно, с помощью следующих клавиш:

  • > <: Select Screen — Переходить по вкладкам главного — верхнего меню (Выберите экран)
  • ^ v: Select Item — Переходить по опциям и значениям (Выбрать пункт)
  • Enter: Select Ввод: Открытие значения опции, а также ее сохранение – закрытие (ОК).
  • F5/F6 или +/-: Change Opt. — Изменение значения опции в открывшемся окне, которое открылось после нажатия Enter.
  • F1: General Help
  • F9: Optimized Defaults — Нажать функциональную клавишу F9 и загрузить оптимизированные дефолтные значения всех опций BIOS Setup.
  • F10: Save — Нажать F10 и выйти с сохранением изменений.
  • ESC: Exit — Нажать ESC и выйти без сохранения произведенных изменений.


Еще по настройке БИОС (БИОЗ) плат:

  • Включаем SSE2 Instructions в компьютере Опция SSE — SSE2 Instructions —  должна быт…

  • Опция TM2 Bus VID позволяет установить напряжение питания ядра пр…

  • Опция TM2 Bus Ratio определяет множитель, на который перейдет про…

  • Использование опции Thermal Slow Clock Ratio позволяет автоматиче…

  • Опция Thermal Management отвечает за использование системы защиты…

Как в БИОСе включить виртуализацию и для чего она нужна? :: SYL.ru

Как в БИОСе включить виртуализацию? Таким вопросом задавалось большое количество пользователей персональных компьютеров. Некоторые люди, вероятно, слышали о такой технологии, но не понимают, какие преимущества она может предоставить, и в чем она вообще заключается. Эти вопросы будут рассмотрены в данной статье.

Что такое виртуализация?

как в биосе включить виртуализацию

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

Основные преимущества

как включить виртуализацию без биоса

Чем хороша виртуализация? Вот ее основные преимущества:

  • Повышается эффективность использования аппаратной части.
  • Уменьшаются материальные затраты.
  • Оптимизируется распределение ресурсов.
  • Безопасность работы становится выше.
  • Более упрощенное администрирование.
  • Повышенная надежность.

Для того чтобы создавать виртуальные системы, используется специальное программное обеспечение, которое называется гипервизором. Но из-за некоторых особенностей старых процессоров, построенных на архитектуре Intel, гипервизор не мог использовать их вычислительные мощности максимально эффективно для того, чтобы создавать виртуальные машины.

По этой причине ведущие компании, занимающиеся разработкой процессоров для персональных компьютеров, создали технологию аппаратной виртуализации. Она способна оптимизировать работу процессоров так, чтобы в значительной мере увеличить эффективность программного обеспечения для этого процесса. Технология поддержки аппаратной виртуализации от Intel называется Intel-VT, а у компании AMD она же носит название AMD-V.

Принцип работы

как включить поддержку виртуализации в биосе

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

Поддержка технологии

Так как аппаратная виртуализация интегрирована в центральный процессор, то для того, чтобы пользователю можно было максимально использовать ее преимущества, необходимо, чтобы и его компьютер поддерживал данную технологию на процессорном уровне. Помимо этого, также необходимо, чтобы технология была реализуема со стороны операционной системы и БИОСа. Если последняя поддерживает аппаратную виртуализацию, пользователь получает возможность задействовать или же отключить ее в настройках. Необходимо учесть, что бывают чипсеты для материнских плат, которые базируются на процессорах AMD, и в которых нет возможности выключить поддержку этой технологии.

Как в БИОСе включить виртуализацию?

включить виртуализацию в биосе asus

Для включения и выключения данной опции в БИОСе имеется специальная функция, которая так и называется – Virtualization Technology. Как правило, эта опция находится в разделах, связанных с центральным процессором или чипсетом.

Итак, как в БИОСе включить виртуализацию? Очень просто. Обычно установка значения Enabled дает возможность задействовать технологию, а значение Disabled – отключить. Необходимо иметь в виду, что активация настройки оказывает влияние только на производительность виртуальных компьютеров, которые работают в рамках гипервизора. На производительность всех программ операционной системы никакого влияния не оказывается.

Разные производители используют свои настройки, но все равно нетрудно включить виртуализацию в БИОСе (Asus, Lenovo и другие имеют схожие настройки).

Заключение

Мы выяснили, как в БИОСе включить виртуализацию. Данная технология является очень мощным средством, которое позволяет расширить возможности компьютеров и намного эффективнее использовать имеющееся в распоряжении аппаратное обеспечение. Большая часть современных персональных компьютеров обладает процессорами, в которые встроено данное решение. Это позволяет повысить их производительность, если используются виртуальные машины. Кроме этого, в большинстве ПК существует возможность настраивать поддержку аппаратной виртуализации.

Некоторые пользователи интересуется тем, как включить виртуализацию без БИОСа. Это сделать невозможно, так как производители аппаратного обеспечения внедряют технологию именно в железо. А прямой доступ к нему имеет только БИОС.

Аппаратная виртуализация — Википедия

Аппаратная виртуализация — виртуализация с поддержкой специальной процессорной архитектуры. В отличие от программной виртуализации, с помощью данной техники возможно использование изолированных гостевых систем, управляемых гипервизором напрямую.

Гостевая система не зависит от архитектуры хостовой платформы и реализации платформы виртуализации.

Аппаратная виртуализация обеспечивает производительность, сравнимую с производительностью невиртуализованной машины, что дает виртуализации возможность практического использования и влечет её широкое распространение. Наиболее распространены технологии виртуализации Intel-VT и AMD-V.

  • В Intel VT (Intel Virtualization Technology) реализована виртуализация режима реальной адресации (режим совместимости с 8086). Соответствующая аппаратная виртуализация ввода-вывода — VT-d (кодовое название — Vanderpool). Часто обозначается аббревиатурой VMX (Virtual Machine eXtension).
  • AMD-V часто обозначается аббревиатурой SVM (Secure Virtual Machines). Кодовое название — Pacifica. Соответствующая технология виртуализации ввода-вывода — IOMMU. AMD-V проще и эффективнее, чем Intel VT.[1] Поддержка AMD-V появилась в Xen 3.3.

VT-x[править | править код]

Ранее известная под кодовым названием «Vanderpool», VT-x представляет собой технологию виртуализации Intel на платформе x86. 13 ноября 2005 года Intel выпустила две модели Pentium 4 (модели 662 и 672), которые стали первыми процессорами, поддерживающими VT-x. Флаг поддержки VT-x — «vmx»; в Linux проверяется командой grep vmx /proc/cpuinfo, в Mac OS X — sysctl machdep.cpu.features.[2]

По состоянию на 2015 год не все процессоры Intel поддерживают VT-x, что используется компанией Intel для сегментирования своего рынка.[3] Поддержка VT-x может различаться даже между различными версиями (которые идентифицируются по sSpec Number) одной и той же модели.[4][5] Полный список можно посмотреть на сайте Intel.[6] Даже в мае 2011 года процессор Intel P6100, используемый в ноутбуках, не поддерживает аппаратную виртуализацию.[7]

На некоторых материнских платах пользователи должны вручную включить виртуализацию VT-x в настройках BIOS.[8]

Intel начала включать технологию виртуализации Extended Page Table (EPT)[9] для страничных таблиц[10], начиная с процессоров архитектуры Nehalem, выпущенных в 2008 году[11][12].

В 2010 году в архитектуру Westmere была добавлена технология «неограниченного гостя», заключающаяся в поддержке логического процессора в реальном режиме и требующая для работы EPT.[13][14]

Начиная с архитектуры Haswell, объявленной в 2013 году, Intel начала включать затенение VMCS — технологию, ускоряющую вложенную виртуализацию гипервизоров.[15] VMCS — структура управления виртуальной машины (virtual machine control structure) — структура данных в памяти, существующая в точности в одном экземпляре на одну виртуальную машину и управляемая гипервизором. С каждым изменением контекста выполнения между разными ВМ структура данных VMCS восстанавливается для текущей виртуальной машины, определяя состояние виртуального процессора ВМ.[16] Если используется больше одного гипервизора или используются вложенные гипервизоры, необходимо многократное затенение VMCS. Аппаратная поддержка затенения делает управление VMSC более эффективным.

VT-d[править | править код]

VT-d (Virtualization technology for directed I/O) — технология виртуализации ввода-вывода, созданная корпорацией Intel в дополнение к её технологии виртуализации вычислений (VT), известной под кодовым названием Vanderpool. Виртуализация ввода-вывода позволяет пробрасывать (pass-through) устройства на шине PCI (и более современных подобных шинах) в гостевую ОС, таким образом, что она может работать с ним с помощью своих штатных средств. Чтобы такое было возможно, в логических схемах системной платы используется специальное устройство управления памятью ввода-вывода (IOMMU), работающее аналогично MMU центрального процессора, используя таблицы страниц и специальную таблицу отображения DMA (DMA remapping table — DMAR), которую гипервизор получает от BIOS через ACPI. Отображение DMA необходимо, поскольку гипервизор ничего не знает о специфике работы устройства с памятью по физическим адресам, которые известны лишь драйверу. С помощью DMAR он создает таблицы отображения таким образом, что драйвер гостевой ОС видит виртуальные адреса IOMMU аналогично тому, как бы он видел физические без него и гипервизора.

Intel Virtualization Technology for Directed I/O (VT-d) — это следующий важный шаг на пути к всеобъемлющей аппаратной поддержке виртуализации платформ на базе Intel. VT-d расширяет возможности технологии Virtualization Technology (VT), существующей в IA-32 (VT-x) и Itanium (VT-i), и добавляет поддержку виртуализации новых устройств ввода-вывода.

Поддержка аппаратным обеспечением[править | править код]
  • Виртуализация ввода-вывода впервые появилась в чипсете Q35, и на сегодняшний день поддерживается всеми материнскими платами, поддерживающими технологию Intel vPro.
  • Для использования Intel Virtualization Technology необходим компьютер с процессором Intel, BIOS, монитором виртуальных машин (VMM), а для некоторых моделей с определенным программным обеспечением с поддержкой этой технологии. Функциональные возможности, производительность и другие характеристики могут различаться в зависимости от аппаратного и программного обеспечения и могут потребовать обновления BIOS.
  • Процессоры, поддерживающие Virtualization Technology for Directed I/O: Intel Core i7-920, Intel Core i7-940, Intel Core i7-950, Intel Core i7-870, Intel Core i7-860, Intel Core i5-650, Intel Core i5-660, Intel Core i5-670, Intel Core i5-540M, Intel Core i5-520M и т. д. [1]
  • i7-920 поддерживает технологию VT-x, про VT-d на оф. сайте не указано.[17]
Поддержка программным обеспечением[править | править код]
  • Гипервизор Xen поддерживает DMAR начиная с версии 3.3 для аппаратно-виртуализуемых доменов. Для паравиртуальных доменов отображение DMA не требуется.
  • В ближайшем будущем[когда?] заявлена поддержка технологии ПО Oracle VirtualBox.
  • Ядро Linux экспериментально поддерживает DMAR начиная с версии 2.6.28, что позволяет встроенному гипервизору (kvm) давать доступ виртуальным машинам к PCI-устройствам.
  • Поддержка Intel VT-d есть в Parallels Workstation 4.0 Extreme [2] и в Parallels Server 4 Bare Metal [3]

AMD разработала свои расширения виртуализации первого поколения под кодовым названием «Pacifica», и первоначально опубликовала их как AMD Secure Virtual Machine (SVM)[18], но позже, на рынке, — под торговой маркой «AMD Virtualization», сокращенно «AMD-V».

23 мая 2006 года AMD выпустила Athlon 64 («Orleans»), Athlon 64 X2 («Windsor») и Athlon 64 FX («Windsor») в качестве первых процессоров AMD с поддержкой данной технологии.

Поддержка AMD-V также обеспечивается в семействе процессоров Athlon 64 и Athlon 64 X2 ревизий «F» или «G» на Socket AM2, Turion 64 X2, и Opteron второго поколения[19] и третьего поколения[20], а также процессорами Phenom и Phenom II. Только две модели Sempron поддерживают её: Huron and Sargas.

Процессоры AMD Fusion также поддерживают AMD-V.

AMD-V не поддерживается в процессорах на Socket 939.

Процессоры Opteron, начиная с семейства 0x10 Barcelona, и процессоры Phenom II поддерживают второе поколение аппаратной виртуализации технология под названием Rapid Virtualization Indexing (ранее известная как Nested Page Tables во время его разработки), позже адаптированные Intel, как Extended Page Tables (EPT).

  1. ↑ Сергей Озеров, Александр Карабуто. Технологии виртуализации: вчера, сегодня, завтра, 2006
  2. ↑ Просмотр моделей процессоров Intel, поддерживающих аппаратную виртуализацию Intel 2012.
  3. Stokes, Jon Microsoft, Intel goof up Windows 7’s «XP Mode» (неопр.). Arstechnica.com (8 мая 2009). Дата обращения 2 мая 2010.
  4. ↑ Processor Spec Finder (неопр.). Processorfinder.intel.com. Дата обращения 2 мая 2010.
  5. ↑ Intel Processor Number Details
     (неопр.)
    . Intel. Intel (3 декабря 2007). Дата обращения 3 октября 2008.
  6. ↑ Intel Virtualization Technology List (неопр.). Ark.intel.com. Дата обращения 2 мая 2010.
  7. ↑ Intel Pentium P6100 (3M cache, 2.00 GHz) (неопр.). Ark.intel.com. Дата обращения 4 февраля 2012.
  8. ↑ Windows Virtual PC: Configure BIOS (неопр.). Microsoft. Дата обращения 8 сентября 2010. Архивировано 6 сентября 2010 года.
  9. Neiger, Gil; A. Santoni; F. Leung; D. Rodgers; R. Uhlig. Intel Virtualization Technology: Hardware Support for Efficient Processor Virtualization (англ.) // Intel Technology Journal (англ.)русск. : journal. — Intel. — Vol. 10, no. 3. — P. 167—178. — DOI:10.1535/itj.1003.01. Архивировано 17 марта 2008 года. Архивная копия от 25 сентября 2012 на Wayback Machine
  10. Gillespie, Matt Best Practices for Paravirtualization Enhancements from Intel Virtualization Technology: EPT and VT-d
     (неопр.)
    . Intel Software Network. Intel (12 ноября 2007). Дата обращения 6 июля 2008.
  11. ↑ Intel. First the Tick, Now the Tock: Next Generation Intel Microarchitecture (Nehalem) (PDF). Пресс-релиз. Проверено 2008-07-06.
  12. ↑ Technology Brief: Intel Microarchitecture Nehalem Virtualization Technology (неопр.) (PDF). Intel (25 марта 2009). Дата обращения 3 ноября 2009.
  13. ↑ http://2013.asiabsdcon.org/papers/abc2013-P5A-paper.pdf: «Intel added unrestricted guest mode on Westmere micro-architecture and later Intel CPUs, it uses EPT to translate guest physical address access to host physical address. With this mode, VMEnter without enable paging is allowed.»
  14. ↑ http://download.intel.com/products/processor/manual/326019.pdf: «If the „unrestricted guest“ VM-execution control is 1, the „enable EPT“ VM-execution control must also be 1»
  15. ↑ 4th-Gen Intel Core vPro Processors with Intel VMCS Shadowing (неопр.) (PDF). Intel (2013). Дата обращения 16 декабря 2014.
  16. ↑ Understanding Intel Virtualization Technology (VT). Архивировано 8 сентября 2014 года. Retrieved 2014-09-01
  17. ↑ ARK | Фильтр функций процессора
  18. ↑ 33047_SecureVirtualMachineManual_3-0.book (неопр.) (PDF). Дата обращения 2 мая 2010. Архивировано 11 мая 2013 года.
  19. ↑ What are the main differences between Second-Generation AMD Opteron processors and first-generation AMD Opteron processors? publisher=Amd.com (неопр.) (недоступная ссылка). Дата обращения 4 февраля 2012. Архивировано 11 мая 2013 года.
  20. ↑ What virtualization enhancements do Third-Generation AMD Opteron processors feature? (неопр.) (недоступная ссылка). Amd.com. Дата обращения 4 февраля 2012. Архивировано 11 мая 2013 года.

Технологии аппаратной виртуализации

Бурное развитие рынка технологий виртуализации за последние несколько лет произошло во многом благодаря увеличению мощностей аппаратного обеспечения, позволившего создавать по-настоящему эффективные платформы виртуализации, как для серверных систем, так и для настольных компьютеров. Технологии виртуализации позволяют запускать на одном физическом компьютере (хосте) несколько виртуальных экземпляров операционных систем (гостевых ОС) в целях обеспечения их независимости от аппаратной платформы и сосредоточения нескольких виртуальных машин на одной физической. Виртуализация предоставляет множество преимуществ, как для инфраструктуры предприятий, так и для конечных пользователей. За счет виртуализации обеспечивается существенная экономия на аппаратном обеспечении, обслуживании, повышается гибкость ИТ-инфраструктуры, упрощается процедура резервного копирования и восстановления после сбоев. Виртуальные машины, являясь независимыми от конкретного оборудования единицами, могут распространяться в качестве предустановленных шаблонов, которые могут быть запущены на любой аппаратной платформе поддерживаемой архитектуры.

До недавнего времени усилия в области виртуализации операционных систем были сосредоточены в основном в области программных разработок. В 1998 году компания VMware впервые серьезно обозначила перспективы развития виртуальных систем, запатентовав программные техники виртуализации. Благодаря усилиям VMware, а также других производителей виртуальных платформ, и возрастающим темпам совершенствования компьютерной техники, корпоративные и домашние пользователи увидели преимущества и перспективы новой технологии, а рынок средств виртуализации начал расти стремительными темпами. Безусловно, такие крупные компании, как Intel и AMD, контролирующие большую часть рынка процессоров, не могли оставить эту перспективную технологию без внимания. Компания Intel первая увидела в новой технологии источник получения технологического превосходства над конкурентами и начала работу над усовершенствованием x86 архитектуры процессоров в целях поддержки платформ виртуализации. Вслед за Intel компания AMD также присоединилась к разработкам в отношении поддержки аппаратной виртуализации в процессорах, чтобы не потерять позиции на рынке. В данный момент обе компании предлагают модели процессоров, обладающих расширенным набором инструкций и позволяющих напрямую использовать ресурсы аппаратуры в виртуальных машинах.

Развитие аппаратных техник виртуализации

Идея аппаратной виртуализации не нова: впервые она была воплощена в 386-х процессорах и носила название V86 mode. Этот режим работы 8086-го процессора позволял запускать параллельно несколько DOS-приложений. Теперь аппаратная виртуализация позволяет запускать несколько независимых виртуальных машин в соответствующих разделах аппаратного пространства компьютера. Аппаратная виртуализация является логическим продолжением эволюции уровней абстрагирования программных платформ — от многозадачности до уровня виртуализации:

  • Многозадачность

    Многозадачность

    Многозадачность является первым уровнем абстракции приложений. Каждое приложение разделяет ресурсы физического процессора в режиме разделения исполнения кода по времени.

  • HyperThreading

    HyperThreading

    Технология HyperThreading в широком смысле также представляет собой аппаратную технологию виртуализации, поскольку при ее использовании в рамках одного физического процессора происходит симуляция двух виртуальных процессоров в рамках одного физического с помощью техники Symmetric Multi Processing (SMP).

  • Виртуализация

    Виртуализация

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

Преимущества аппаратной виртуализации над программной

Программная виртуализация в данный момент превалирует над аппаратной на рынке технологий виртуализации ввиду того, что долгое время производители процессоров не могли должным образом реализовать поддержку виртуализации. Процесс внедрения новой технологии в процессоры требовал серьезного изменения их архитектуры, введения дополнительных инструкций и режимов работы процессоров. Это рождало проблемы обеспечения совместимости и стабильности работы, которые были полностью решены в 2005-2006 годах в новых моделях процессоров. Несмотря на то, что программные платформы весьма продвинулись в отношении быстродействия и предоставления средств управления виртуальными машинами, технология аппаратной виртуализации имеет некоторые неоспоримые преимущества перед программной:

  • Упрощение разработки платформ виртуализации за счет предоставления аппаратных интерфейсов управления и поддержки виртуальных гостевых систем. Это способствует появлению и развитию новых платформ виртуализации и средств управления, в связи с уменьшением трудоемкости и времени их разработки.
  • Возможность увеличения быстродействия платформ виртуализации. Поскольку управление виртуальными гостевыми системами производится с помощью небольшого промежуточного слоя программного обеспечения (гипервизора) напрямую, в перспективе ожидается увеличение быстродействия платформ виртуализации на основе аппаратных техник.
  • Возможность независимого запуска нескольких виртуальных платформ с возможностью переключения между ними на аппаратном уровне. Несколько виртуальных машин могут работать независимо, каждая в своем пространстве аппаратных ресурсов, что позволит устранить потери быстродействия на поддержание хостовой платформы, а также увеличить защищенность виртуальных машин за счет их полной изоляции.
  • Отвязывание гостевой системы от архитектуры хостовой платформы и реализации платформы виртуализации. С помощью технологий аппаратной виртуализации возможен запуск 64-битных гостевых систем из 32-битных хостовых системах, с запущенными в них 32-битными средами виртуализации.

Как работает аппаратная виртуализация

Необходимость поддержки аппаратной виртуализации заставила производителей процессоров несколько изменить их архитектуру за счет введения дополнительных инструкций для предоставления прямого доступа к ресурсам процессора из гостевых систем. Этот набор дополнительных инструкций носит название Virtual Machine Extensions (VMX). VMX предоставляет следующие инструкции: VMPTRLD, VMPTRST, VMCLEAR, VMREAD, VMREAD, VMWRITE, VMCALL, VMLAUNCH, VMRESUME, VMXON и VMXOFF.

Процессор с поддержкой виртуализации может работать в двух режимах root operation и non-root operation. В режиме root operation работает специальное программное обеспечение, являющееся «легковесной» прослойкой между гостевыми операционными системами и оборудованием — монитор виртуальных машин (Virtual Machine Monitor, VMM), носящий также название гипервизор (hypervisor). Слово «гипервизор» появилось интересным образом: когда-то очень давно, операционная система носила название «supervisor», а программное обеспечение, находящееся «под супервизором», получило название «гипервизор».

Чтобы перевести процессор в режим виртуализации, платформа виртуализации должна вызвать инструкцию VMXON и передать управление гипервизору, который запускает виртуальную гостевую систему инструкцией VMLAUNCH и VMRESUME (точки входа в виртуальную машину). Virtual Machine Monitor может выйти из режима виртуализации процессора, вызвав инструкцию VMXOFF.

Процедура запуска виртуальных машин

Каждая из гостевых операционных систем запускается и работает независимо от других и является изолированной с точки зрения аппаратных ресурсов и безопасности.

Отличие аппаратной виртуализации от программной

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

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

Недостатки аппаратной виртуализации

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

В начале 2006 года в лабораториях Microsoft Research был создан руткит под кодовым названием SubVirt, поражающий хостовые системы Windows и Linux и делающий свое присутствие практически не обнаруживаемым. Принцип действия этого руткита заключался в следующем:

  1. Через одну из уязвимостей в операционной системе компьютера вредоносное программное обеспечение получает административный доступ.
  2. После этого, руткит начинает процедуру миграции физической платформы на виртуальную, по окончании которой происходит запуск виртуализованной платформы посредством гипервизора. При этом для пользователя ничего не меняется, все продолжает работать, как и раньше, а все средства и службы, необходимые для доступа к гипервизору извне (например, терминального доступа), находятся за пределами виртуализованной системы.
  3. Антивирусное программное обеспечение после осуществления процедуры миграции не может обнаружить вредоносный код, поскольку он находится за пределами виртуализованной системы.

Наглядно эта процедура выглядит так:

Схема работы руткита SubVirt

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

Технологии виртуализации компаний Intel и AMD

Компании Intel и AMD, являясь ведущими производителями процессоров для серверных и настольных платформ, разработали техники аппаратной виртуализации для их использования в платформах виртуализации. Эти техники не обладают прямой совместимостью, но выполняют в основном схожие функции. Обе они предполагают наличие гипервизора, управляющего не модифицированными гостевыми системами, и имеют возможности для разработки платформ виртуализации без необходимости эмуляции аппаратуры. В процессорах обеих компаний, поддерживающих виртуализацию, введены дополнительные инструкции для их вызова гипервизором в целях управления виртуальными системами. В данный момент группа, занимающаяся исследованием возможностей аппаратных техник виртуализации, включает в себя компании AMD, Intel, Dell, Fujitsu Siemens, Hewlett-Packard, IBM, Sun Microsystems и VMware.

Виртуализация Intel

Компания Intel официально объявила о запуске технологии виртуализации в начале 2005 года на конференции Intel Developer Forum Spring 2005. Новая технология получила кодовое название Vanderpool и официальное Intel Virtualization Technology (сокращенно Intel VT). Технология Intel VT содержит в себе некоторое множество техник различного класса, имеющих номера версий VT-x, где x — литер, указывающий на подвид аппаратной техники. Была заявлена поддержка новой технологии в процессорах Pentium 4, Pentium D, Xeon, Core Duo и Core 2 Duo. Intel также опубликовала спецификации на Intel VT для Itanium-based процессоров, где технология виртуализации фигурировала под кодовым именем «Silvervale» и версией VT-i. Однако, начиная с 2005 года, новые модели процессоров Itanium не поддерживают x86 инструкции аппаратно, и x86-виртуализация может быть использована на архитектуре IA-64 только с помощью эмуляции.

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

Процессоры для настольных платформ:
  • Intel® 2 Core™ Duo Extreme processor X6800
  • Intel® 2 Core™ Duo processor E6700
  • Intel® 2 Core™ Duo processor E6600
  • Intel® 2 Core™ Duo processor E6400 (E6420)
  • Intel® 2 Core™ Duo processor E6300 (E6320)
  • Intel® Core™ Duo processor T2600
  • Intel® Core™ Duo processor T2500
  • Intel® Core™ Duo processor T2400
  • Intel® Core™ Duo processor L2300
  • Intel® Pentium® processor Extreme Edition 965
  • Intel® Pentium® processor Extreme Edition 955
  • Intel® Pentium® D processor 960
  • Intel® Pentium® D processor 950
  • Intel® Pentium® D processor 940
  • Intel® Pentium® D processor 930
  • Intel® Pentium® D processor 920
  • Intel® Pentium® 4 processor 672
  • Intel® Pentium® 4 processor 662
Процессоры для ноутбуков:
  • Intel® 2 Core™ Duo processor T7600
  • Intel® 2 Core™ Duo processor T7400
  • Intel® 2 Core™ Duo processor T7200
  • Intel® 2 Core™ Duo processor T5600
  • Intel® 2 Core™ Duo processor L7400
  • Intel® 2 Core™ Duo processor L7200
  • Intel® 2 Core™ Duo processor L7600
  • Intel® 2 Core™ Duo processor L7500
Процессоры для серверных платформ:
  • Intel® Xeon® processor 7041
  • Intel® Xeon® processor 7040
  • Intel® Xeon® processor 7030
  • Intel® Xeon® processor 7020
  • Intel® Xeon® processor 5080
  • Intel® Xeon® processor 5063
  • Intel® Xeon® processor 5060
  • Intel® Xeon® processor 5050
  • Intel® Xeon® processor 5030
  • Intel® Xeon® processor 5110
  • Intel® Xeon® processor 5120
  • Intel® Xeon® processor 5130
  • Intel® Xeon® processor 5140
  • Intel® Xeon® processor 5148
  • Intel® Xeon® processor 5150
  • Intel® Xeon® processor 5160
  • Intel® Xeon® processor E5310
  • Intel® Xeon® processor E5320
  • Intel® Xeon® processor E5335
  • Intel® Xeon® processor E5345
  • Intel® Xeon® processor X5355
  • Intel® Xeon® processor L5310
  • Intel® Xeon® processor L5320
  • Intel® Xeon® processor 7140M
  • Intel® Xeon® processor 7140N
  • Intel® Xeon® processor 7130M
  • Intel® Xeon® processor 7130N
  • Intel® Xeon® processor 7120M
  • Intel® Xeon® processor 7120N
  • Intel® Xeon® processor 7110M
  • Intel® Xeon® processor 7110N
  • Intel® Xeon® processor X3220
  • Intel® Xeon® processor X3210

Необходимо отметить, что следующие четыре процессора не поддерживают технологию Intel VT:

  • Intel® 2 Core™ Duo processor E4300
  • Intel® 2 Core™ Duo processor E4400
  • Intel® 2 Core™ Duo processor T5500
  • Intel® Pentium® D processor 9×5 (D945)

Компания Intel планирует также развивать технологию под названием Virtualization for Directed I/O к Intel VT, имеющую версию VT-d. На данный момент известно, что это существенные изменения в архитектуре ввода-вывода, которые позволят улучшить защищенность, робастность и производительность виртуальных платформ, использующих аппаратные техники виртуализации.

Виртуализация AMD

Компания AMD, так же, как и компания Intel, не так давно взялась за доработку архитектуры процессоров с целью поддержки виртуализации. В мае 2005 года компания AMD объявила о начале внедрения поддержки виртуализации в процессоры. Официальное название, которое получила новая технология — AMD Virtualization (сокращенно AMD-V), а ее внутреннее кодовое имя — AMD Pacifica. Технология AMD-V является логическим продолжением технологии Direct Connect для процессоров AMD64, направленной на повышение производительности компьютерных систем за счет тесной прямой интеграции процессора с другими компонентами аппаратного обеспечения.

В списке далее приведены процессоры, поддерживающие функции аппаратной виртуализации AMD-V. Поддержка этих функций должна работать во всех процессорах серии AMD-V для настольных компьютеров под Socket AM2, начиная со степпинга F. Необходимо также отметить, что процессоры Sempron не поддерживают аппаратную виртуализацию.

Процессоры для настольных платформ:
  • Athlon™ 64 3800+
  • Athlon™ 64 3500+
  • Athlon™ 64 3200+
  • Athlon™ 64 3000+
  • Athlon™ 64 FX FX-62
  • Athlon™ 64 FX FX-72
  • Athlon™ 64 FX FX-74
  • Athlon™ 64 X2 Dual-Core 6000+
  • Athlon™ 64 X2 Dual-Core 5600+
  • Athlon™ 64 X2 Dual-Core 5400+
  • Athlon™ 64 X2 Dual-Core 5200+
  • Athlon™ 64 X2 Dual-Core 5000+
  • Athlon™ 64 X2 Dual-Core 4800+
  • Athlon™ 64 X2 Dual-Core 4600+
  • Athlon™ 64 X2 Dual-Core 4400+
  • Athlon™ 64 X2 Dual-Core 4200+
  • Athlon™ 64 X2 Dual-Core 4000+
  • Athlon™ 64 X2 Dual-Core 3800+
Для ноутбуков поддерживаются процессоры с брендом Turion 64 X2:
  • Turion™ 64 X2 TL-60
  • Turion™ 64 X2 TL-56
  • Turion™ 64 X2 TL-52
  • Turion™ 64 X2 TL-50
Для серверных платформ поддерживаются следующие процессоры Opteron:
  • Opteron 1000 Series
  • Opteron 2000 Series
  • Opteron 8000 Series

Программное обеспечение, поддерживающее аппаратную виртуализацию

На данный момент, абсолютное большинство вендоров программных платформ виртуализации заявило о поддержке технологий аппаратной виртуализации Intel и AMD. Виртуальные машины на этих платформах могут быть запущены при поддержке аппаратной виртуализации. Кроме того, во многих операционных системах, в дистрибутив которых включены программные платформы паравиртуализации, такие как Xen или Virtual Iron, аппаратная виртуализация позволит запускать неизмененные гостевые операционные системы. Так как паравиртуализация является одним из видов виртуализации, требующих модификации гостевой операционной системы, реализация в платформах паравиртуализации поддержки аппаратной виртуализации является для этих платформ весьма приемлемым решением, с точки зрения возможности запуска не модифицированных версий гостевых систем. В приведенной далее таблице перечислены основные популярные платформы виртуализации и программное обеспечение, поддерживающие технологии аппаратной виртуализации:

Платформа виртуализации или ПОКакие технологии поддерживаетПримечание
Kernel-based Virtual Machine (KVM)Intel VT, AMD-VВиртуализация уровня экземпляров операционных систем под Linux.
Microsoft Virtual PCIntel VT, AMD-VНастольная платформа виртуализации для хостовых Windows-платформ.
Microsoft Virtual ServerIntel VT, AMD-VСерверная платформа виртуализации для Windows. Версия с поддержкой аппаратной виртуализации, Microsoft Virtual Server 2005 R2 SP1, находится в состоянии беты. Ожидается во втором квартале 2007 г.
Parallels WorkstationIntel VT, AMD-VПлатформа виртуализации для Windows и Linux хостов.
VirtualBoxIntel VT, AMD-VНастольная платформа виртуализации с открытым исходным кодом для Windows, Linux и Mac OS. По умолчанию поддержка аппаратной виртуализации выключена, поскольку по исследованиям экспертов, на данный момент аппаратная виртуализация медленнее программной
Virtual IronIntel VT, AMD-VVirtual Iron 3.5 является первой платформой виртуализации, использующей аппаратные техники, которая позволяет запускать 32-битные и 64-битные неизмененные гостевые системы практически без потери производительности.
VMware Workstation и VMware ServerIntel VT, AMD-VДля запуска 64-х битных гостевых систем требуется поддержка Intel VT (так же как и для VMware ESX Server), для 32-битных же гостевых ОС по умолчанию поддержка IntelVT отключена по тем же причинам, что и у VirtualBox.
XenIntel VT, AMD-VПлатформа виртуализации Xen с открытым исходным кодом позволяет запускать неизмененные гостевые системы, используя аппаратные техники виртуализации.

Аппаратная виртуализация сегодня

Компания VMware, входящая в исследовательскую группу аппаратных техник виртуализации, в конце 2006 года провела исследование в отношении собственной программной виртуализации в сравнении с аппаратными технологиями виртуализации компании Intel. В документе «A Comparison of Software and Hardware Techniques for x86 Virtualization» были зафиксированы результаты этого исследования (на процессоре 3.8 GHz Intel Pentium 4 672 с отключенной технологией Hyper-Threading). Один из экспериментов проводился с помощью систем тестов SPECint2000 и SPECjbb2005, являющихся стандартом де-факто для оценки производительности компьютерных систем. В качестве гостевой системы использовалась ОС Red Hat Enterprise Linux 3, управляемая программным и аппаратным гипервизором. Ожидалось, что аппаратная виртуализация даст коэффициент производительности около ста процентов в отношении нативного запуска операционной системы. Однако результаты оказались весьма неожиданными: в то время как программный гипервизор без использования аппаратных техник виртуализации давал 4 процента потерь производительности в отношении нативного запуска, аппаратный гипервизор, в целом, терял 5 процентов производительности. Результаты этого теста приведены на рисунке далее:

Сравнение производительности программного и аппаратного гипервизоров

Выводы

Поддержка технологий аппаратной виртуализации в процессорах открывает широкие перспективы по использованию виртуальных машин в качестве надежных, защищенных и гибких инструментов для повышения эффективности виртуальных инфраструктур. Наличие поддержки аппаратных техник виртуализации в процессорах не только серверных, но и настольных систем, говорит о серьезности намерений производителей процессоров в отношении всех сегментов рынка пользователей компьютерных систем. Использование аппаратной виртуализации в перспективе должно уменьшить потери производительности при запуске нескольких виртуальных машин на одном физическом сервере. Безусловно, аппаратная виртуализация повысит защищенность виртуальных систем в корпоративных средах. Сейчас простота разработки платформ виртуализации с использованием аппаратных техник привела к появлению новых игроков на рынке средств виртуализации. Вендоры систем паравиртуализации широко применяют аппаратную виртуализацию для запуска не модифицированных гостевых систем. Дополнительным преимуществом аппаратных техник виртуализации является возможность запуска 64-битных гостевых систем на 32-битных версиях платформ виртуализации (например, VMware ESX Server).

Не стоит воспринимать результаты производительности, как единственно верные. Объективная оценка производительности различных аппаратных и программных платформ для виртуализации является нетривиальной задачей, упомянутая рабочая группа в составе SPEC работает над созданием набора стандартных методов для оценки таких систем. На сегодня можно отметить, что средства виртуализации от AMD являются технически более совершенными, нежели реализованные Intel. Многое зависит и от используемого ПО, к примеру, в отличие от VMWare, есть значительно более «отзывчивые» к аппаратной поддержке среды, например, Xen 3.0.

Список литературы

1. Сергей Озеров, Александр Карабуто «Технологии виртуализации: вчера, сегодня, завтра»
2. Keith Adams, Ole Agesen A Comparison of Software and Hardware Techniques for x86 Virtualization
3. AMD Virtualization Solutions
4. Intel Virtualization Technology
5. Debunking Blue Pill myth

включение поддержки виртуализации VT-x на нетбуке Acer Aspire One / Habr

В данной статье мы расскажем вам пошагово о том, как допилить напильником свой нетбук или ноутбук, в котором по какому-то недоразумению выключен и залочен в таком состоянии бит 2 в MSR 0x3A — попросту говоря, у вас есть в процессоре поддержка виртуализации, но она заблокирована биосом.

ПРЕДУПРЕЖДЕНИЕ: всё, описанное в этой статье, рассчитано на то, что вы знаете, что делаете. Всё на свой страх и риск! Если не уверены — не пытайтесь повторить это дома.

Итак, в чем же проблема?

Проблема, которую мы будем решать, для конечного пользователя компьютера выглядит так: При использовании гипервизора второго типа (например, VirtualBox)
  • вы не можете запускать виртуалки с более, чем одним процессором
  • вы не можете запускать 64-битные гостевые операционные системы внутри 32-битной хост ОС.

Вот такое сообщение вы можете видеть при попытке запуска виртуалки с числом процессоров, большим чем 1:

Аналогичное сообщение об ошибке вы также получаете, если собираетесь запускать 64-битную виртуальную машину (например, Debian amd64) с 32-разнядной хост ОС, например WinXP.

Можно ли вылечить это?

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

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

Биос на нетбуке Acer Aspire производства Insyde, настройки его очень скудны и по F2 естественно мы не можем зайти в программу редактирования настроек БИОСа и включить виртуализацию там. Это было бы слишком просто.

Поэтому, мы будем дизассемблировать БИОС и менять его код, чтобы у нас бит был выставлен в 1. Если готовы, то читаем далее.

Что нужно знать до начала работы

Итак, некоторая техническая информация — чтобы понимать, что мы делаем и зачем.

Современные процессоры, по крайней мере многие из них, имеют поддержку виртуализации. За нее отвечает бит №5 в слове ECX при вызове команды CPUID с параметром EAX=01H. Именно этот способ проверки — единственно верный, поскольку, как показывает практика, сайт Intel врет, например, для моего процессора Intel Atom N570. По этой ссылке написано:

Intel® Virtualization Technology (VT-x) 	No

Однако мы-то знаем, что это неправда. Для тех, кто на «ты» с программированием на ассемблере, не составит труда выяснить это, написав нечто вроде
MOV EAX, 1
CPUID
и проверив потом 5-й бит регистра ECX.
Мне же было лень этим заниматься, поэтому я скачал опенсорсовую программу CPUID Explorer, запустил ее и посмотрел результат. К слову, CPU-Z тут непригодна — она дает результат слишком «юзер френдли» — нам же нужно было узнать точное значение бита. Вот как это выглядело в моем случае:

В кружочек обведен интересующий нас бит VMX. Он выставлен в 1, он есть, несмотря на то, что говорит нам сайт Intel.
Документация по командам процессора на стр. 215 говорит нам про команду CPUID, что
Bit #5 VMX Virtual Machine Extensions. A value of 1 indicates that the processor supports this technology

Но это еще не все. Чтобы гипервизоры второго типа смогли пользоваться командами поддержки виртуализации (VMX), необходимо явным образом разрешить эти инструкции в MSR (специальном регистре процессора) номер 0x3A. Вот что говорит нам документация по этому регистру на стр. 237:
регистр 3Ah: IA32_FEATURE_CONTROL
Бит 0: lock bit — если он выставлен, то дальнейшие модификации этого регистра не допускаются, до следующей перезагрузки.
Бит 1: VMX в SMX — safer mode extensions. Работа функций виртуализации в SMX допускается только тогда, когда процессор поддерживает SMX — это указывается в соседнем слева, 6-м бите в ECX при вызове команды CPUID.01H — на картинке выше этот бит равен нулю, наш процессор Atm N570 не поддерживает SMX — поэтому и в MSR 0x3A бит №1 должен быть нулевым.
Бит 2: VMX не в SMX — это, собственно, и есть бит, отвечающий за поддержку виртуализации. Он соответствует обведенному в кружочек биту в CPUID и именно он должен быть выставлен в 1.

Как проверить содержимое MSR 0x3A

Чтобы убедиться, что мы все про наш компьютер поняли верно, нужно посмотреть, что на самом деле у нас хранится в MSR 0x3A. Для этого я использовал пакет msr-tools в Debian (реальном, не виртуальном. В виртуальном результат неверный). Вот так вы сможете проверить значение этого бита:
— ребутаемся в Debian, потом:
# apt-get install msr-tools
# modprobe msr
# rdmsr 0x3A
9

Девять!!! Девять это 00001001. Как видим, наш BIOS использует недокументированный бит №3 в специальном слове регистра 0x3A — по документации, этот бит Reserved. Но это не суть. Суть в том, что у нас включен lock bit и выключен наш VMX бит №2 — так что все верно, программа SecurAble не врет и у нас действительно поддержка виртуализации отключена на уровне BIOS, хотя и поддерживается процессором.

Будем это править.

Почему эту проблему нужно решать

Дело в том, что при отключенной поддержке виртуализации (VMX) в процессорном слове 0x3A ваши виртуальные машины в VirtualBox работают в режиме паравиртуализации. Они, не имея возможности перевести гипервизор в VMX Root и виртуальную машину в VMX Non-root operation, вынуждены делать трансляцию процессорных инструкций НА ЛЕТУ. Проблему представляют 17 инструкций процессора, которые не «VM-safe», т.е. они используют единственные на весь компьютер регистры или блоки данных (таблицы) в процессоре. Эти команды: SGDT, SIDT, SLDT, SMSW, PUSHF/POPF, LAR, LSL, VERR/VERW, CALL, JMP, INT n, INTO, RET, STR и даже банальная MOV! Все эти инструкции изменяются на лету, чтобы виртуальная машина выполнила их в безопасном для системы виде. Подробнее про эту проблему описано тут (англ.). Из-за этого страдает быстродействие виртуальной машины.
Что нам потребуется

Для этой задачи нам потребуются следующие вещи:
  • оригинальный BIOS для нашего нетбука с сайта производителя.
  • IDA
  • phoenixtool210.zip (гугл знает, где скачать)
  • HHD Hex Editor Neo или любой другой HEX Editor
  • FAR Manager 🙂
  • nasm — для дизассемблирования
  • Знание о том, как залить BIOS аварийным способом

Для начала, очень важно знать, что если что-то пойдет не так, то как восстановить компьютер. Для моего ноутбука с биосом Insydeh30 существует недокументированная процедура восстановления биоса:

  • отформатить USB HDD в FAT16 с партицией мегов на 100 (FAT32 не понимает)
  • залить туда один файл со сжатым биосом (ZE6.fd в моем случае)
  • выключить ноут, потом вынуть все USB устройства и аккумулятор
  • вынуть шнур питания
  • подключить USB HDD
  • нажать и удерживать Esc+Fn
  • воткнуть питание и через 5 сек нажать кнопку включения питания
  • отпустить кнопки клавиатуры

И вуаля, материнская плата сама (как — загадка) выкачает с USB HDD новый биос и прошьет его за 1 минуту, потом ноут ребутнется.

Я проверил этот способ, залив таким образом стандартный биос с сайта производителя (другой версии, чем стоял у меня до этого) — действительно, работает, версия биоса обновилась.
Таким же способом я решил в итоге заливать в систему и прохаченный биос.

Итак, начинаем:
Распаковываем биос из SFX-архива, скачанного с сайта производителя. Сам иос будет иметь имя файла что-то вроде ZE6.fd и иметь размер 2 мегабайта ровно.
Далее нам необходимо распаковать БИОС, поскольку он сжат. Для этого используется программа PhoenixTool.exe. В первое поле в ее окошке мы указываем этот сжатый биос, и программа сама его декомпиляет на, в моем случае, целых 609 исходных файлов, имеющих имена в формате GUID.ext. Часть из этих файлов — конфигурационные, а часть — двоичные, но все с расширением ROM. Некоторые двоичные файлы содержат программы со стандартным виндовским PE заголовком.

Наша задача — среди этих 609 файлов найти файл, содержащий нужную нам инструкцию

WRMSR

оказалось, что искать команду MOV EAX, 3AH перед командой WRMSR бессмысленно — в моем биосе WRMSR оформлена как отдельная функция и принимает параметры через стек. Поэтому я делал это так (мне показалось то проще, чам в IDA): установил на Linux пакет nasm, который включает в себя ndisasm. Потом дизассемблировал все файлы *.ROM командой
ndisasm -b 32 file.rom > file.asm

И потом простым поиском нашел команду wrmsr в них — таких файлов оказалось 29. Потом пришлось каждый из ни загружать в IDA и искать там нужный код, который лочит регистр 3AH.

Такой код нашелся только в одном файле с именем 62D171CB-78CD-4480-8678-C6A2A797A8DE.MOD, и выглядел этот код так (после некоторой моей работы по переименованию функций в более понятные, и добавлении пары комментов):

LOCK_VMX        proc near            

                push    esi
                push    3Ah
                call    ReadMSR
                pop     ecx
                mov     ecx, eax
                xor     esi, esi
                and     ecx, 1
                or      ecx, esi
                pop     esi
                jnz     short exitprc    ; if(ReadMSR() & 1) goto exitprc;
                push    edx
                or      eax, 1          ; Set lock bit (bit #0)
                push    eax
                push    3Ah
                call    WriteMSR
                add     esp, 0Ch

exitprc:                      
                retn
LOCK_VMX        endp

По определению, код, который лочит регистр, делает это один раз. Потому это самое удачное место для того, чтобы сделать наш хак: меняем цифру 1 на цифру 5 в инструкции:

or      eax, 1

Это приведет к тому, что одновременно с выставлением lock bit мы выставляем бит VMX (бит #2). Заметим тут, что мы не имеем права выставлять бит #1, поскольку набор инструкций SMX у нас в процессоре не поддерживается (это говорит CPUID.1H:ECX bit 6.

Менять будем не совсем в файле *.ROM, а в оплетке *.MOD, которая содержит этот файл. Для этого нужно в программе PhoenixTool.exe, которая у нас уже открыта и биос в нее уже загружен, нажать на кнопку Structure, и инайти ветку с нашим именем файла:

Нажимаем кнопку Extract, получаем файл *.MOD (который состоит из заголовка + тела файла *.ROM), и правим наш бит именно в этом файле MOD. Смотрим в IDA, какой двоичный код соответствует окрестности инструкции, которую мы меняем, и в HEX редакторе открываем файл, ищем это место в коде, и меняем всего 1 байт с 01 на 05. Сохраняем модифицированный файл *.MOD. Потом в PhoenixTool нажимаем Replace, выбираем модифицированный MOD, и нажимаем Exit. Всё. Программа сама пересобрала биос и упаковала его для нас, при этом назвала его тем же именем, что и было (старый файл сохранен с расширением OLD).

Всё. Теперь заливаем единственный файл с новым биосом на USB HDD (можно и на USB флешку), и выполняем описанную выше процедуру аварийного восстановления биоса. Она прошьет комп этом новым биосом и всё будет готово.

Вот как теперь выглядит вывод программы SecurAble:

Теперь VirtualBox запускает виртуалки с 4 ядрами (а не с одним, как было раньше). Теперь я из-под своей основной 32-разряной операционной системы могу запускать 64-битные операционки в виртуалках.
И, что самое главное, теперь виртуалки на самом деле виртуализованные (гипервизор использует инструкции VMX), а не паравиртуализованные.

P.S. В биосах других производителей (не Insyde) есть возможность править не сам BIOS, а только его настройки, извлекаемые программой SYMCMOS.EXE. Там процесс такой же, за исключением того, что в дизассемблированном биосе находится номер настройки, которая используется для запрещения или разрешения VMX, и потом эта настройка правится непосредственно в CMOS биоса. В моем же биосе таких настроек нет, или программа symcmos их не находит, поэтому такой путь допиливания напильником не подходит в моем случае. Путь непосредственного хака биоса выглядит надежнее: мы таким образом просто игнорируем какие бы то ни было настройки биоса, просто выставляем бит VMX и лочим регистр 0x3A после этого.

Счастье есть 🙂 Спасибо, что дочитали до конца.

Intel Virtualization Technology включать или нет?

Всем привет У себя в биосе материнки вы можете найти такое как Intel Virtualization Technology и тут у вас сразу возникнут вопросы, включать это или нет? За что это вообще отвечает, что за дичь, а если включить, то может комп заработает лучше? Да, мыслей может быть много, когда я колупал комп, изучал все, то тоже было много мыслей, типа, а что будет если…

Короче скажу сразу, я знаю что такое Intel Virtualization Technology, но вот также скажу, что в большинстве случаев вам ее включать не нужно. Ни вам, ни вашим знакомым, ну что-то мне подсказывает, что данная технология вам тупо не нужна. А почему это подумаете вы? Окей, скажу. Значит Intel Virtualization Technology это технология виртуализации, чтобы некоторое ПО могло так бы сказать напрямую работать с процессором.

Вы тут наверно спросите, какое еще ПО? Здесь я имею ввиду программы виртуализации компьютера, по простому это виртуальные машины, пока что самые популярные это платная VMware Workstation (кстати есть бесплатный вариант это VMware Player) и абсолютно бесплатная VirtualBox. Говорят что первая это именно виртуальная машина, а вторая это эмулятор. Но не особо понимаю разницу

А вот как выглядит эта опция в самом биосе, смотрите:

Так вот, а простым юзерам технология Intel Virtualization Technology даром не нужна, она ничего не делает, никакой мощи не прибавляет. Вам наверно может стать интересно, что же такое виртуальная машина, что это вообще такое? Это программа, которая имитирует компьютер, но он виртуальный. Вот в него можно установить виндовс, добавить жесткий диск или удалить, задать количество ядер процессора, указать обьем оперативной памяти. Понимаете? Но вот чтобы такой виртуальный комп работал шустро, то нужно некий виртуальный доступ к процессору, вот для обеспечения этого доступа технология Intel Virtualization Technology и нужна

Как вы уже поняли, данная технология встречается у процов Intel, но у AMD также есть своя, называется она AMD-V и это примерно тоже самое что и у Intel. Виртуальные машины без этой технологии будут работать жутко медленно. Вообще Intel Virtualization Technology подразделяется на две части, это VT-x и VT-d, то есть если вы увидите такие обозначения, то теперь знаете что это. О том что такое VT-x и VT-d я уже писал вот здесь, так что велкам читать:

http://virtmachine.ru/vt-d-i-vt-x-chto-eto-takoe-v-biose-i-zachem-nuzhno.html

Ну вот и поговорили. Удачи вам и всех благ

На главную! 01.10.2018

Virtualization Technology, Vanderpool Technology, VT Technology

Другие идентичные названия опции: Vanderpool Technology, VT Technology.

Параметр - Virtualization Technology

Опция Virtualization Technology (технология виртуализации) предназначена для включения режима поддержки процессором технологии аппаратной виртуализации. Данная опция может принимать всего два значения – Enabled (Включено) и Disabled (Выключено).

Содержание статьи

Принцип работы

Что же вообще означает термин «виртуализация»? Технология виртуализации позволяет пользователю иметь множество виртуальных компьютеров на одном-единственном физическом компьютере. Естественно, что такой подход зачастую имеет немало преимуществ по сравнению с наличием нескольких физических компьютеров, прежде всего в плане сокращения расходов на оборудование и уменьшения энергопотребления.

Для создания виртуальных компьютеров требуется специальное программное обеспечение. Наиболее известно такое ПО для виртуализации, как VMWare и Microsoft Virtual PC.

Сердцем любой системы виртуализации является технология, носящая название диспетчера виртуальных машин (Virtual Machine Monitor, VMM). Эта технология создает прочную основу для управления виртуализацией. В функции диспетчера виртуальных машин (который также иногда называют гипервизором) входит управление в реальном времени ресурсами компьютера и распределение их между виртуальными системами. Гипервизор может осуществлять перенос данных между системами и создавать виртуальные диски.

Диспетчер виртуальных машин позволяет запускать на одном компьютере либо несколько операционных систем (такие виртуальные операционные системы обычно называются гостевыми), либо несколько копий одной операционной системы. Также в его задачи входит управление ресурсами памяти, процессора и устройств ввода-вывода в целях распределения их между различными виртуальными компьютерами. Таким образом, гипервизор может позволить нескольким операционным системам использовать один и тот же процессор, что повысит эффективность его работы.

Однако долгое время технология виртуализации была основана лишь на программных методах, а на аппаратном уровне ее поддержка почти отсутствовала, в частности, из-за отсутствия четких стандартов. Хотя одной из первых реализаций аппаратной виртуализации стала поддержка виртуального режима работы процессора Intel 8086, встроенная еще в процессор 80386 и в последующие процессоры фирмы Intel(подробнее с процессорами можно познакомиться тут ), тем не менее, возможности данной технологии были ограничены. Сегодня ведущие производители процессоров, Intel и AMD предлагают собственные технологии виртуализации, рассчитанные уже на защищенный режим работы процессора.

Вариант технологии виртуализации от Intel носит название VT-x. Он появился в 2005 г. Эта технология внедрила в серверные и клиентские платформы ряд улучшений, обеспечивающих поддержку программных средств виртуализации. Технология VT-x позволяет различным операционным системам и приложениям работать в независимых разделах и  способна превратить компьютер в набор виртуальных операционных систем.

Технология виртуализации AMD носит название AMD-V. Впервые она появилась в процессорах Athlon 64 в 2006 г. Эта технология позволяет взять на себя некоторые задачи, выполняемые гипервизором программным способом и упростить их благодаря встроенному в процессоры AMD улучшенному набору инструкций.

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

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

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

Но тут есть одна загвоздка – некоторые инструкции процессора могут выполняться лишь на уровне 0. Эту проблему можно решить несколькими способами, но ни один из них не является удовлетворительным. Например, операционная система может быть перекомпилирована, чтобы избежать подобных ситуаций, но это можно осуществить лишь в том случае, если доступны исходные коды данной операционной системы. Такой подход  иногда применяется и носит название паравиртуализации.

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

Поэтому технологии аппаратной виртуализации от Intel  и AMD содержат не только новые процессорные инструкции, но и, что имеет решающее значение, позволяют использовать новый уровень привилегий. Теперь гипервизор может работать на уровне более низком, чем нулевой (его можно обозначить, как –1), в то время, как гостевой операционной системе предоставляется в полное распоряжение нулевой уровень. Таким образом, гипервизор был избавлен от ненужной кропотливой работы, а производительность виртуальных машин значительно увеличилась.

Технологии Intel и AMD не во всем идентичны, однако они предлагают схожие преимущества и функциональность. Помимо увеличения производительности виртуальных машин, они позволяют увеличить количество виртуальных машин на одной физической системе, а также увеличить количество пользователей виртуальных машин.

Стоит ли включать?

Опция Virtualization Technology (иногда называемая просто Virtualization) позволяет пользователю компьютера включить поддержку аппаратной виртуализации на уровне центрального процессора. Выбор значения Enabled включает эту поддержку, а значения Disabled – выключает.

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

Порекомендуйте Друзьям статью:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *