Diferencia entre máquina virtual y un hipervisor

29

Si busca en Google el término "hipervisor", obtendrá infinitas definiciones que indican que un hipervisor también se conoce como monitor de máquina virtual o administrador de máquina virtual , y que es una forma de virtualización de hardware. Pero, siendo completamente nuevo para las máquinas virtuales y sus conceptos, esta es una definición confusa para mí.

Entonces, ¿cuál es la diferencia - y / o relación entre - una máquina virtual y su hipervisor? ¿Alguien puede dar un ejemplo concreto?

pnongrata
fuente
Ver el artículo de Wikipedia sobre hipervisores. Hay un par de tipos diferentes, que pueden ser en parte por qué estás confundido. en.wikipedia.org/wiki/Hypervisor
Zoredache

Respuestas:

17

El hipervisor es el dispositivo o software que ejecuta la máquina virtual. Normalmente es responsable de asignar los recursos, proporcionando la interfaz entre la máquina virtual (el "invitado") y el sistema host, así como cualquier software de administración.

Entonces, si está utilizando VMware Workstation para ejecutar una máquina virtual con Windows 7, VMware Workstation es el hipervisor.

Gorila codificante
fuente
55
¿Por qué no pueden simplemente decir eso en la documentación de referencia? ¡Gracias!
pnongrata
10
No quieren que sea demasiado fácil para usted, o no pagará el contrato de soporte. ;)
Coding Gorilla
Entonces ... ¿Cuál es la diferencia entre VMM e Hypervisor?
allyourcode
@allyourcode Depende de qué "VMM" está hablando y en qué contexto.
Coding Gorilla
Excelente respuesta, votada. ¿Pero qué pasa con los emuladores de software ? ¿Podríamos decir que el emulador (DOSBox) es un software que ejecuta la máquina virtual?
John Cj
5

Mira este enlace. http://blogs.msdn.com/b/virtual_pc_guy/archive/2006/07/10/661958.aspx

La respuesta es del blog de virtualización de Ben Armstrong

Aquí hay dos significados para 'VMM'. El primero es el "administrador de memoria virtual", que es parte del sistema operativo Windows y no tiene nada que ver con la virtualización de la computadora, y todo que ver con la administración de memoria del sistema operativo. Esto no es lo que estoy discutiendo hoy :-)

El segundo significado es 'Monitor de máquina virtual'. Existen varios programas e implementaciones diferentes que usan el nombre 'Virtual Machine Monitor'. En los términos más simples: el VMM es el software responsable de supervisar y aplicar la política en las máquinas virtuales de las que es responsable. Esto significa que el VMM realiza un seguimiento de todo lo que sucede dentro de una máquina virtual y, cuando es necesario, proporciona recursos, redirige la máquina virtual a los recursos o niega el acceso a los recursos (diferentes implementaciones de VMM proporcionan o redirigen recursos a niveles variables, pero eso es un tema de discusión para otro día).

Clásicamente hay dos tipos de VMM.

Un VMM tipo II es uno que se ejecuta sobre un sistema operativo de alojamiento y luego genera máquinas virtuales de nivel superior. Los ejemplos de VMM de tipo II incluyen el entorno JavaVM y .Net. Estos VMM monitorean sus máquinas virtuales y redirigen las solicitudes de recursos a las API apropiadas en el entorno de alojamiento (con cierto nivel de procesamiento intermedio).

Un tipo I VMM es uno que se ejecuta directamente en el hardware sin la necesidad de un sistema operativo de alojamiento. Los VMM de tipo I también se conocen como 'hipervisores', por lo que la única diferencia real entre un VMM y un hipervisor es dónde se ejecuta. La funcionalidad proporcionada por ambos es equitativa. Los ejemplos de VMM tipo I incluyen las soluciones de virtualización de mainframe ofrecidas por compañías como Amdahl e IBM, y en computadoras modernas mediante soluciones como la virtualización VMware ESX, Xen y Windows.

Rajind Ruparathna
fuente
3

Esta es una extensión de la terminología del sistema operativo existente, una de las varias alternativas a la metáfora semilla / nuez . los programas de usuario están controlados por el programa supervisor y en un sistema no virtual que es donde las cosas se detienen. Con la virtualización, el supervisor es, a su vez, controlado (o monitoreado o administrado) por un programa de hipervisor .

Todos estos programas son softwares. La máquina virtual es la pretensión de una máquina en la que el supervisor y los programas del usuario se ejecutan. Parece un hardware desde el interior.

JdeBP
fuente
3
Irónicamente, y esto está fuera de tema, y ​​si no recuerdo mal, el latín "super" y el griego "hiper" derivan de la misma palabra original y significan lo mismo. El alemán "ueber" es otro hermano. Entonces "supervisor" e "hipervisor" son en realidad la misma palabra, excepto que uno es todo latino mientras que el otro es mitad latino, mitad griego. :-)
Andrew J. Brehm
2
Pero, de hecho, la terminología es totalmente griega para la mayoría de nosotros.
Daniel R Hicks
1

Don Skiba sobre la historia del hipervisor :

Estuve con IBM en 1966, cuando estábamos tratando de instalar los nuevos System 360. Como puede imaginar, convertir todo ese "código antiguo" de los viejos modelos 1401, 1440, 1410, 7080, 7090 fue el mayor desastre que jamás querrá ver. En el modelo 65 de 360, había un emulador para un par de máquinas más antiguas. En realidad, todos los modelos 360, excepto el modelo 75, eran emuladores del conjunto de instrucciones 360. El que era popular para el modelo 65 era el emulador para el IBM 7080. Sin embargo, tenía que dedicar la máquina al modo 360 o al modo 7080. Eso no estaba haciendo muy felices a nuestros clientes.

Resultó que había algunos registros especiales en el modelo 65 que estaban inactivos, pero activos en el modelo 67 que se usaban para compartir el tiempo y, finalmente, un sistema operativo virtual, CMS. Convencí al ingeniero del modelo 65 de que podríamos usar esos registros para cambiar entre los programas que se ejecutan en la mitad inferior de la memoria a los programas que se ejecutan en la mitad superior y que la mitad podría funcionar en modo 360 o 7080. Solo necesitábamos un "pequeño" código para hacer el intercambio, la configuración del modo y la asignación de recursos (E / S). Convencí a un ingeniero de sistemas en Filadelfia, que tenía un cliente que necesitaba desesperadamente esta función, para escribir el código. Lanzamos muchos nombres para el código en ese momento. Sugerí que "hipervisor" podría ser apropiado, porque, antes del 360, no había "sistemas operativos" y todos los sistemas anteriores tenían "supervisores". Entonces, "hipervisor" parecía apropiado y el nombre se quedó.

Artru
fuente