виртуализация x86
Виртуализация x86 — это использование возможностей аппаратной виртуализации на процессоре x86/x86-64.
В конце 1990-х годов виртуализация x86 была достигнута с помощью сложных программных методов, необходимых для компенсации отсутствия у процессора возможностей аппаратной виртуализации при достижении приемлемой производительности. В 2005 и 2006 годах и Intel ( VT-x ), и AMD ( AMD-V ) представили ограниченную поддержку аппаратной виртуализации, которая позволила упростить программное обеспечение для виртуализации, но предлагала очень мало преимуществ в скорости. [1] В более поздних моделях процессоров появилась более широкая аппаратная поддержка, которая позволила существенно повысить скорость.
Программная виртуализация
[ редактировать ]Следующее обсуждение посвящено только виртуализации защищенного режима архитектуры x86 .
В защищенном режиме ядро операционной системы работает с более высокими привилегиями, например, кольцо 0, а приложения — с более низкими привилегиями, например, кольцо 3. [ нужна ссылка ] При программной виртуализации хостовая ОС имеет прямой доступ к оборудованию, тогда как гостевые ОС имеют ограниченный доступ к оборудованию, как и любое другое приложение хостовой ОС. Один из подходов, используемый в программной виртуализации x86 для преодоления этого ограничения, называется лишением привилегий кольца , который предполагает запуск гостевой ОС на кольце выше (менее привилегированном), чем 0. [2]
Три метода сделали возможной виртуализацию защищенного режима:
- Двоичная трансляция используется для перезаписи определенных инструкций кольца 0 в терминах инструкций кольца 3, таких как POPF , которые в противном случае могли бы выйти из строя автоматически или вести себя по-другому при выполнении выше кольца 0. [3] [4] : 3 что делает невозможным классическую виртуализацию типа «ловушка и эмуляция» . [4] : 1 [5] Чтобы повысить производительность, преобразованные базовые блоки необходимо кэшировать согласованным образом, позволяющим обнаруживать исправления кода (используемые, например, в VxD ), повторное использование страниц гостевой ОС или даже самомодифицирующийся код . [6]
- Ряд ключевых структур данных, используемых процессором, необходимо дублировать . Поскольку большинство операционных систем используют страничную виртуальную память , а предоставление гостевой ОС прямого доступа к MMU будет означать потерю контроля со стороны менеджера виртуализации , часть работы x86 MMU необходимо дублировать в программном обеспечении для гостевой ОС, используя метод известные как теневые таблицы страниц . [7] : 5 [4] : 2 Это предполагает отказ гостевой ОС в любом доступе к фактическим записям таблицы страниц путем перехвата попыток доступа и их эмуляции в программном обеспечении. Архитектура x86 использует скрытое состояние для хранения дескрипторов сегментов в процессоре, поэтому после загрузки дескрипторов сегментов в процессор память, из которой они были загружены, может быть перезаписана, и нет возможности получить дескрипторы обратно из процессора. . Поэтому таблицы теневых дескрипторов должны использоваться для отслеживания изменений, вносимых в таблицы дескрипторов гостевой ОС. [5]
- Эмуляция устройств ввода-вывода. Неподдерживаемые устройства в гостевой ОС должны эмулироваться с помощью эмулятора устройства , работающего в хост-ОС. [8]
Эти методы влекут за собой некоторые потери производительности из-за отсутствия поддержки виртуализации MMU по сравнению с виртуальной машиной, работающей на изначально виртуализуемой архитектуре, такой как IBM System/370 . [4] : 10 [9] : 17 и 21
На традиционных мэйнфреймах классический гипервизор типа 1 был автономным и не зависел от какой-либо операционной системы и сам не запускал какие-либо пользовательские приложения. Напротив, первые продукты виртуализации x86 были нацелены на компьютеры рабочих станций и запускали гостевую ОС внутри ОС хоста путем встраивания гипервизора в модуль ядра, который работал под ОС хоста (гипервизор типа 2). [8]
Были некоторые разногласия по поводу того, можно ли виртуализировать архитектуру x86 без аппаратной поддержки, как описано Попеком и Голдбергом . Исследователи VMware отметили в статье ASPLOS 2006 года , что вышеупомянутые методы сделали платформу x86 виртуализируемой в смысле соответствия трем критериям Попека и Голдберга, хотя и не с помощью классической техники перехвата и эмуляции. [4] : 2–3
, пошли по другому пути Другие системы, такие как Denali , L4 и Xen , известному как паравиртуализация , которая предполагает портирование операционных систем для запуска на полученной виртуальной машине, которая не реализует те части фактического набора команд x86, которые трудно виртуализировать. . Паравиртуализированный ввод-вывод имеет значительные преимущества в производительности, как показано в оригинальной статье SOSP '03 Xen. [10]
Первоначальная версия x86-64 ( AMD64 ) не позволяла реализовать только программную полную виртуализацию из-за отсутствия поддержки сегментации в длинном режиме , что делало невозможной защиту памяти гипервизора, в частности защиту обработчика ловушек. который работает в адресном пространстве гостевого ядра. [11] [12] : 11 и 20 В 64-битных процессорах AMD версии D и более поздних версиях (как правило, изготовленных по 90-нм техпроцессу или меньше) добавлена базовая поддержка сегментации в длинном режиме, что позволяет запускать 64-битные гостевые системы на 64-битных хостах посредством двоичной трансляции. . Intel не добавила поддержку сегментации в свою реализацию x86-64 ( Intel 64 ), что сделало невозможной 64-битную программную виртуализацию на процессорах Intel, но поддержка Intel VT-x делает возможной 64-битную аппаратную виртуализацию на платформе Intel. [13] [14] : 4
На некоторых платформах можно запустить 64-битную гостевую систему на 32-битной ОС хоста, если базовый процессор является 64-битным и поддерживает необходимые расширения виртуализации.
Аппаратная виртуализация
[ редактировать ]В 2005 и 2006 годах Intel и AMD (работая независимо) создали новые расширения процессоров для архитектуры x86. Первое поколение аппаратной виртуализации x86 решило проблему привилегированных инструкций. Проблема низкой производительности виртуализированной системной памяти была решена с помощью виртуализации MMU , которая была добавлена в набор микросхем позже.
Центральный процессор
[ редактировать ]Виртуальный режим 8086
[ редактировать ]Поскольку Intel 80286 не мог самостоятельно запускать параллельные приложения DOS в защищенном режиме, Intel представила виртуальный режим 8086 в своем чипе 80386 , который предлагал виртуализированные процессоры 8086 на чипах 386 и более поздних версиях. Однако аппаратная поддержка виртуализации самого защищенного режима стала доступна 20 лет спустя. [15]
Виртуализация AMD (AMD-V)
[ редактировать ]AMD разработала расширения виртуализации первого поколения под кодовым названием «Pacifica» и первоначально опубликовала их как AMD Secure Virtual Machine (SVM). [16] но позже продавали их под торговой маркой AMD Virtualization , сокращенно AMD-V .
23 мая 2006 года AMD выпустила Athlon 64 ( «Орлеан» ), Athlon 64 X2 ( «Виндзор» ) и Athlon 64 FX ( «Виндзор» ) как первые процессоры AMD, поддерживающие эту технологию.
Возможности AMD-V также присутствуют в процессорах семейства Athlon 64 и Athlon 64 X2 с ревизией «F» или «G» для сокета AM2 , Turion 64 X2 и Opteron 2-го поколения. [17] и третьего поколения, [18] Phenom и Phenom II Процессоры . Процессоры APU Fusion поддерживают AMD-V. AMD-V не поддерживается процессорами Socket 939. Единственные процессоры Sempron , которые его поддерживают, — это APU и Huron , Regor , Sargas настольные процессоры .
Процессоры AMD Opteron, начиная с линейки семейства 0x10 Barcelona, и процессоры Phenom II поддерживают технологию аппаратной виртуализации второго поколения, называемую Rapid Virtualization Indexing (ранее известную во время разработки как вложенные таблицы страниц), позже принятую Intel как расширенные таблицы страниц (EPT). .
По состоянию на 2019 год все процессоры AMD на базе Zen поддерживают AMD-V.
Флаг ЦП для AMD-V — «svm». Это можно проверить в производных BSD через dmesg или sysctl и в Linux через /proc/cpuinfo
. [19] Инструкции в AMD-V включают VMRUN, VMLOAD, VMSAVE, CLGI, VMMCALL, INVLPGA, SKINIT и STGI.
На некоторых материнских платах пользователи должны включить функцию AMD SVM в настройках BIOS , прежде чем приложения смогут ее использовать. [20]
Виртуализация Intel (VT-x)
[ редактировать ]VT-x, ранее носивший кодовое название «Vanderpool», представляет собой технологию виртуализации Intel на платформе x86. 13 ноября 2005 года Intel выпустила две модели Pentium 4 (модель 662 и 672) как первые процессоры Intel с поддержкой VT-x. Флаг ЦП для возможности VT-x — «vmx»; в Linux это можно проверить через /proc/cpuinfo
или в macOS через sysctl machdep.cpu.features
. [19]
«VMX» означает «Расширения виртуальных машин», которые добавляют 13 новых инструкций: VMPTRLD, VMPTRST, VMCLEAR, VMREAD, VMWRITE, VMCALL, VMLAUNCH, VMRESUME, VMXOFF, VMXON, INVEPT, INVVPID и VMFUNC. [21] Эти инструкции позволяют входить и выходить из режима виртуального выполнения, в котором гостевая ОС воспринимает себя как работающую с полными привилегиями (кольцо 0), но ОС хоста остается защищенной.
По состоянию на 2015 год [update] некоторых процессоров Intel Atom . Почти все новые серверные, настольные и мобильные процессоры Intel поддерживают VT-x, за исключением [22] На некоторых материнских платах пользователи должны включить функцию Intel VT-x в настройках BIOS , прежде чем приложения смогут ее использовать. [23]
Intel начала включать расширенные таблицы страниц (EPT), [24] технология виртуализации таблиц страниц, [25] начиная с архитектуры Нехалема , [26] [27] выпущен в 2008 году. В 2010 году Westmere добавила поддержку запуска логического процессора непосредственно в реальном режиме - функцию под названием «неограниченный гость», для работы которой требуется EPT. [28] [29]
Начиная с микроархитектуры Haswell (анонсированной в 2013 году), Intel начала включать теневое копирование VMCS в качестве технологии, ускоряющей вложенную виртуализацию VMM. [30] Структура управления виртуальной машиной (VMCS) — это структура данных в памяти, которая существует ровно один раз для каждой виртуальной машины и управляется VMM. При каждом изменении контекста выполнения между различными виртуальными машинами VMCS восстанавливается для текущей виртуальной машины, определяя состояние виртуального процессора виртуальной машины. [31] Как только используется более одного VMM или вложенных VMM, возникает проблема, аналогичная той, которую потребовало изобрести управление теневой таблицей страниц, как описано выше . В таких случаях VMCS необходимо многократно дублировать (в случае вложенности) и частично реализовывать программно в случае отсутствия аппаратной поддержки процессором. Чтобы сделать обработку теневых VMCS более эффективной, Intel реализовала аппаратную поддержку теневого копирования VMCS. [32]
Виртуализация VIA (VIA VT)
[ редактировать ]Процессоры VIA Nano серии 3000 и выше поддерживают технологию виртуализации VIA VT, совместимую с Intel VT-x. [33] EPT присутствует в Zhaoxin ZX-C, потомке VIA QuadCore-E и Eden X4, аналогичном Nano C4350AL . [34]
Виртуализация прерываний (AMD AVIC и Intel APICv)
[ редактировать ]В 2012 году AMD анонсировала свой усовершенствованный контроллер виртуальных прерываний ( AVIC ), нацеленный на снижение накладных расходов на прерывания в средах виртуализации. [35] Эта технология, как заявлено, не поддерживает x2APIC . [36] В 2016 году AVIC доступен на моделях семейства AMD 15h и 6Xh. (Carrizo) процессоры и новее. [37]
Также в 2012 году Intel анонсировала аналогичную технологию виртуализации прерываний и APIC , которая на момент анонса не имела торговой марки. [38] Позже это было названо виртуализацией APIC ( APICv ). [39] и он стал коммерчески доступен в серии процессоров Intel Ivy Bridge EP , которая продается как Xeon E5-26xx v2 (выпущен в конце 2013 г.) и как Xeon E5-46xx v2 (выпущен в начале 2014 г.). [40]
Графический процессор
[ редактировать ]Виртуализация графики не является частью архитектуры x86. Intel Технология Graphics Virtualization (GVT) обеспечивает виртуализацию графики как часть графических архитектур новейшего поколения. Хотя APU AMD реализуют набор инструкций x86-64 , они реализуют собственные графические архитектуры AMD ( TeraScale , GCN и RDNA ), которые не поддерживают виртуализацию графики. [ нужна ссылка ] Larrabee была единственной графической микроархитектурой, основанной на x86, но она, вероятно, не включала поддержку виртуализации графики.
Чипсет
[ редактировать ]Виртуализация памяти и ввода-вывода выполняется чипсетом . [41] Обычно эти функции должны быть включены в BIOS, который должен поддерживать их, а также быть настроен на их использование.
Виртуализация MMU ввода-вывода (AMD-Vi и Intel VT-d)
[ редактировать ]Блок управления памятью ввода-вывода (IOMMU) позволяет гостевым виртуальным машинам напрямую использовать периферийные устройства, такие как Ethernet, ускоренные видеокарты и контроллеры жестких дисков, через DMA и перераспределение прерываний . Иногда это называют сквозным соединением PCI . [42]
IOMMU также позволяет операционным системам устранять буферы отказов, необходимые для взаимодействия с периферийными устройствами, адресное пространство которых меньше адресного пространства памяти операционной системы, путем использования трансляции адресов памяти. В то же время IOMMU также позволяет операционным системам и гипервизорам предотвращать угрозу безопасности памяти с помощью ошибочного или вредоносного оборудования .
И AMD, и Intel опубликовали свои спецификации IOMMU:
- Технология виртуализации ввода-вывода AMD, «AMD-Vi», первоначально называвшаяся «IOMMU». [43]
- Intel «Технология виртуализации для направленного ввода-вывода» (VT-d), [44] включен в большинство высокопроизводительных (но не во все) новых процессоров Intel, начиная с архитектуры Core 2. [45]
В дополнение к поддержке ЦП, чтобы его можно было использовать, материнской платы набор микросхем и встроенное ПО системы ( BIOS или UEFI ) должны полностью поддерживать функцию виртуализации ввода-вывода IOMMU. Таким образом можно виртуализировать только устройства PCI или PCI Express , поддерживающие сброс функционального уровня (FLR), поскольку это необходимо для переназначения различных функций устройства между виртуальными машинами. [46] [47] Если назначаемое устройство не поддерживает прерывания, сигнализируемые сообщениями (MSI), оно не должно использовать общие линии прерываний с другими устройствами, чтобы назначение было возможным. [48] Все обычные устройства PCI , маршрутизируемые через мост PCI/ PCI-X -PCI Express, могут быть назначены гостевой виртуальной машине только все сразу; Устройства PCI Express не имеют такого ограничения.
Виртуализация сети (VT-c)
[ редактировать ]- «Технология виртуализации для подключения» Intel (VT-c). [49]
Виртуализация ввода-вывода с единым корнем PCI-SIG (SR-IOV)
[ редактировать ]Виртуализация ввода-вывода с одним корнем PCI-SIG (SR-IOV) предоставляет набор общих (не специфичных для x86) методов виртуализации ввода-вывода на основе собственного оборудования PCI Express (PCIe), стандартизированного PCI-SIG: [50]
- Службы трансляции адресов (ATS) поддерживают встроенный IOV через PCI Express посредством трансляции адресов. Для настройки таких переводов требуется поддержка новых транзакций.
- IOV с одним корнем (SR-IOV или SRIOV) поддерживает встроенный IOV в существующих сложных топологиях PCI Express с одним корнем. Требуется поддержка новых возможностей устройства для настройки нескольких виртуализированных пространств конфигурации. [51]
- Многокорневой IOV (MR-IOV) поддерживает собственный IOV в новых топологиях (например, блейд-серверах), опираясь на SR-IOV для обеспечения нескольких корневых комплексов, которые имеют общую иерархию PCI Express.
В SR-IOV, наиболее распространенном из них, хост VMM настраивает поддерживаемые устройства для создания и распределения виртуальных «теней» их конфигурационных пространств, чтобы гости виртуальных машин могли напрямую настраивать такие «теневые» ресурсы устройств и получать к ним доступ. [52] При включенном SR-IOV виртуализированные сетевые интерфейсы напрямую доступны гостям. [53] избежание вовлечения VMM и приводит к повышению общей производительности; [51] например, SR-IOV обеспечивает более 95% пропускной способности «голой» сети в . виртуализированном центре обработки данных НАСА [54] и в публичном облаке Amazon . [55] [56]
См. также
[ редактировать ]- Сравнение программного обеспечения для виртуализации приложений
- Сравнение программного обеспечения для виртуализации платформ
- Аппаратная виртуализация
- Гипервизор
- Виртуализация ввода-вывода
- Виртуализация сети
- Виртуализация на уровне ОС
- Хронология развития виртуализации
- Виртуальная машина
- Список оборудования с поддержкой IOMMU
- Трансляция адресов второго уровня (SLAT)
- Прерывания, сигнализируемые сообщениями (MSI)
Ссылки
[ редактировать ]- ^ Сравнение программных и аппаратных методов для виртуализации x86 , Кейт Адамс и Оле Агесен, VMware, ASPLOS'06, 21–25 октября 2006 г., Сан-Хосе, Калифорния, США. Архивировано 20 августа 2010 г. на Wayback Machine. «Удивительно, но мы обнаружили, что аппаратная поддержка первого поколения редко обеспечивает преимущества в производительности по сравнению с существующими программными методами. Мы связываем эту ситуацию с высокими затратами на переход между VMM и гостевой системой и жесткой моделью программирования, которая оставляет мало места для гибкости программного обеспечения в управлении частотой и стоимостью этих переходов. .
- ^ «Расширения виртуализации процессоров технологии Intel Virtualization и технология Intel Trusted Execution» (PDF) . Intel.com. 2007. Архивировано (PDF) из оригинала 21 мая 2015 г. Проверено 12 декабря 2016 г.
- ^ «Техническая программа USENIX – Аннотация – Симпозиум по безопасности – 2000» . Usenix.org. 29 января 2002 г. Архивировано из оригинала 10 июня 2010 г. Проверено 2 мая 2010 г.
- ^ Jump up to: а б с д и «Сравнение программных и аппаратных методов виртуализации x86» (PDF) . VMware. Архивировано (PDF) из оригинала 20 августа 2010 года . Проверено 8 сентября 2010 г.
- ^ Jump up to: а б Патент США 6 397 242
- ^ Патент США 6704925.
- ^ «Виртуализация: архитектурные соображения и другие критерии оценки» (PDF) . VMware. Архивировано (PDF) из оригинала 6 февраля 2011 года . Проверено 8 сентября 2010 г.
- ^ Jump up to: а б Патент США 6 496 847
- ^ «Технологии VMware и Hardware Assist» (PDF) . Архивировано (PDF) из оригинала 17 июля 2011 г. Проверено 8 сентября 2010 г.
- ^ «Xen и искусство виртуализации» (PDF) . Архивировано (PDF) из оригинала 29 сентября 2014 г.
- ^ «Как отказ от сегментации в длинном режиме AMD64 сломал VMware» . Pagetable.com. 09.11.2006. Архивировано из оригинала 18 июля 2011 г. Проверено 2 мая 2010 г.
- ^ «Технология виртуализации VMware и ЦП» (PDF) . VMware. Архивировано (PDF) из оригинала 17 июля 2011 г. Проверено 8 сентября 2010 г.
- ^ «База знаний VMware: Требования к оборудованию и встроенному ПО для 64-битных гостевых операционных систем» . Kb.vmware.com. Архивировано из оригинала 19 апреля 2010 г. Проверено 2 мая 2010 г.
- ^ «Программное и аппаратное обеспечение для виртуализации x86» (PDF) . Архивировано из оригинала (PDF) 5 января 2010 г. Проверено 2 мая 2010 г.
- ^ Ягер, Том (5 ноября 2004 г.). «Отправка программного обеспечения для выполнения работы оборудования | Аппаратное обеспечение — InfoWorld» . Изображения.infoworld.com. Архивировано из оригинала 18 октября 2014 г. Проверено 8 января 2014 г.
- ^ «33047_SecureVirtualMachineManual_3-0.book» (PDF) . Архивировано (PDF) из оригинала 5 марта 2012 г. Проверено 2 мая 2010 г.
- ^ «Каковы основные различия между процессорами AMD Opteron второго поколения и процессорами AMD Opteron первого поколения?» . amd.com . Архивировано из оригинала 15 апреля 2009 года . Проверено 4 февраля 2012 г.
- ^ «Какие улучшения виртуализации реализованы в четырехъядерных процессорах AMD Opteron?» . amd.com . Архивировано из оригинала 16 апреля 2009 года . Проверено 4 февраля 2012 г.
- ^ Jump up to: а б Чтобы узнать, поддерживает ли ваш процессор аппаратную виртуализацию. Архивировано 25 ноября 2012 г. на Wayback Machine Intel, 2012.
- ^ «Как включить Intel VTx и AMD SVM?» . Поддерживать . QNAP Systems, Inc. Архивировано из оригинала 7 марта 2018 г. Проверено 23 декабря 2020 г.
- ^ ИНТЕЛ (октябрь 2019 г.). «Руководство разработчика программного обеспечения для архитектур Intel® 64 и IA-32» . intel.com . Корпорация Интел . Проверено 4 января 2020 г.
- ^ «Список технологий виртуализации Intel» . Ark.intel.com. Архивировано из оригинала 27 октября 2010 г. Проверено 2 мая 2010 г.
- ^ «Windows Virtual PC: настройка BIOS» . Майкрософт. Архивировано из оригинала 6 сентября 2010 г. Проверено 8 сентября 2010 г.
- ^ Нейгер, Гил; А. Сантони; Ф. Люнг; Д. Роджерс; Р. Улиг (2006). «Технология Intel Virtualization: аппаратная поддержка для эффективной виртуализации процессоров» (PDF) . Журнал технологий Intel . 10 (3). Интел: 167–178. дои : 10.1535/itj.1003.01 . Архивировано из оригинала (PDF) 25 сентября 2012 г. Проверено 6 июля 2008 г.
- ^ Гиллеспи, Мэтт (12 ноября 2007 г.). «Лучшие практики для усовершенствований паравиртуализации с помощью технологии виртуализации Intel: EPT и VT-d» . Сеть программного обеспечения Intel . Интел. Архивировано из оригинала 26 декабря 2008 г. Проверено 6 июля 2008 г.
- ^ «Сначала тик, теперь так: микроархитектура Intel следующего поколения (Nehalem)» (PDF) (пресс-релиз). Интел. Архивировано (PDF) из оригинала 26 января 2009 г. Проверено 6 июля 2008 г.
- ^ «Краткий обзор технологии: технология виртуализации микроархитектуры Intel Nehalem» (PDF) . Интел. 25 марта 2009 г. Архивировано (PDF) из оригинала 7 июня 2011 г. Проверено 3 ноября 2009 г.
- ^ [1] «Intel добавила неограниченный гостевой режим в микроархитектуру Westmere и более поздние процессоры Intel. Она использует EPT для преобразования доступа к физическому адресу гостя в физический адрес хоста. В этом режиме разрешен VMEnter без включения пейджинга».
- ^ [2] «Если «неограниченный гостевой» элемент управления выполнением виртуальной машины равен 1, то элемент управления выполнением виртуальной машины «включить EPT» также должен быть равен 1»
- ^ «Процессоры Intel Core vPro 4-го поколения с теневым копированием Intel VMCS» (PDF) . Интел . 2013 . Проверено 16 декабря 2014 г.
- ^ Понимание технологии виртуализации Intel (VT). Архивировано 8 сентября 2014 г. в Wayback Machine. Проверено 1 сентября 2014 г.
- ^ «Что, где и почему» слежки VMCS. Архивировано 3 сентября 2014 г. на Wayback Machine. Проверено 1 сентября 2014 г.
- ^ VIA представляет новые процессоры серии VIA Nano 3000. Архивировано 22 января 2013 г. на Wayback Machine.
- ^ «Решение для ноутбука: процессор Kaixian ZX-C + набор микросхем VX11PH» (PDF) .
- ^ Вэй Хуан, Представление усовершенствованного виртуального контроллера прерываний AMD. Архивировано 14 июля 2014 г. на Wayback Machine , XenSummit, 2012 г.
- ^ Йорг Рёдель (август 2012 г.). «Виртуализация прерываний нового поколения для KVM» (PDF) . АМД. Архивировано (PDF) из оригинала 4 марта 2016 г. Проверено 12 июля 2014 г.
- ^ «[Xen-devel] [RFC PATCH 0/9] Представляем AMD SVM AVIC» . www.mail-archive.com . Архивировано из оригинала 2 февраля 2017 года . Проверено 4 мая 2018 г.
- ^ Джун Накаджимаа (13 декабря 2012 г.). «Обзор неиспользуемых и новых функций виртуализации прерываний/APIC» (PDF) . Интел. Архивировано (PDF) из оригинала 21 апреля 2015 г. Проверено 12 июля 2014 г.
- ^ Кханг Нгуен (17 декабря 2013 г.). «Тестирование производительности виртуализации APIC и Iozone» . программное обеспечение.intel.com . Архивировано из оригинала 14 июля 2014 г. Проверено 12 июля 2014 г.
- ^ «Краткое описание продукта Семейство процессоров Intel Xeon E5-4600 v2» (PDF) . Интел. 14 марта 2014 г. Архивировано (PDF) из оригинала 14 июля 2014 г. Проверено 12 июля 2014 г.
- ^ «Аппаратная поддержка платформы Intel для виртуализации ввода-вывода» . Intel.com. 10 августа 2006 г. Архивировано из оригинала 20 января 2007 г. Проверено 4 февраля 2012 г.
- ^ «Виртуализация Linux и сквозная передача PCI» . ИБМ. Архивировано из оригинала 1 ноября 2009 года . Проверено 10 ноября 2010 г.
- ^ «Спецификация технологии виртуализации ввода-вывода AMD (IOMMU), версия 1.26» (PDF) . Архивировано (PDF) из оригинала 24 января 2011 г. Проверено 24 мая 2011 г.
- ^ «Технология виртуализации Intel для спецификации архитектуры направленного ввода-вывода (VT-d)» . Архивировано из оригинала 3 апреля 2013 г. Проверено 4 февраля 2012 г.
- ^ «Список поддерживаемых ЦП технологии Intel Virtualization для направленного ввода-вывода (VT-d)» . Ark.intel.com. Архивировано из оригинала 27 октября 2010 г. Проверено 4 февраля 2012 г.
- ^ «Уведомление о технических изменениях PCI-SIG: сброс функционального уровня (FLR)» (PDF) . pcisig.com . 27 июня 2006 г. Архивировано (PDF) из оригинала 4 марта 2016 г. Проверено 10 января 2014 г.
- ^ «Ксен ВТ-д» . xen.org . 06.06.2013. Архивировано из оригинала 9 февраля 2014 г. Проверено 10 января 2014 г.
- ^ «Как назначить устройства с VT-d в KVM» . Linux-kvm.org . 2014-04-23. Архивировано из оригинала 10 марта 2015 г. Проверено 05 марта 2015 г.
- ^ «Технология виртуализации Intel для подключения (VT-c)» (PDF) . Intel.com. Архивировано (PDF) из оригинала 22 февраля 2016 г. Проверено 14 февраля 2018 г.
- ^ «Спецификации виртуализации ввода-вывода (IOV) PCI-SIG» . Pcisig.com. 31 марта 2011 г. Архивировано из оригинала 15 января 2012 г. Проверено 4 февраля 2012 г.
- ^ Jump up to: а б «Взгляд изнутри: Intel Ethernet» (PDF) . Интел . 27 ноября 2014 г. с. 104. Архивировано из оригинала (PDF) 4 марта 2016 года . Проверено 26 марта 2015 г.
- ^ Яодзу Донг; Чжао Юй; Грег Роуз (2008). «Сеть SR-IOV в Xen: архитектура, проектирование и реализация» . usenix.org . УСЕНИКС . Архивировано из оригинала 9 января 2014 г. Проверено 10 января 2014 г.
- ^ Патрик Кач; Брайан Джонсон; Грег Роуз (сентябрь 2011 г.). «Введение в гибкое разделение портов Intel с использованием технологии SR-IOV» (PDF) . Интел . Архивировано из оригинала (PDF) 7 августа 2015 года . Проверено 24 сентября 2015 г.
- ^ «Гибкая облачная структура НАСА: перемещение кластерных приложений в облако» (PDF) . Интел . Архивировано из оригинала (PDF) 22 декабря 2012 г. Проверено 8 января 2014 г.
- ^ «Расширенные сетевые возможности в облаке AWS» . Масштабируемая логика. 31 декабря 2013 г. Архивировано из оригинала 9 января 2014 г. Проверено 8 января 2014 г.
- ^ «Расширенные сетевые возможности в облаке AWS. Часть 2» . Масштабируемая логика. 31 декабря 2013 г. Архивировано из оригинала 10 января 2014 г. Проверено 8 января 2014 г.