Sobre técnicas de virtualización

Temas relacionados con el examen de test
Responder
amodeo
PreparaTIC27
Mensajes: 74
Registrado: 31 Jul 2018, 14:02
Agradecido: 0
Agradecimiento recibido: 0

Sobre técnicas de virtualización

Mensaje por amodeo »

Hola a todos,

Me ha surgido una duda acerca de la paravirtualización, leyendo el tema de ASTIC, página 8, dice así:

Tanto Intel como AMD, han desarrollado extensiones de virtualización a sus arquitecturas, mejorando la velocidad de ejecución de las máquinas virtuales. En el caso de Intel, se denomina Intel Virtualization Technology (Intel VT-x Vanderpool) y en el caso de AMD, AMD Virtualization (AMD-V) o también conocida como Pacífica.
Con estas mejoras, el rendimiento de las máquinas virtuales es casi idéntico al de sistemas operativos reales, ya que no se requiere recompilar nada ni emular ningún anillo, permitiendo ejecutar los sistemas operativos directamente en el ring 0.
Como ya se ha mencionado anteriormente, la modificación que deben sufrir los sistemas operativos para ser paravirtualizados en principio presenta una limitación, ya que esto solo puede realizarse en software abierto (Solaris, Linux,…) o por el fabricante del software en el caso del software propietario.


En la primera frase en negrita hace referencia a que no hay necesidad (entiendo yo) de recompilar ni modificar el SO para llevar a cabo el ring deprivileging y demás, porque gracias a las técnicas de virtualización HW de Intel y AMD, pueden acceder directamente al anillo 0. Sin embargo, en la 2a negrita, vuelve a hacer referencia a estas modificaciones. Lo único que me cuadra es que haga referencia a lo que sucede si no están disponibles esas técnicas, porque en caso de que sí, entiendo que no hay que hacer modificaciones. ¿Qué opináis? Gracias :D

Saludos

Avatar de Usuario
palindromo
Usuario registrado
Mensajes: 555
Registrado: 21 Abr 2018, 15:05
Ubicación: Madrid
Agradecido: 7 veces
Agradecimiento recibido: 9 veces

Re: Sobre técnicas de virtualización

Mensaje por palindromo »

Yo creo que, en el primer caso, hace referencia al sistema operativo del host, o más bien al hipervisor, que accede directamente a las capacidades de virtualización de los chips de Intel o AMD.
En cambio, la segunda referencia a sistemas operativos tiene que ver con las máquinas virtualizadas (invitados o guest) y al hecho de que, en el caso de la paravirtualización, es un requisito realizar modificaciones en el sistema operativo.

Ahora bien, no sé cómo de completa es esta información. Por ejemplo, KVM es un hipervisor que no soporta paravirtualización, en el sentido de que solamente puede correr sobre procesadores con soporte x86 hvm (la fuente: FAQ de KVM); ahora bien, sí que podría soportar paravirtualización de drivers. Por tanto, el concepto se aplica a varios niveles. Necesito conocer más.

Por buscar una mención moderna (hay montones de 2007 o 2008, la wikipedia parece que se quedó en 2009, con la traducción del original en inglés, bastante más antiguo) sobre paravirtualización, he encontrado un artículo bastante genérico, pero que creo que fija bien los conceptos en IONOS.
Desde la barrera.

Avatar de Usuario
terpsicore
PreparaTIC27
Mensajes: 93
Registrado: 21 May 2018, 15:20
Agradecido: 34 veces
Agradecimiento recibido: 3 veces

Re: Sobre técnicas de virtualización

Mensaje por terpsicore »

Hola!

Según lo tengo entendido yo, lo que se dice es que hay un subtipo de paravirtualización en el que lo que se hace es modificar el HW para crear un nuevo anillo de privilegios, el -1. En este nuevo anillo es donde funciona el hypervisor y, por lo tanto, no es necesario modificar el SO guest.

En general, con la paravirtualización es necesario modificar el SO para que haga las hypercalls, pero en este subtipo (que han implementado Intel-VT y AMD-V) no es así.

Saludos!

danielside24
Usuario registrado
Mensajes: 32
Registrado: 11 Ene 2018, 09:09
Agradecido: 0
Agradecimiento recibido: 0

Re: Sobre técnicas de virtualización

Mensaje por danielside24 »

Ese segundo párrafo lo veo correcto, pero podría extenderse un poco más.

El ring-0 al menos en sistemas tipo unix, se refiere al "modo kernel". Casi todos los programas que se ejecutan en un unix/linux se ejecutan en modo usuario, y eso incluye servidores como apache, no me refiero solo a programas normales de usuario. El modo usuario es el "ring-3". En modo kernel se ejecutan los drivers, por ejemplo.

La CPU en un momento dado está en modo kernel o en modo usuario. Si un proceso en modo usuario toma la CPU (cambio de contexto) entonces pasa a modo usuario, y viceversa.

Los juegos de instrucciones de Intel y de AMD ofrecen un conjunto de instrucciones especiales que permiten al hipervisor usar el ring-0 (modo kernel) sin usarlo directamente. Las máquinas virtuales en sí mismas no son más que procesos dentro del servidor de virtualización. Esos procesos que nosotros llamamos máquinas virtuales corren en un nuevo "ring-1" de cara al servidor de virtualización (la máquina que ejecuta vmware o kvm) pero ellas se creen que están en el ring-0 y por tanto tienen acceso a llamadas al sistema a las que los programas de usuario no tienen, pero de un modo más seguro.

Para cerrar el tema, los sistemas operativos no pueden arrancarse en modo normal para la paravirtualización. Necesitan arrancar en un modo especial donde su única tarea va a ser ejecutar máquinas virtuales. Es lo que hacen VMWare o Xen en linux. Ese "sistema operativo modificado" es lo que vienen a decir en el párrafo. En lugar de arrancar como SO de propósito general, arrancaría como un hipervisor puro,

amodeo
PreparaTIC27
Mensajes: 74
Registrado: 31 Jul 2018, 14:02
Agradecido: 0
Agradecimiento recibido: 0

Re: Sobre técnicas de virtualización

Mensaje por amodeo »

Perdón por la tardanza en contestar y muchas gracias por las explicaciones a todos, es un tema bastante interesante pero tiene sus puntos de complejidad.

Saludos y ánimo con el estudio :D

Responder

Volver a “PRIMER EXAMEN 2018”