La virtualización x86 es el uso de capacidades de virtualización asistidas por hardware en una CPU x86 / x86-64.
A finales de la década de 1990, la virtualización x86 se logró mediante complejas técnicas de software, necesarias para compensar la falta de capacidades de virtualización asistida por hardware del procesador mientras se lograba un rendimiento razonable. En 2005 y 2006, tanto Intel ( VT-x ) como AMD ( AMD-V ) introdujeron un soporte de virtualización de hardware limitado que permitía un software de virtualización más simple, pero ofrecía muy pocos beneficios de velocidad. [1] Un mayor soporte de hardware, que permitió mejoras sustanciales en la velocidad, vino con modelos de procesadores posteriores.
Virtualización basada en software
La siguiente discusión se centra únicamente en la virtualización del modo protegido de la arquitectura x86 .
En el modo protegido, el kernel del sistema operativo se ejecuta con un privilegio más alto, como el anillo 0, y las aplicaciones con un privilegio más bajo, como el anillo 3. [ cita requerida ] En la virtualización basada en software, un sistema operativo host tiene acceso directo al hardware mientras que los sistemas operativos invitados tienen acceso limitado al hardware, al igual que cualquier otra aplicación del sistema operativo host. Un enfoque utilizado en la virtualización basada en software x86 para superar esta limitación se llama privación de anillo , que implica ejecutar el sistema operativo invitado en un anillo superior (con menos privilegios) que 0. [2]
Tres técnicas hicieron posible la virtualización del modo protegido:
- La traducción binaria se usa para reescribir en términos de instrucciones del anillo 3 ciertas instrucciones del anillo 0, como POPF , que de otra manera fallarían silenciosamente o se comportarían de manera diferente cuando se ejecutaran por encima del anillo 0, [3] [4] : 3 haciendo el clásico trap-and- emular la virtualización imposible. [4] : 1 [5] Para mejorar el rendimiento, los bloques básicos traducidos deben almacenarse en caché de una manera coherente que detecte el parcheo de código (utilizado en VxD, por ejemplo), la reutilización de páginas por parte del sistema operativo invitado o incluso la auto-modificación. codigo . [6]
- Es necesario sombrear varias estructuras de datos clave utilizadas por un procesador . Debido a que la mayoría de los sistemas operativos utilizan memoria virtual paginada , y otorgar acceso directo al sistema operativo invitado a la MMU significaría la pérdida de control por parte del administrador de virtualización , parte del trabajo de la MMU x86 debe duplicarse en el software del sistema operativo invitado mediante una técnica. conocidas como tablas de páginas de sombra . [7] : 5 [4] : 2 Esto implica denegar al sistema operativo invitado cualquier acceso a las entradas de la tabla de páginas real mediante la captura de intentos de acceso y emulándolos en su lugar en el software. La arquitectura x86 utiliza el estado oculto para almacenar descriptores de segmento en el procesador, por lo que una vez que los descriptores de segmento se han cargado en el procesador, la memoria desde la que se han cargado puede sobrescribirse y no hay forma de recuperar los descriptores del procesador. . Por lo tanto, las tablas de descriptores de sombra deben usarse para realizar un seguimiento de los cambios realizados en las tablas de descriptores por el SO huésped. [5]
- Emulación de dispositivo de E / S: los dispositivos no admitidos en el sistema operativo invitado deben ser emulados por un emulador de dispositivo que se ejecute en el sistema operativo host. [8]
Estas técnicas incurren en algunos gastos generales de rendimiento debido a la falta de compatibilidad con la virtualización de MMU, en comparación con una máquina virtual que se ejecuta en una arquitectura virtualizable de forma nativa como IBM System / 370 . [4] : 10 [9] : 17 y 21
En los mainframes tradicionales, el hipervisor clásico de tipo 1 era autónomo y no dependía de ningún sistema operativo ni ejecutaba ninguna aplicación de usuario. Por el contrario, los primeros productos de virtualización x86 estaban destinados a las estaciones de trabajo y ejecutaban un sistema operativo invitado dentro de un sistema operativo host mediante la integración del hipervisor en un módulo del kernel que se ejecutaba en el sistema operativo host (hipervisor tipo 2). [8]
Ha habido cierta controversia sobre si la arquitectura x86 sin asistencia de hardware es virtualizable como la describen Popek y Goldberg . Los investigadores de VMware señalaron en un artículo de ASPLOS de 2006 que las técnicas anteriores hicieron que la plataforma x86 fuera virtualizable en el sentido de cumplir con los tres criterios de Popek y Goldberg, aunque no mediante la técnica clásica de atrapar y emular. [4] : 2–3
Otros sistemas como Denali , L4 y Xen tomaron una ruta diferente , conocida como paravirtualización , que implica portar sistemas operativos para que se ejecuten en la máquina virtual resultante, que no implementa las partes del conjunto de instrucciones x86 que son difíciles de virtualizar. . La E / S paravirtualizada tiene importantes beneficios de rendimiento, como se demuestra en el documento Xen de SOSP '03 original . [10]
La versión inicial de x86-64 ( AMD64 ) no permitía una virtualización completa solo por software debido a la falta de soporte de segmentación en modo largo , lo que hacía imposible la protección de la memoria del hipervisor, en particular, la protección del manejador de trampas. que se ejecuta en el espacio de direcciones del kernel invitado. [11] [12] : 11 y 20 Revisión D y procesadores AMD de 64 bits posteriores (como regla general, los fabricados en 90 nm o menos) agregaron soporte básico para la segmentación en modo largo, lo que hace posible ejecutar 64- invitados de bits en hosts de 64 bits mediante traducción binaria. Intel no agregó soporte de segmentación a su implementación x86-64 ( Intel 64 ), lo que hace que la virtualización de solo software de 64 bits sea imposible en las CPU de Intel, pero el soporte de Intel VT-x hace posible la virtualización asistida por hardware de 64 bits en la plataforma Intel. [13] [14] : 4
En algunas plataformas, es posible ejecutar un invitado de 64 bits en un sistema operativo host de 32 bits si el procesador subyacente es de 64 bits y admite las extensiones de virtualización necesarias.
Virtualización asistida por hardware
En 2005 y 2006, Intel y AMD (trabajando de forma independiente) crearon nuevas extensiones de procesador para la arquitectura x86. La primera generación de virtualización de hardware x86 abordó el problema de las instrucciones privilegiadas. El problema del bajo rendimiento de la memoria del sistema virtualizado se abordó con la virtualización MMU que se agregó al chipset más tarde.
Unidad Central de procesamiento
Modo 8086 virtual
Basándose en experiencias dolorosas con el modo protegido 80286 , que por sí solo no era lo suficientemente adecuado para ejecutar bien aplicaciones DOS simultáneas , Intel introdujo el modo 8086 virtual en su chip 80386 , que ofrecía procesadores 8086 virtualizados en los chips 386 y posteriores. Sin embargo, el soporte de hardware para virtualizar el modo protegido en sí estuvo disponible 20 años después. [15]
Virtualización de AMD (AMD-V)
AMD desarrolló sus extensiones de virtualización de primera generación con el nombre en código "Pacifica", y las publicó inicialmente como AMD Secure Virtual Machine (SVM), [16] pero luego las comercializó con la marca comercial AMD Virtualization , abreviada AMD-V .
El 23 de mayo de 2006, AMD lanzó Athlon 64 ( "Orleans" ), Athlon 64 X2 ( "Windsor" ) y Athlon 64 FX ( "Windsor" ) como los primeros procesadores AMD que admiten esta tecnología.
La capacidad AMD-V también se incluye en la familia de procesadores Athlon 64 y Athlon 64 X2 con revisiones "F" o "G" en el zócalo AM2 , Turion 64 X2 y Opteron de segunda generación [17] y tercera generación, [18] Phenom y procesadores Phenom II . Los procesadores APU Fusion son compatibles con AMD-V. AMD-V no es compatible con ningún procesador Socket 939. Los únicos procesadores Sempron que lo admiten son las APU y las CPU de escritorio Huron , Regor y Sargas .
Las CPU AMD Opteron que comienzan con la línea Family 0x10 Barcelona y las CPU Phenom II son compatibles con una tecnología de virtualización de hardware de segunda generación llamada Rapid Virtualization Indexing (anteriormente conocida como tablas de páginas anidadas durante su desarrollo), que luego Intel adoptó como tablas de páginas extendidas (EPT) .
A partir de 2019, todos los procesadores AMD basados en Zen son compatibles con AMD-V.
El indicador de CPU para AMD-V es "svm". Esto se puede verificar en derivados BSD a través de dmesg o sysctl y en Linux a través de . [19] Las instrucciones en AMD-V incluyen VMRUN, VMLOAD, VMSAVE, CLGI, VMMCALL, INVLPGA, SKINIT y STGI./proc/cpuinfo
Con algunas placas base , los usuarios deben habilitar la función AMD SVM en la configuración del BIOS antes de que las aplicaciones puedan utilizarla. [20]
Virtualización de Intel (VT-x)
Con el nombre en código anterior "Vanderpool", VT-x representa la tecnología de Intel para la virtualización en la plataforma x86. El 13 de noviembre de 2005, Intel lanzó dos modelos de Pentium 4 (Modelo 662 y 672) como los primeros procesadores Intel compatibles con VT-x. El indicador de la CPU para la capacidad de VT-x es "vmx"; en Linux, esto se puede verificar a través de /proc/cpuinfo
, o en macOS a través de sysctl machdep.cpu.features
. [19]
"VMX" son las siglas de Virtual Machine Extensions, que agrega 13 nuevas instrucciones: VMPTRLD, VMPTRST, VMCLEAR, VMREAD, VMWRITE, VMCALL, VMLAUNCH, VMRESUME, VMXOFF, VMXON, INVEPT, INVVPID y VMFUNC. [21] Estas instrucciones permiten entrar y salir de un modo de ejecución virtual en el que el sistema operativo invitado se percibe a sí mismo como ejecutándose con privilegios completos (anillo 0), pero el sistema operativo host permanece protegido.
A partir de 2015[actualizar], casi todos los procesadores Intel de servidor, de escritorio y móviles más nuevos son compatibles con VT-x, con algunos de los procesadores Intel Atom como la excepción principal. [22] Con algunas placas base , los usuarios deben habilitar la función VT-x de Intel en la configuración del BIOS antes de que las aplicaciones puedan utilizarla. [23]
Intel comenzó a incluir Extended Page Tables (EPT), [24] una tecnología para la virtualización de tablas de páginas, [25] desde la arquitectura Nehalem , [26] [27] lanzada en 2008. En 2010, Westmere agregó soporte para lanzar la lógica procesador directamente en modo real - una función llamada "invitado sin restricciones", que requiere que EPT funcione. [28] [29]
Desde la microarquitectura Haswell (anunciada en 2013), Intel comenzó a incluir el sombreado de VMCS como una tecnología que acelera la virtualización anidada de VMM. [30] La estructura de control de la máquina virtual (VMCS) es una estructura de datos en la memoria que existe exactamente una vez por VM, mientras es administrada por el VMM. Con cada cambio del contexto de ejecución entre diferentes VM, el VMCS se restaura para la VM actual, definiendo el estado del procesador virtual de la VM. [31] Tan pronto como se utiliza más de un VMM o VMM anidados, aparece un problema de una manera similar a lo que requería que se inventara la administración de tablas de páginas de sombra, como se describió anteriormente . En tales casos, VMCS debe sombrearse varias veces (en caso de anidamiento) e implementarse parcialmente en el software en caso de que el procesador no soporte el hardware. Para que el manejo de VMCS en la sombra sea más eficiente, Intel implementó soporte de hardware para el sombreado de VMCS. [32]
VIA virtualización (VIA VT)
Los procesadores VIA Nano serie 3000 y superior admiten la tecnología de virtualización VIA VT compatible con Intel VT-x. [33] EPT está presente en Zhaoxin ZX-C, un descendiente de VIA QuadCore-E y Eden X4 similar a Nano C4350AL . [34]
Interrumpir la virtualización (AMD AVIC e Intel APICv)
En 2012, AMD anunció su controlador de interrupción virtual avanzado ( AVIC ) que apunta a la reducción de la sobrecarga de interrupciones en los entornos de virtualización. [35] Esta tecnología, como se anunció, no es compatible con x2APIC . [36] En 2016, AVIC está disponible en los procesadores 6Xh (Carrizo) de los modelos 15h de la familia AMD y más nuevos. [37]
También en 2012, Intel anunció una tecnología similar para interrupción y virtualización APIC , que no tenía una marca en el momento del anuncio. [38] Más tarde, se denominó virtualización APIC ( APICv ) [39] y estuvo disponible comercialmente en la serie Ivy Bridge EP de CPU Intel, que se vende como Xeon E5-26xx v2 (lanzado a finales de 2013) y como Xeon E5-46xx v2 (lanzado a principios de 2014). [40]
Unidad de procesamiento gráfico
La virtualización de gráficos no forma parte de la arquitectura x86. La tecnología Intel Graphics Virtualization Technology (GVT) proporciona virtualización de gráficos como parte de arquitecturas gráficas de generación más recientes. Aunque las APU de AMD implementan el conjunto de instrucciones x86-64 , implementan las propias arquitecturas de gráficos de AMD ( TeraScale , GCN y RDNA ) que no admiten la virtualización de gráficos. Larrabee era la única microarquitectura de gráficos basada en x86, pero probablemente no incluía soporte para la virtualización de gráficos.
Chipset
La virtualización de memoria y E / S se realiza mediante el chipset . [41] Normalmente, estas funciones deben ser habilitadas por el BIOS, que debe poder admitirlas y también estar configurado para usarlas.
Virtualización de E / S MMU (AMD-Vi e Intel VT-d)
Una unidad de gestión de memoria de entrada / salida (IOMMU) permite que las máquinas virtuales invitadas utilicen directamente dispositivos periféricos , como Ethernet, tarjetas gráficas aceleradas y controladores de disco duro, a través de DMA y reasignación de interrupciones . A esto a veces se le llama paso a través de PCI . [42]
Una IOMMU también permite que los sistemas operativos eliminen los búferes de rebote necesarios para comunicarse con dispositivos periféricos cuyos espacios de direcciones de memoria son más pequeños que el espacio de direcciones de memoria del sistema operativo, mediante el uso de la traducción de direcciones de memoria. Al mismo tiempo, un IOMMU también permite que los sistemas operativos y los hipervisores eviten que el hardware con errores o malicioso comprometa la seguridad de la memoria .
Tanto AMD como Intel han publicado sus especificaciones IOMMU:
- Tecnología de virtualización de E / S de AMD, "AMD-Vi", originalmente llamada "IOMMU" [43]
- La "Tecnología de virtualización para E / S dirigida" de Intel (VT-d), [44] incluida en la mayoría de los procesadores Intel de gama alta (pero no en todos) más nuevos desde la arquitectura Core 2. [45]
Además de la compatibilidad con la CPU, tanto el chipset de la placa base como el firmware del sistema ( BIOS o UEFI ) deben admitir completamente la funcionalidad de virtualización de E / S de IOMMU para que sea utilizable. Solo los dispositivos PCI o PCI Express que admiten el restablecimiento de nivel de función (FLR) se pueden virtualizar de esta manera, ya que es necesario para reasignar varias funciones de dispositivo entre máquinas virtuales. [46] [47] Si un dispositivo que se asignará no admite interrupciones señalizadas por mensaje (MSI), no debe compartir líneas de interrupción con otros dispositivos para que la asignación sea posible. [48] Todos los dispositivos PCI convencionales enrutados detrás de un puente PCI / PCI-X a PCI Express pueden asignarse a una máquina virtual invitada solo de una vez; Los dispositivos PCI Express no tienen tal restricción.
Virtualización de redes (VT-c)
- "Tecnología de virtualización para conectividad" de Intel (VT-c). [49]
Virtualización de E / S de raíz única PCI-SIG (SR-IOV)
La virtualización de E / S de raíz única PCI-SIG (SR-IOV) proporciona un conjunto de métodos de virtualización de E / S generales (no específicos de x86) basados en hardware nativo PCI Express (PCIe), estandarizado por PCI-SIG: [50]
- Los servicios de traducción de direcciones (ATS) admiten IOV nativa en PCI Express mediante la traducción de direcciones. Requiere soporte para nuevas transacciones para configurar tales traducciones.
- IOV de raíz única (SR-IOV o SRIOV) admite IOV nativa en topologías PCI Express complejas de raíz única existentes. Requiere soporte para nuevas capacidades de dispositivo para configurar múltiples espacios de configuración virtualizados. [51]
- IOV multi-raíz (MR-IOV) es compatible con IOV nativo en nuevas topologías (por ejemplo, servidores blade) mediante la construcción de SR-IOV para proporcionar múltiples complejos raíz que comparten una jerarquía PCI Express común.
En SR-IOV, el más común de estos, un VMM de host configura los dispositivos compatibles para crear y asignar "sombras" virtuales de sus espacios de configuración para que los invitados de la máquina virtual puedan configurar y acceder directamente a dichos recursos de dispositivos "shadow". [52] Con SR-IOV habilitado, las interfaces de red virtualizadas son directamente accesibles para los invitados, [53] evitando la participación del VMM y dando como resultado un alto rendimiento general; [51] por ejemplo, SR-IOV logra más del 95% del ancho de banda de la red bare metal en el centro de datos virtualizado de la NASA [54] y en la nube pública de Amazon . [55] [56]
Ver también
- Comparación de máquinas virtuales de aplicaciones
- Comparación de software de virtualización de plataformas
- Virtualización asistida por hardware
- Hipervisor
- Virtualización de E / S
- Virtualización de redes
- Virtualización a nivel de sistema operativo
- Cronología del desarrollo de la virtualización
- Máquina virtual
- Lista de hardware compatible con IOMMU
- Traducción de direcciones de segundo nivel (SLAT)
- Interrupciones señalizadas por mensaje (MSI)
Referencias
- ^ Una comparación de software y hardware Las técnicas para la virtualización x86, Keith Adams y Ole Agesen, VMware, ASPLOS'06 de octubre de 21-25, de 2006, San José, California, EE.UU. Archivado 2010-08-20 en la Wayback Machine "Sorprendentemente, los autores Descubrimos que el soporte de hardware de primera generación rara vez ofrece ventajas de rendimiento sobre las técnicas de software existentes. Atribuimos esta situación a los altos costos de transición de VMM / invitado y a un modelo de programación rígido que deja poco espacio para la flexibilidad del software en la gestión de la frecuencia o el costo de estas transiciones .
- ^ "Extensiones de virtualización de procesador de tecnología de virtualización Intel y tecnología de ejecución confiable de Intel" (PDF) . Intel.com. 2007. Archivado (PDF) desde el original el 21 de mayo de 2015 . Consultado el 12 de diciembre de 2016 .
- ^ "Programa Técnico USENIX - Resumen - Simposio de Seguridad - 2000" . Usenix.org. 2002-01-29. Archivado desde el original el 10 de junio de 2010 . Consultado el 2 de mayo de 2010 .
- ^ a b c d e "Una comparación de técnicas de software y hardware para la virtualización x86" (PDF) . VMware. Archivado (PDF) desde el original el 20 de agosto de 2010 . Consultado el 8 de septiembre de 2010 .
- ^ a b Patente de EE. UU. 6,397,242
- ^ Patente de Estados Unidos 6.704.925
- ^ "Virtualización: consideraciones arquitectónicas y otros criterios de evaluación" (PDF) . VMware. Archivado (PDF) desde el original el 6 de febrero de 2011 . Consultado el 8 de septiembre de 2010 .
- ^ a b Patente de EE. UU. 6,496,847
- ^ "Tecnología de asistencia de hardware y VMware" (PDF) . Archivado (PDF) desde el original el 17 de julio de 2011 . Consultado el 8 de septiembre de 2010 .
- ^ "Xen y el arte de la virtualización" (PDF) . Archivado (PDF) desde el original el 29 de septiembre de 2014.
- ^ "Cómo retirar la segmentación en modo largo AMD64 rompió VMware" . Pagetable.com. 2006-11-09. Archivado desde el original el 18 de julio de 2011 . Consultado el 2 de mayo de 2010 .
- ^ "Tecnología de virtualización de CPU y VMware" (PDF) . VMware. Archivado (PDF) desde el original el 17 de julio de 2011 . Consultado el 8 de septiembre de 2010 .
- ^ "VMware KB: requisitos de hardware y firmware para sistemas operativos invitados de 64 bits" . Kb.vmware.com. Archivado desde el original el 19 de abril de 2010 . Consultado el 2 de mayo de 2010 .
- ^ "Técnicas de software y hardware para la virtualización x86" (PDF) . Archivado desde el original (PDF) el 5 de enero de 2010 . Consultado el 2 de mayo de 2010 .
- ^ Yager, Tom (5 de noviembre de 2004). "Envío de software para hacer el trabajo del hardware | Hardware - InfoWorld" . Images.infoworld.com. Archivado desde el original el 18 de octubre de 2014 . Consultado el 8 de enero de 2014 .
- ^ "33047_SecureVirtualMachineManual_3-0.book" (PDF) . Archivado (PDF) desde el original el 5 de marzo de 2012 . Consultado el 2 de mayo de 2010 .
- ^ "¿Cuáles son las principales diferencias entre los procesadores AMD Opteron de segunda generación y los procesadores AMD Opteron de primera generación?" . amd.com . Archivado desde el original el 15 de abril de 2009 . Consultado el 4 de febrero de 2012 .
- ^ "¿Qué mejoras de virtualización ofrecen los procesadores AMD Opteron de cuatro núcleos?" . amd.com . Archivado desde el original el 16 de abril de 2009 . Consultado el 4 de febrero de 2012 .
- ^ a b Para ver si su procesador admite la virtualización de hardware. Archivado el 25 de noviembre de 2012 en la Wayback Machine Intel 2012.
- ^ Inc, QNAP Systems. "¿Cómo habilitar Intel VTx y AMD SVM? | QNAP" . QNAP Systems, Inc. - Almacenamiento conectado a la red (NAS) . Consultado el 23 de diciembre de 2020 .
- ^ INTEL (octubre de 2019). "Manual del desarrollador de software de arquitecturas Intel® 64 e IA-32" . intel.com . Intel Corporation . Consultado el 4 de enero de 2020 .
- ^ "Lista de tecnología de virtualización de Intel" . Ark.intel.com. Archivado desde el original el 27 de octubre de 2010 . Consultado el 2 de mayo de 2010 .
- ^ "Windows Virtual PC: Configurar BIOS" . Microsoft. Archivado desde el original el 6 de septiembre de 2010 . Consultado el 8 de septiembre de 2010 .
- ^ Neiger, Gil; A. Santoni; F. Leung; D. Rodgers; R. Uhlig. "Tecnología de virtualización Intel: soporte de hardware para una virtualización eficiente del procesador" (PDF) . Revista de tecnología de Intel . Intel. 10 (3): 167-178. doi : 10.1535 / itj.1003.01 . Archivado desde el original (PDF) el 25 de septiembre de 2012 . Consultado el 6 de julio de 2008 .
- ^ Gillespie, Matt (12 de noviembre de 2007). "Mejores prácticas para mejoras de paravirtualización de la tecnología de virtualización Intel: EPT y VT-d" . Red de software Intel . Intel. Archivado desde el original el 26 de diciembre de 2008 . Consultado el 6 de julio de 2008 .
- ^ "Primero el Tick, ahora el Tock: Microarquitectura Intel de próxima generación (Nehalem)" (PDF) (Comunicado de prensa). Intel. Archivado (PDF) desde el original el 26 de enero de 2009 . Consultado el 6 de julio de 2008 .
- ^ "Resumen de tecnología: tecnología de virtualización Intel Microarchitecture Nehalem" (PDF) . Intel. 2009-03-25. Archivado (PDF) desde el original el 7 de junio de 2011 . Consultado el 3 de noviembre de 2009 .
- ^ http://2013.asiabsdcon.org/papers/abc2013-P5A-paper.pdf : [ enlace muerto permanente ] "Intel agregó el modo invitado sin restricciones en la microarquitectura Westmere y en las CPU Intel posteriores, utiliza EPT para traducir la dirección física del invitado acceso a la dirección física del host. Con este modo, se permite VMEnter sin habilitar la paginación ".
- ^ http://download.intel.com/products/processor/manual/326019.pdf : [ enlace muerto permanente ] "Si el control de ejecución de VM de“ invitado sin restricciones ”es 1, el control de ejecución de VM de“ habilitar EPT ”debe también ser 1 "
- ^ "Procesadores Intel Core vPro de cuarta generación con sombreado Intel VMCS" (PDF) . Intel . 2013 . Consultado el 16 de diciembre de 2014 .
- ^ Comprensión de la tecnología de virtualización de Intel (VT). Archivado el 8 de septiembre de 2014 en Wayback Machine. Consultadoel 1 de septiembre de 2014.
- ^ El 'qué, dónde y por qué' del sombreado VMCS. Archivado el 3 de septiembre de 2014 en la Wayback Machine. Consultado el 1 de septiembre de 2014.
- ^ VIA presenta los nuevos procesadores VIA Nano 3000 Series Archivado el 22 de enero de 2013 en Wayback Machine
- ^ "Solución de portátil: Procesador Kaixian ZX-C + Chipset VX11PH" (PDF) .
- ^ Wei Huang, Introducción de AMD Advanced Virtual Interrupt Controller Archivado el 14 de julio de 2014 en Wayback Machine , XenSummit 2012
- ^ Jörg Rödel (agosto de 2012). "Virtualización de interrupciones de próxima generación para KVM" (PDF) . AMD. Archivado (PDF) desde el original el 4 de marzo de 2016 . Consultado el 12 de julio de 2014 .
- ^ "[Xen-devel] [RFC PATCH 0/9] Introduce AMD SVM AVIC" . www.mail-archive.com . Archivado desde el original el 2 de febrero de 2017 . Consultado el 4 de mayo de 2018 .
- ^ Jun Nakajimaa (13 de diciembre de 2012). "Revisión de funciones nuevas y no utilizadas para la virtualización de interrupciones / APIC" (PDF) . Intel. Archivado (PDF) desde el original el 21 de abril de 2015 . Consultado el 12 de julio de 2014 .
- ^ Khang Nguyen (17 de diciembre de 2013). "Pruebas de rendimiento de virtualización APIC e Iozone" . software.intel.com . Archivado desde el original el 14 de julio de 2014 . Consultado el 12 de julio de 2014 .
- ^ "Resumen de producto de la familia de productos del procesador Intel Xeon E5-4600 v2" (PDF) . Intel. 2014-03-14. Archivado (PDF) desde el original el 14 de julio de 2014 . Consultado el 12 de julio de 2014 .
- ^ "Soporte de hardware de plataforma Intel para virtualización de E / S" . Intel.com. 2006-08-10. Archivado desde el original el 20 de enero de 2007 . Consultado el 4 de febrero de 2012 .
- ^ "Virtualización de Linux y paso a través de PCI" . IBM. Archivado desde el original el 1 de noviembre de 2009 . Consultado el 10 de noviembre de 2010 .
- ^ "Revisión de la especificación de la tecnología de virtualización de E / S de AMD (IOMMU) 1.26" (PDF) . Archivado (PDF) desde el original el 24 de enero de 2011 . Consultado el 24 de mayo de 2011 .
- ^ "Tecnología de virtualización Intel para la especificación de arquitectura de E / S dirigida (VT-d)" . Archivado desde el original el 3 de abril de 2013 . Consultado el 4 de febrero de 2012 .
- ^ "Tecnología de virtualización Intel para la lista de CPU compatibles con E / S dirigida (VT-d)" . Ark.intel.com. Archivado desde el original el 27 de octubre de 2010 . Consultado el 4 de febrero de 2012 .
- ^ "Aviso de cambio de ingeniería PCI-SIG: restablecimiento de nivel de función (FLR)" (PDF) . pcisig.com . 2006-06-27. Archivado (PDF) desde el original el 4 de marzo de 2016 . Consultado el 10 de enero de 2014 .
- ^ "Xen VT-d" . xen.org . 2013-06-06. Archivado desde el original el 9 de febrero de 2014 . Consultado el 10 de enero de 2014 .
- ^ "Cómo asignar dispositivos con VT-d en KVM" . linux-kvm.org . 2014-04-23. Archivado desde el original el 10 de marzo de 2015 . Consultado el 5 de marzo de 2015 .
- ^ "Tecnología de virtualización Intel para conectividad (VT-c)" (PDF) . Intel.com. Archivado (PDF) desde el original el 22 de febrero de 2016 . Consultado el 14 de febrero de 2018 .
- ^ "Especificaciones de virtualización de E / S PCI-SIG (IOV)" . Pcisig.com. 2011-03-31. Archivado desde el original el 15 de enero de 2012 . Consultado el 4 de febrero de 2012 .
- ^ a b "Intel Look Inside: Intel Ethernet" (PDF) . Intel . 27 de noviembre de 2014. p. 104. Archivado (PDF) desde el original el 4 de marzo de 2016 . Consultado el 26 de marzo de 2015 .
- ^ Yaozu Dong, Zhao Yu, Greg Rose (2008). "Redes SR-IOV en Xen: Arquitectura, Diseño e Implementación" . usenix.org . USENIX . Archivado desde el original el 9 de enero de 2014 . Consultado el 10 de enero de 2014 .Mantenimiento de CS1: utiliza el parámetro de autores ( enlace )
- ^ Patrick Kutch; Brian Johnson; Greg Rose (septiembre de 2011). "Introducción a la partición de puertos flexibles de Intel mediante la tecnología SR-IOV" (PDF) . Intel . Archivado (PDF) desde el original el 7 de agosto de 2015 . Consultado el 24 de septiembre de 2015 .
- ^ "Tejido de nube flexible de la NASA: traslado de aplicaciones de clúster a la nube" (PDF) . Intel . Archivado (PDF) desde el original el 22 de diciembre de 2012 . Consultado el 8 de enero de 2014 .
- ^ "Redes mejoradas en la nube de AWS" . Lógica escalable. 2013-12-31. Archivado desde el original el 9 de enero de 2014 . Consultado el 8 de enero de 2014 .
- ^ "Redes mejoradas en la nube de AWS - Parte 2" . Lógica escalable. 2013-12-31. Archivado desde el original el 10 de enero de 2014 . Consultado el 8 de enero de 2014 .
enlaces externos
- Todo lo que necesita saber sobre la tecnología de virtualización de Intel
- Un curso especial en la Universidad de San Francisco sobre Intel EM64T y VT Extensions (2007)
- Clase de 2 días de código abierto y acceso abierto sobre cómo escribir un VMM VT-x