Differenza tra Virtual Machine e Hypervisor


29

Se si utilizza Google il termine "hypervisor", si ottengono infinite definizioni che affermano che un hypervisor è anche noto come monitor di una macchina virtuale o gestore di una macchina virtuale e che si tratta di una forma di virtualizzazione dell'hardware. Ma, essendo nuovo di zecca per le VM e i loro concetti, questa è una definizione confusa per me.

Quindi, qual è la differenza - e / o relazione tra - una macchina virtuale e il suo hypervisor? Qualcuno può fare un esempio concreto?


Vedi l'articolo di Wikipedia sugli hypervisor. Ci sono un paio di tipi diversi, che possono essere in parte il motivo per cui sei confuso. en.wikipedia.org/wiki/Hypervisor
Zoredache il

Risposte:


17

L'hypervisor è il dispositivo o il software che esegue la macchina virtuale. In genere è responsabile dell'allocazione delle risorse, fornendo l'interfaccia tra la macchina virtuale ("ospite") e il sistema host, nonché qualsiasi software di gestione.

Pertanto, se si utilizza VMware Workstation per eseguire una macchina virtuale Windows 7, VMware Workstation è l'hypervisor.


5
Perché non possono semplicemente dirlo nella documentazione di riferimento?!? Grazie!
pnongrata,

10
Non vogliono semplificarti troppo o non pagherai per il contratto di supporto. ;)
Coding Gorilla,

Quindi ... Qual è la differenza tra VMM e Hypervisor?
allyourcode

@allyourcode Dipende da quale "VMM" stai parlando e in quale contesto.
Coding Gorilla

Ottima risposta, votata. Ma che dire degli emulatori software ? Potremmo dire che l'emulatore (DOSBox) è un software che esegue la macchina virtuale?
john cj

5

Controlla questo link http://blogs.msdn.com/b/virtual_pc_guy/archive/2006/07/10/661958.aspx

La risposta è dal blog di virtualizzazione di Ben Armstrong

qui ci sono in realtà due significati per "VMM". Il primo è il "gestore della memoria virtuale" - fa parte del sistema operativo Windows e non ha nulla a che fare con la virtualizzazione del computer - e tutto ha a che fare con la gestione della memoria del sistema operativo. Questo non è ciò di cui sto discutendo oggi :-)

Il secondo significato è "Virtual Machine Monitor". Esistono diversi programmi e implementazioni che utilizzano il moniker "Virtual Machine Monitor". In parole povere: VMM è il software responsabile del monitoraggio e dell'applicazione della politica sulle macchine virtuali di cui è responsabile. Ciò significa che VMM tiene traccia di tutto ciò che accade all'interno di una macchina virtuale e, quando necessario, fornisce risorse, reindirizza la macchina virtuale a risorse o nega l'accesso alle risorse (diverse implementazioni di VMM forniscono o reindirizzano le risorse a vari livelli - ma questo è un argomento di discussione per un altro giorno).

Classicamente ci sono due tipi di VMM.

Un VMM di tipo II è uno che gira su un sistema operativo di hosting e genera quindi macchine virtuali di livello superiore. Esempi di VMM di tipo II includono l'ambiente JavaVM e .Net. Questi VMM monitorano le loro macchine virtuali e reindirizzano le richieste di risorse alle API appropriate nell'ambiente di hosting (con un livello di elaborazione intermedio).

Un VMM di tipo I è uno che viene eseguito direttamente sull'hardware senza la necessità di un sistema operativo di hosting. Le VMM di tipo I sono anche conosciute come "hypervisor", quindi l'unica vera differenza tra una VMM e un hypervisor è dove viene eseguita. La funzionalità fornita da entrambi è equa. Esempi di VMM di tipo I includono le soluzioni di virtualizzazione mainframe offerte da aziende come Amdahl e IBM e su computer moderni mediante soluzioni come virtualizzazione VMware ESX, Xen e Windows.


3

Questa è un'estensione della terminologia esistente del sistema operativo, una delle numerose alternative alla metafora seed / nut . i programmi utente sono controllati dal programma supervisore e in un sistema non virtuale è lì che le cose si fermano. Con la virtualizzazione, il supervisore è, a sua volta, controllato (o monitorato o gestito) da un programma hypervisor .

Tutti questi programmi sono software. La macchina virtuale è la finzione di una macchina su cui si verificano il supervisore e i programmi utente. Sembra hardware dall'interno.


3
Ironia della sorte, e questo è fuori tema, e se ricordo bene, il latino "super" e il greco "hyper" derivano dalla stessa parola originale e significano la stessa cosa. "Ueber" tedesco è un altro fratello. Quindi "supervisore" e "hypervisor" sono in realtà la stessa parola, tranne per il fatto che uno è tutto latino mentre l'altro è metà latino, metà greco. :-)
Andrew J. Brehm,

2
Ma in realtà, la terminologia è tutta greca per la maggior parte di noi.
Daniel R Hicks l'

1

Don Skiba sulla storia di Hypervisor :

Ero con IBM nel 1966, quando stavamo cercando di installare il nuovo System 360s. Come puoi immaginare, convertire tutto quel "vecchio codice" dai vecchi modelli 1401, 1440, 1410, 7080, 7090 è stato il più grande casino che tu abbia mai voluto vedere. Sul modello 360 65, c'era un emulatore per un paio di macchine più vecchie. In realtà, tutti i modelli 360, ad eccezione del modello 75, erano emulatori del set di istruzioni 360. Quello che era popolare per il modello 65 era l'emulatore per IBM 7080. Tuttavia, è stato necessario dedicare la macchina alla modalità 360 o alla modalità 7080. Ciò non stava rendendo molto felici i nostri clienti.

Si è scoperto che c'erano alcuni registri speciali sul modello 65 che erano inattivi, ma attivi sul modello 67 che erano usati per la condivisione del tempo e, infine, un sistema operativo virtuale, CMS. Ho convinto l'ingegnere sul modello 65 che potremmo usare quei registri per passare da programmi in esecuzione nella metà inferiore della memoria a programmi in esecuzione nella metà superiore e entrambe le metà potrebbero funzionare in modalità 360 o 7080. Avevamo solo bisogno di un "piccolo" codice per eseguire lo scambio, l'impostazione della modalità e l'allocazione delle risorse (I / O). Ho convinto un ingegnere di sistema a Filadelfia, che aveva un cliente che aveva disperatamente bisogno di questa funzione, per scrivere il codice. All'epoca abbiamo lanciato molti nomi per il codice. Ho suggerito che "hypervisor" potrebbe essere appropriato, perché prima del 360 non c'erano "sistemi operativi" e tutti i sistemi precedenti avevano "supervisori". Quindi, "hypervisor" sembrava appropriato e il nome rimase.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.