Paravirtualizacion o virtualizacion asistida por sistemas operativos
La paravirtualización se refiere a la comunicación entre el sistema operativo huésped y el hipervisor para mejorar el rendimiento y la eficiencia. Esta técnica, como se muestra en la imagen, consiste en modificar el núcleo del sistema operativo para reemplazar las instrucciones no virtualizables con hiperllamadas que se comunican directamente con el hipervisor de la capa de virtualización. El hipervisor también proporciona interfaces hypercall para otras operaciones de los núcleos (kernels) críticas tales como la gestión de memoria, manejo de interrupciones y el tiempo de mantenimiento.
La paravirtualización es diferente de la virtualización completa, donde el sistema operativo sin modificar no sabe que se virtualiza y las llamadas sensibles están atrapadas y procesadas usando traducción binaria. La paravirtualización requiere de modificaciones del kernel del sistema operativo para virtualizar el procesador y la memoria.
El proyecto de codigo abierto Xen es un ejemplo de paravirtualización porque virtualiza el procesador y la memoria utilizando un kernel Linux modificado y virtualiza las entradas y salidas usando los controladores de dispositivos del sistema operativo invitado personalizado.
La paravirtualización ofrece una menor sobrecarga de virtualización, aunque el rendimiento de la paravirtualización sobre la virtualización completa puede variar mucho dependiendo de la carga de trabajo. Como la paravirtualización no puede apoyarse en sistemas operativos no modificados (Windows), su compatibilidad y portabilidad en estos sistemas es pobre.
Si bien es cierto que es muy difícil construir un soporte sofisticado para la traducción binaria en la virtualización completa, la paravirtualizacion es relativamente fácil solo se requiere modificar el sistema operativo invitado. VMware ha utilizado ciertos aspectos de las técnicas de paravirtualización en toda la línea de sus productos desde hace años en la forma de las herramientas VMware (VMware tools) y los controladores de dispositivos virtuales optimizados.
VMware Tools
El servicio de herramientas VMware ofrece una puerta trasera a la VMM hypervisor utilizado para servicios tales como la sincronización de tiempo , logueo y apagado de sistemas invitados.
VMXNET es un controlador de dispositivo de E/S paravirtualizado que comparte estructuras de datos con el hipervisor, puede tomar ventaja de las capacidades del dispositivos invitados para ofrecer un mejor rendimiento y la utilización de un CPU reducido.
Es importante tener en cuenta que el servicio de las herramientas de VMware y el controlador de dispositivo vmxnet no son soluciones de paravirtualización de CPU. Son cambios mínimos, no intrusivos instalados en el sistema operativo invitado que no requieren la modificación del kernel del sistema operativo.