stringtranslate.com

Virtualización x86

La virtualización x86 es el uso de capacidades de virtualización asistidas por hardware en una CPU x86/x86-64.

A finales de los años 1990, la virtualización x86 se logró mediante técnicas de software complejas, necesarias para compensar la falta de capacidades de virtualización asistida por hardware del procesador y, al mismo tiempo, lograr 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 permitió un software de virtualización más simple pero ofreció muy pocos beneficios de velocidad. [1] Los modelos de procesadores posteriores incorporaron un mayor soporte de hardware, que permitió mejoras sustanciales de velocidad.

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 núcleo del sistema operativo se ejecuta en un nivel de privilegios superior, como el anillo 0, y las aplicaciones en un nivel de privilegios inferior, 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 denomina desprivilegio de anillo , que implica ejecutar el sistema operativo invitado en un anillo superior (menos privilegiado) que 0. [2]

Tres técnicas hicieron posible la virtualización del modo protegido:

Estas técnicas implican cierta sobrecarga de rendimiento debido a la falta de soporte de 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 aplicaciones de usuario por sí mismo. Por el contrario, los primeros productos de virtualización x86 estaban destinados a estaciones de trabajo y ejecutaban un sistema operativo invitado dentro de un sistema operativo host mediante la incorporación del hipervisor en un módulo de kernel que se ejecutaba bajo el sistema operativo host (hipervisor de tipo 2). [8]

Ha habido cierta controversia sobre si la arquitectura x86 sin asistencia de hardware es virtualizable como 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 trasladar los sistemas operativos para que se ejecuten en la máquina virtual resultante, que no implementa las partes del conjunto de instrucciones x86 real que son difíciles de virtualizar. La E/S paravirtualizada tiene importantes ventajas de rendimiento, como se demuestra en el documento original de SOSP '03 sobre Xen. [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 núcleo invitado. [11] [12] : 11 y 20  Revisión D y posteriores Los procesadores AMD de 64 bits (como regla general, aquellos fabricados en 90 nm o menos) agregaron soporte básico para segmentación en modo largo, lo que hizo posible ejecutar invitados de 64 bits en hosts de 64 bits a través de traducción binaria. Intel no agregó soporte de segmentación a su implementación x86-64 ( Intel 64 ), lo que hizo imposible la virtualización solo por software de 64 bits en las CPU 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 virtualizada se solucionó con la virtualización MMU que se agregó al chipset más tarde.

Unidad central de procesamiento

Modo virtual 8086

Como el Intel 80286 no podía ejecutar aplicaciones DOS simultáneas por sí solo en modo protegido, 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í mismo estuvo disponible 20 años después. [15]

Virtualización AMD (AMD-V)

Matriz AMD Phenom

AMD desarrolló sus extensiones de virtualización de primera generación bajo el nombre clave "Pacifica", y las publicó inicialmente como AMD Secure Virtual Machine (SVM), [16] pero luego las comercializó bajo la marca comercial AMD Virtualization , abreviada AMD-V .

El 23 de mayo de 2006, AMD lanzó el Athlon 64 ( "Orleans" ), el Athlon 64 X2 ( "Windsor" ) y el Athlon 64 FX ( "Windsor" ) como los primeros procesadores AMD compatibles con 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 los procesadores de socket AM2 , Turion 64 X2 y Opteron de segunda generación [17] y de tercera generación, [18] Phenom y Phenom II . Los procesadores APU Fusion admiten AMD-V. Ningún procesador Socket 939 admite AMD-V. Los únicos procesadores Sempron que lo admiten son las APU y las CPU de escritorio Huron , Regor y Sargas .

Las CPU AMD Opteron a partir de la línea Family 0x10 Barcelona y las CPU Phenom II admiten una tecnología de virtualización de hardware de segunda generación llamada Rapid Virtualization Indexing (anteriormente conocida como Nested Page Tables durante su desarrollo), posteriormente adoptada por Intel como Extended Page Tables (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 comprobar en los derivados de BSD mediante dmesg o sysctl y en Linux mediante . [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)

Procesador Intel Core i7 (Bloomfield)

Anteriormente denominada "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 CPU para la capacidad de VT-x es "vmx"; en Linux, esto se puede comprobar mediante /proc/cpuinfo, o en macOS mediante sysctl machdep.cpu.features. [19]

"VMX" significa Extensiones de Máquina Virtual, que agrega 13 nuevas instrucciones: VMPTRLD, VMPTRST, VMCLEAR, VMREAD, VMWRITE, VMCALL, VMLAUNCH, VMRESUME, VMXOFF, VMXON, INVEPT, INVVPID y VMFUNC. [21] Estas instrucciones permiten ingresar y salir de un modo de ejecución virtual donde 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 , casi todos los procesadores Intel más nuevos para servidores, computadoras de escritorio y dispositivos móviles admiten VT-x, con algunos de los procesadores Intel Atom como la principal excepción. [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 iniciar el procesador lógico directamente en modo real  , una característica llamada "huésped sin restricciones", que requiere EPT para funcionar. [28] [29]

Desde la microarquitectura Haswell (anunciada en 2013), Intel comenzó a incluir el shadowing de VMCS como una tecnología que acelera la virtualización anidada de las VMM. [30] La estructura de control de máquina virtual (VMCS) es una estructura de datos en memoria que existe exactamente una vez por VM, mientras que es administrada por la 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 utilizan más de una VMM o VMM anidadas, aparece un problema de una manera similar a la que requirió que se inventara la administración de la tabla de páginas shadow, como se describió anteriormente. En tales casos, es necesario hacer shadowing de VMCS varias veces (en caso de anidamiento) e implementarlo parcialmente en el software en caso de que el procesador no tenga soporte de hardware. Para hacer que el manejo de shadow VMCS sea más eficiente, Intel implementó soporte de hardware para el shadowing de VMCS. [32]

Virtualización VIA (VIA VT)

Los procesadores de la serie VIA Nano 3000 y superiores 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]

Virtualización de interrupciones (AMD AVIC e Intel APICv)

En 2012, AMD anunció su Controlador de Interrupciones Virtuales Avanzado ( AVIC ) que apunta a la reducción de la sobrecarga de interrupciones en entornos de virtualización. [35] Esta tecnología, como se anunció, no es compatible con x2APIC . [36] En 2016, AVIC está disponible en los modelos de la familia AMD 15h, procesadores 6Xh (Carrizo) y más nuevos. [37]

También en 2012, Intel anunció una tecnología similar para la virtualización de interrupciones y APIC , que no tenía una marca en el momento de su anuncio. [38] Más tarde, se denominó virtualización APIC ( APICv ) [39] y se comercializó en la serie Ivy Bridge EP de CPU Intel, que se vende como Xeon E5-26xx v2 (lanzada a fines de 2013) y como Xeon E5-46xx v2 (lanzada 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 de virtualización de gráficos (GVT) de Intel proporciona virtualización de gráficos como parte de las 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 gráficas de AMD ( TeraScale , GCN y RDNA ) que no admiten la virtualización de gráficos. [ cita requerida ] Larrabee fue la única microarquitectura gráfica basada en x86, pero probablemente no incluía soporte para la virtualización de gráficos.

Conjunto de chips

La virtualización de la memoria y de E/S la realiza el chipset . [41] Normalmente, estas funciones deben estar habilitadas por el BIOS, que debe poder soportarlas y también estar configurado para usarlas.

Virtualización de MMU de E/S (AMD-Vi e Intel VT-d)

Un registro del kernel de Linux que muestra información de AMD-Vi

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 . Esto a veces se denomina transferencia PCI . [42]

Un IOMMU también permite que los sistemas operativos eliminen los buffers 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 hardware defectuoso o malicioso comprometa la seguridad de la memoria .

Tanto AMD como Intel han publicado sus especificaciones IOMMU:

Además del soporte de la CPU, tanto el chipset de la placa base como el firmware del sistema ( BIOS o UEFI ) deben ser totalmente compatibles con 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 del nivel de función (FLR) se pueden virtualizar de esta manera, ya que es necesario para reasignar varias funciones del dispositivo entre máquinas virtuales. [46] [47] Si un dispositivo que se va a 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 se pueden asignar a una máquina virtual invitada solo todos a la vez; los dispositivos PCI Express no tienen esa restricción.

Virtualización de red (VT-c)

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), según lo estandarizado por PCI-SIG: [50]

En SR-IOV, el más común de estos, un VMM host configura 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 "sombra". [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 red de metal desnudo en el centro de datos virtualizado de la NASA [54] y en la nube pública de Amazon . [55] [56]

Véase también

Referencias

  1. ^ Una comparación de técnicas de software y hardware para la virtualización x86, Keith Adams y Ole Agesen, VMware, ASPLOS'06 21-25 de octubre de 2006, San José, California, EE. UU. Archivado el 20 de agosto de 2010 en Wayback Machine "Sorprendentemente, 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/huésped y a un modelo de programación rígido que deja poco espacio para la flexibilidad del software a la hora de gestionar la frecuencia o el costo de estas transiciones.
  2. ^ "Extensiones de virtualización de procesadores 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 .
  3. ^ "Programa técnico de USENIX - Resumen - Simposio de seguridad - 2000". Usenix.org. 29 de enero de 2002. Archivado desde el original el 10 de junio de 2010. Consultado el 2 de mayo de 2010 .
  4. ^ abcde "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 .
  5. ^ ab Patente estadounidense 6.397.242
  6. ^ Patente estadounidense 6.704.925
  7. ^ "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 .
  8. ^ desde Patente estadounidense 6.496.847
  9. ^ "VMware y la tecnología de asistencia de hardware" (PDF) . Archivado (PDF) desde el original el 17 de julio de 2011 . Consultado el 8 de septiembre de 2010 .
  10. ^ "Xen y el arte de la virtualización" (PDF) . Archivado (PDF) del original el 29 de septiembre de 2014.
  11. ^ "Cómo la eliminación de la segmentación en el modo largo AMD64 afectó a VMware". Pagetable.com. 2006-11-09. Archivado desde el original el 2011-07-18 . Consultado el 2010-05-02 .
  12. ^ "VMware y la tecnología de virtualización de CPU" (PDF) . VMware. Archivado (PDF) desde el original el 17 de julio de 2011 . Consultado el 8 de septiembre de 2010 .
  13. ^ "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 .
  14. ^ "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 .
  15. ^ Yager, Tom (5 de noviembre de 2004). "Enviar software para que haga 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 .
  16. ^ "33047_SecureVirtualMachineManual_3-0.book" (PDF) . Archivado (PDF) desde el original el 5 de marzo de 2012. Consultado el 2 de mayo de 2010 .
  17. ^ "¿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 .
  18. ^ "¿Qué mejoras de virtualización incorporan 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 .
  19. ^ ab Para ver si su procesador admite la virtualización de hardware Archivado el 25 de noviembre de 2012 en Wayback Machine Intel 2012.
  20. ^ "¿Cómo habilitar Intel VTx y AMD SVM?". Soporte . QNAP Systems, Inc. Archivado desde el original el 2018-03-07 . Consultado el 2020-12-23 .
  21. ^ 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 .
  22. ^ "Lista de tecnologías 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 .
  23. ^ "Windows Virtual PC: Configurar BIOS". Microsoft. Archivado desde el original el 6 de septiembre de 2010. Consultado el 8 de septiembre de 2010 .
  24. ^ Neiger, Gil; A. Santoni; F. Leung; D. Rodgers; R. Uhlig (2006). "Tecnología de virtualización de Intel: compatibilidad de hardware para virtualización eficiente de procesadores" (PDF) . Intel Technology Journal . 10 (3). Intel: 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 .
  25. ^ Gillespie, Matt (12 de noviembre de 2007). "Mejores prácticas para mejoras de paravirtualización a partir de la tecnología de virtualización de Intel: EPT y VT-d". Intel Software Network . Intel. Archivado desde el original el 26 de diciembre de 2008. Consultado el 6 de julio de 2008 .
  26. ^ "Primero el tictac, ahora el tac: la microarquitectura Intel de próxima generación (Nehalem)" (PDF) (Nota de prensa). Intel. Archivado (PDF) del original el 26 de enero de 2009. Consultado el 6 de julio de 2008 .
  27. ^ "Resumen tecnológico: Tecnología de virtualización Nehalem de la microarquitectura de Intel" (PDF) . Intel. 25 de marzo de 2009. Archivado (PDF) desde el original el 7 de junio de 2011. Consultado el 3 de noviembre de 2009 .
  28. ^ [1] "Intel agregó un modo de invitado sin restricciones en la microarquitectura Westmere y en las CPU Intel posteriores. Utiliza EPT para traducir el acceso a la dirección física del invitado a la dirección física del host. Con este modo, se permite VMSenter sin paginación habilitada".
  29. ^ [2] "Si el control de ejecución de la máquina virtual "invitada sin restricciones" es 1, el control de ejecución de la máquina virtual "habilitar EPT" también debe ser 1"
  30. ^ "Procesadores Intel Core vPro de cuarta generación con Intel VMCS Shadowing" (PDF) . Intel . 2013 . Consultado el 16 de diciembre de 2014 .
  31. ^ Comprensión de la tecnología de virtualización (VT) de Intel. Archivado el 8 de septiembre de 2014 en Wayback Machine . Consultado el 1 de septiembre de 2014.
  32. ^ El "qué, dónde y por qué" del shadowing de VMCS. Archivado el 3 de septiembre de 2014 en Wayback Machine. Consultado el 1 de septiembre de 2014.
  33. ^ VIA presenta los nuevos procesadores de la serie VIA Nano 3000 Archivado el 22 de enero de 2013 en Wayback Machine
  34. ^ "Solución para portátiles: procesador Kaixian ZX-C + chipset VX11PH" (PDF) .
  35. ^ Wei Huang, Introducción del controlador de interrupción virtual avanzado de AMD Archivado el 14 de julio de 2014 en Wayback Machine , XenSummit 2012
  36. ^ 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 .
  37. ^ "[Xen-devel] [RFC PATCH 0/9] Presentamos AMD SVM AVIC". www.mail-archive.com . Archivado desde el original el 2 de febrero de 2017 . Consultado el 4 de mayo de 2018 .
  38. ^ Jun Nakajimaa (13 de diciembre de 2012). "Revisión de características 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 .
  39. ^ 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 .
  40. ^ "Resumen del producto Familia de productos del procesador Intel Xeon E5-4600 v2" (PDF) . Intel. 14 de marzo de 2014. Archivado (PDF) desde el original el 14 de julio de 2014. Consultado el 12 de julio de 2014 .
  41. ^ "Compatibilidad de hardware de la plataforma Intel con virtualización de E/S". Intel.com. 10 de agosto de 2006. Archivado desde el original el 20 de enero de 2007. Consultado el 4 de febrero de 2012 .
  42. ^ "Virtualización de Linux y transferencia PCI". IBM. Archivado desde el original el 1 de noviembre de 2009. Consultado el 10 de noviembre de 2010 .
  43. ^ "Revisión 1.26 de la especificación de la tecnología de virtualización de E/S de AMD (IOMMU)" (PDF) . Archivado (PDF) desde el original el 24 de enero de 2011 . Consultado el 24 de mayo de 2011 .
  44. ^ "Especificación de la arquitectura de la tecnología de virtualización Intel para E/S dirigida (VT-d)". Archivado desde el original el 3 de abril de 2013. Consultado el 4 de febrero de 2012 .
  45. ^ "Lista de CPU compatibles con la tecnología de virtualización Intel para 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 .
  46. ^ "Aviso de cambio de ingeniería de PCI-SIG: restablecimiento del nivel de función (FLR)" (PDF) . pcisig.com . 2006-06-27. Archivado (PDF) desde el original el 2016-03-04 . Consultado el 2014-01-10 .
  47. ^ "Xen VT-d". xen.org . 2013-06-06. Archivado desde el original el 2014-02-09 . Consultado el 2014-01-10 .
  48. ^ "Cómo asignar dispositivos con VT-d en KVM". linux-kvm.org . 23 de abril de 2014. Archivado desde el original el 10 de marzo de 2015 . Consultado el 5 de marzo de 2015 .
  49. ^ "Tecnología de virtualización de Intel para conectividad (VT-c)" (PDF) . Intel.com. Archivado (PDF) del original el 22 de febrero de 2016 . Consultado el 14 de febrero de 2018 .
  50. ^ "Especificaciones de virtualización de E/S (IOV) PCI-SIG". Pcisig.com. 2011-03-31. Archivado desde el original el 2012-01-15 . Consultado el 2012-02-04 .
  51. ^ ab "Intel Look Inside: Intel Ethernet" (PDF) . Intel . 27 de noviembre de 2014. p. 104. Archivado desde el original (PDF) el 4 de marzo de 2016 . Consultado el 26 de marzo de 2015 .
  52. ^ 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 2014-01-09 . Consultado el 2014-01-10 .
  53. ^ Patrick Kutch; Brian Johnson; Greg Rose (septiembre de 2011). "Introducción al particionamiento de puertos flexibles de Intel mediante tecnología SR-IOV" (PDF) . Intel . Archivado desde el original (PDF) el 7 de agosto de 2015 . Consultado el 24 de septiembre de 2015 .
  54. ^ "La estructura flexible de la nube de la NASA: trasladar aplicaciones de clúster a la nube" (PDF) . Intel . Archivado desde el original (PDF) el 22 de diciembre de 2012 . Consultado el 8 de enero de 2014 .
  55. ^ "Redes mejoradas en la nube de AWS". Scalable Logic. 31 de diciembre de 2013. Archivado desde el original el 9 de enero de 2014. Consultado el 8 de enero de 2014 .
  56. ^ "Redes mejoradas en la nube de AWS - Parte 2". Scalable Logic. 31 de diciembre de 2013. Archivado desde el original el 10 de enero de 2014. Consultado el 8 de enero de 2014 .

Enlaces externos