Апаратна віртуалізація x86

Матеріал з Вікіпедії — вільної енциклопедії.
(Перенаправлено з VMX)
Перейти до навігації Перейти до пошуку

Апара́тна віртуаліза́ція архітектури x86 — технологія, що дозволяє запуск віртуальних машин на процесорах архітектури x86. На відміну від програмної віртуалізації, за допомогою даної техніки можливе використання ізольованих гостьових систем, керованих гіпервізором безпосередньо. Гостьова система не залежить від архітектури хостової платформи та реалізації платформи віртуалізації. Наприклад, за допомогою технологій апаратної віртуалізації можливий запуск 64-бітних гостьових систем на 32-бітних хостових системах.

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

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

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), і додає підтримку віртуалізації нових пристроїв введення-виведення.

AMD розробила свої розширення віртуалізації першого покоління під кодовою назвою «Pacifica», і спочатку опублікувала їх як AMD Secure Virtual Machine (SVM), але пізніше випустила їх на ринок під торговою маркою «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 другого покоління і третього покоління, а також Phenom і Phenom II процесорами. Процесори AMD Fusion також підтримують AMD-V. AMD-V не дозволені в процесорах на Socket 939. Тільки два з Sempron процесорів, які її підтримують є Huron and Sargas.

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

CPU прапором для AMD-V є «svm». Його можна визначити під FreeBSD через dmesg або sysctl, а в Linux — через файл /proc/cpuinfo.

Мережні контролери

[ред. | ред. код]

Для віртуалізації функцій мережних контролерів на шині PCI Express існує специфікація Single-root IOV.

Див. також

[ред. | ред. код]

Джерела

[ред. | ред. код]