Qemu es un emulador puesto que emula un sistema dentro de otro. Sin embargo esto lo hace tremendamente lento al tener que interpretar todas las instrucciones de la CPU.
La solución es el módulo propietario Kqemu o el libre qemu86. Estos módulos convierten Qemu en un virtualizador, en el sentido de que las instrucciones de la máquina emulada ya no tiene que ser interpretadas por el Qemu sino que se ejecutan directamente en la CPU. EL problema es que la virtualización al 100% es imposible en sistemas x86 sin las nuevas extensiones de Intel y AMD. Por eso, al virtualización de Kqemu sólo funciona para los procesos de usuario de la máquina virtual y no para el código del núcleo. El código del núcleo tiene que seguir siendo interpretado.
Parece lo anterior lo resuelve VMware instalando algún driver o módulo en el sistema operativo en el que corre. Este módulo permite que el código de núcleo de la máquina virtual no tenga que ser interpretado. Por eso VMware es un poco más eficiente, entre otros motivos.
Xen usa paravirtualización. En el anillo 0, donde normalmente correo el núcleo de un SO, corre el hipervisor del Xen. En el anillo 1, donde normalmente no se ejecuta nada, correo el núcleo de los SO de cada máquina virtual. Por debajo de los núcleos y en un nivel inferior de privilegio los programas de usuario. EN este caso nada tiene que ser emulado ni interpretado. Simplemente cuando un SO necesita algún recursos compartido como la CPU, memoria o E/S se lo dice al hipervisor con una llamada al sistema. Este no es el funcionamiento normal de un núcleo y por eso los núcleo tiene que ser parcheados, cosa que no ocurre en una máquina virtual convencional como la de Qemu o VMware. Sin embargo la perdida de eficiencia también es menor.
Para evitar tener que diseñar drivers de E/S para el hipervisor las peticiones de E/S se pasan al sistema operativo de una de las máquinas virtuales, el domino 0
Re:¿Alguna comparativa de Xen vs Qemu?
(Puntos:1)( http://drupal.gulic.org/blog/aplatanado )
Qemu es un emulador puesto que emula un sistema dentro de otro. Sin embargo esto lo hace tremendamente lento al tener que interpretar todas las instrucciones de la CPU.
La solución es el módulo propietario Kqemu o el libre qemu86. Estos módulos convierten Qemu en un virtualizador, en el sentido de que las instrucciones de la máquina emulada ya no tiene que ser interpretadas por el Qemu sino que se ejecutan directamente en la CPU. EL problema es que la virtualización al 100% es imposible en sistemas x86 sin las nuevas extensiones de Intel y AMD. Por eso, al virtualización de Kqemu sólo funciona para los procesos de usuario de la máquina virtual y no para el código del núcleo. El código del núcleo tiene que seguir siendo interpretado.
Parece lo anterior lo resuelve VMware instalando algún driver o módulo en el sistema operativo en el que corre. Este módulo permite que el código de núcleo de la máquina virtual no tenga que ser interpretado. Por eso VMware es un poco más eficiente, entre otros motivos.
Xen usa paravirtualización. En el anillo 0, donde normalmente correo el núcleo de un SO, corre el hipervisor del Xen. En el anillo 1, donde normalmente no se ejecuta nada, correo el núcleo de los SO de cada máquina virtual. Por debajo de los núcleos y en un nivel inferior de privilegio los programas de usuario. EN este caso nada tiene que ser emulado ni interpretado. Simplemente cuando un SO necesita algún recursos compartido como la CPU, memoria o E/S se lo dice al hipervisor con una llamada al sistema. Este no es el funcionamiento normal de un núcleo y por eso los núcleo tiene que ser parcheados, cosa que no ocurre en una máquina virtual convencional como la de Qemu o VMware. Sin embargo la perdida de eficiencia también es menor.
Para evitar tener que diseñar drivers de E/S para el hipervisor las peticiones de E/S se pasan al sistema operativo de una de las máquinas virtuales, el domino 0