Différence entre une machine virtuelle et un hyperviseur

29

Si vous recherchez le terme "hyperviseur" sur Google, vous obtenez des définitions infinies qui indiquent qu'un hyperviseur est également connu sous le nom de moniteur de machine virtuelle ou de gestionnaire de machine virtuelle , et qu'il s'agit d'une forme de virtualisation matérielle. Mais, étant nouveau pour les VM et leurs concepts, c'est une définition floue pour moi.

Alors, quelle est la différence - et / ou la relation entre - une machine virtuelle et son hyperviseur? Quelqu'un peut-il donner un exemple concret?

pnongrata
la source
Voir l'article de wikipedia sur les hyperviseurs. Il existe plusieurs types différents, ce qui peut expliquer en partie votre confusion. en.wikipedia.org/wiki/Hypervisor
Zoredache

Réponses:

17

L'hyperviseur est l'appareil ou le logiciel qui exécute la machine virtuelle. Il est généralement responsable de l'allocation des ressources, fournissant l'interface entre la machine virtuelle ("l'invité") et le système hôte ainsi que tout logiciel de gestion.

Donc, si vous utilisez VMware Workstation pour exécuter une machine virtuelle Windows 7, VMware Workstation est l'hyperviseur.

Coding Gorilla
la source
5
Pourquoi ne peuvent-ils pas simplement dire cela dans la documentation de référence?!? Merci!
pnongrata
10
Ils ne veulent pas vous faciliter la tâche ou vous ne paierez pas le contrat de support. ;)
Coding Gorilla
Alors ... Quelle est la différence entre VMM et Hypervisor?
allyourcode
@allyourcode Dépend de quel "VMM" vous parlez et dans quel contexte.
Coding Gorilla
Excellente réponse, votée positivement. Mais qu'en est-il des émulateurs logiciels ? Pourrions-nous dire que l'émulateur (DOSBox) est un logiciel qui exécute la machine virtuelle?
john cj
5

Vérifiez ce lien. http://blogs.msdn.com/b/virtual_pc_guy/archive/2006/07/10/661958.aspx

La réponse vient du blog de virtualisation de Ben Armstrong

voici en fait deux significations pour «VMM». Le premier est le «gestionnaire de mémoire virtuelle» - cela fait partie du système d'exploitation Windows et n'a rien à voir avec la virtualisation informatique - et tout à voir avec la gestion de la mémoire du système d'exploitation. Ce n'est pas ce dont je parle aujourd'hui :-)

La deuxième signification est «moniteur de machine virtuelle». Il existe un certain nombre de programmes et d'implémentations différents qui utilisent le surnom de «Virtual Machine Monitor». En termes simples - le VMM est le logiciel responsable de la surveillance et de l'application de la politique sur les machines virtuelles dont il est responsable. Cela signifie que le VMM garde une trace de tout ce qui se passe à l'intérieur d'une machine virtuelle et, si nécessaire, fournit des ressources, redirige la machine virtuelle vers les ressources ou refuse l'accès aux ressources (différentes implémentations de VMM fournissent ou redirigent les ressources à différents niveaux - mais c'est un sujet de discussion pour un autre jour).

Classiquement, il existe deux types de VMM.

Un VMM de type II est un VMM qui s'exécute au-dessus d'un système d'exploitation d'hébergement, puis génère des machines virtuelles de niveau supérieur. Les exemples de VMM de type II incluent l'environnement JavaVM et .Net. Ces VMM surveillent leurs machines virtuelles et redirigent les demandes de ressources vers les API appropriées dans l'environnement d'hébergement (avec un certain niveau de traitement entre les deux).

Un VMM de type I est un VMM qui s'exécute directement sur le matériel sans avoir besoin d'un système d'exploitation d'hébergement. Les VMM de type I sont également appelés «hyperviseurs» - la seule vraie différence entre un VMM et un hyperviseur est l'endroit où il s'exécute. La fonctionnalité fournie par les deux est équitable. Des exemples de VMM de type I incluent les solutions de virtualisation mainframe proposées par des sociétés telles que Amdahl et IBM, et sur les ordinateurs modernes par des solutions telles que VMware ESX, Xen et la virtualisation Windows.

Rajind Ruparathna
la source
3

Il s'agit d'une extension de la terminologie existante du système d'exploitation - celle qui est l'une des nombreuses alternatives à la métaphore graine / noix . les programmes utilisateur sont contrôlés par le programme superviseur , et dans un système non virtuel, c'est là que les choses s'arrêtent. Avec la virtualisation, le superviseur est à son tour contrôlé (ou surveillé ou géré) par un programme d' hyperviseur .

Tous ces programmes sont des logiciels. La machine virtuelle est le prétexte d'une machine sur laquelle le superviseur et les programmes utilisateur se voient s'exécuter. Il ressemble à du matériel de l'intérieur.

JdeBP
la source
3
Ironiquement, et c'est hors sujet, et si je me souviens bien, le latin "super" et le grec "hyper" dérivent du même mot original et signifient la même chose. "Ueber" allemand est un autre frère. Donc "superviseur" et "hyperviseur" sont en fait le même mot, sauf que l'un est tout latin tandis que l'autre est à moitié latin, à moitié grec. :-)
Andrew J. Brehm
2
Mais en fait, la terminologie est entièrement grecque pour la plupart d'entre nous.
Daniel R Hicks
1

Don Skiba à propos de l'histoire de l'hyperviseur :

J'étais chez IBM en 1966, lorsque nous essayions d'installer le nouveau System 360s. Comme vous pouvez l'imaginer, la conversion de tout cet «ancien code» des anciens modèles 1401, 1440, 1410, 7080 et 7090 a été le plus gros gâchis que vous voudrez jamais voir. Sur le 360 ​​modèle 65, il y avait un émulateur pour quelques anciennes machines. En fait, tous les modèles 360, à l'exception du modèle 75, étaient des émulateurs du jeu d'instructions 360. Celui qui était populaire pour le modèle 65 était l'émulateur pour l'IBM 7080. Cependant, vous deviez dédier la machine au mode 360 ​​ou au mode 7080. Cela ne faisait pas plaisir à nos clients.

Il s'est avéré qu'il y avait des registres spéciaux sur le modèle 65 qui étaient inactifs, mais actifs sur le modèle 67 qui étaient utilisés pour le partage de temps et finalement un système d'exploitation virtuel, CMS. J'ai convaincu l'ingénieur du modèle 65 que nous pouvions utiliser ces registres pour permuter entre les programmes s'exécutant dans la moitié inférieure de la mémoire et les programmes s'exécutant dans la moitié supérieure et que l'une ou l'autre moitié pouvait fonctionner en mode 360 ​​ou 7080. Nous avions juste besoin d'un "petit" code pour effectuer l'échange, le réglage du mode et l'allocation des ressources (E / S). J'ai convaincu un ingénieur système à Philadelphie, qui avait un client qui avait désespérément besoin de cette fonction, d'écrire le code. Nous avons lancé beaucoup de noms pour le code à l'époque. J'ai suggéré que «l'hyperviseur» pourrait être approprié, car, avant le 360, il n'y avait pas de «systèmes d'exploitation» et les systèmes précédents avaient tous des «superviseurs». Donc, "hyperviseur" semblait approprié et le nom est resté.

Artru
la source