title: Paravirtualización
text: # Paravirtualización
  
  La paravirtualización es una técnica de programación informática que permite virtualizar por software sistemas operativos. El programa paravirtualizador presenta una interfaz de manejo de máquinas virtuales. Cada máquina virtual se comporta como un computador independiente, por lo que permite usar un sistema operativo o varios por computador emulado.
  La intención de la interfaz modificada es reducir la porción del tiempo de ejecución del usuario, empleado en operaciones que son sustancialmente más difíciles de ejecutar en un entorno virtual, comparado con un entorno no virtualizado. La paravirtualización provee filtros especialmente definidos para permitir a los invitados y al anfitrión hacer peticiones y conocer estas tareas, que de otro modo serían ejecutadas en el dominio virtual (donde el rendimiento de la ejecución es peor.) Por lo tanto, una plataforma de paravirtualización exitosa puede permitir que el monitor de la máquina virtual (VMM) sea más simple (por traslado de la ejecución de tareas críticas desde el dominio virtual al anfitrión de dominio), y/o que reduzca la degradación del rendimiento global de la ejecución de la máquina dentro del anfitrión virtual.
  La paravirtualización requiere que el sistema operativo invitado sea portado de manera explícita para la API. Una distribución de un sistema operativo convencional que no soporte paravirtualización no puede ser ejecutada ni visualizada en un monitor de máquina virtual VMM.
  La paravirtualización es un término nuevo para una vieja idea. el sistema operativo VM de IBM ha ofrecido tales características desde 1972 (y antes como CP-67). En el mundo de máquinas virtuales, esto se conoce como "código de DIAGNÓSTICO", debido a que usa un código de instrucción usado normalmente solo por software para mantenimiento de hardware y por lo tanto indefinido.
  El sistema operativo de la estación de trabajo paralela hace una llamada a su equivalente a una "hypercall". Todas son lo mismo: una llamada de sistema al hipervisor de abajo. Tales llamadas requieren soporte en el sistema operativo guest,él debe tener código hipervisor específico para hacer tales llamadas.
  El término "paravirtualización" fue usado inicialmente en literatura investigativa en asociación con el de monitor de máquina virtual. El término también es usado para describir los hipervisores Xen, L4, TRANGO, VMware, Wind River y XtratuM. Todos estos proyectos usan o pueden usar las técnicas de paravirtualización para soportar máquinas virtuales de alto rendimiento en hardware x86 implementando una máquina virtual que no implemente las partes duras-de-virtualizar del actual conjunto de instrucciones x86.
  Un ejemplo de uso de paravirtualización por rendimiento: el monitor de máquina virtual puede presentar el sistema operativo guest con una NIC inteligente con soporte para envío de paquetes basado en DMA, incluso si la NIC en el anfitrión (real) carece de esta capacidad. El envío de paquetes es ejecutado enteramente por el monitor de máquina virtual y las señales enviadas a la NIC también. Aunque el envío de señales al sistema operativo guest es costoso, el rendimiento puede mejorar.