Hypervisor

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca

In informatica l'hypervisor (in italiano conosciuto come ipervisore), conosciuto anche come virtual machine monitor (VMM), è il componente centrale e più importante di un sistema basato sulle macchine virtuali. Un computer sul quale venga eseguito un hypervisor che a sua volta controlla una o più macchine virtuali è detto macchina host, e ogni macchina virtuale è detta macchina guest. Il compito di un hypervisor è quello di presentare all'utente i sistemi operativi delle macchine guest e di gestire la loro esecuzione. Grazie ad un hypervisor, su una macchina host possono essere in esecuzione contemporaneamente diverse macchine guest, su ognuna delle quali può girare un sistema operativo diverso che ha il controllo sulle risorse hardware virtualizzate rese disponibili dall'hypervisor. Questo tipo di virtualizzazione è diversa dalla virtualizzazione a livello di sistema operativo, dove tutte le istanze (dette anche container) devono essere eseguite in un unico kernel. Il termine inglese hypervisor è un rafforzativo di supervisor, usato tradizionalmente per il kernel di un sistema operativo. In altre parole si vuole indicare che un hypervisor è il supervisor di un supervisor. Il termine è nato approssimativamente nel 1970[1], mentre prima si usava il termine Control Program.

Descrizione[modifica | modifica wikitesto]

La virtualizzazione[modifica | modifica wikitesto]

Lo stesso argomento in dettaglio: Virtualizzazione.

La potenza di calcolo e la complessità dei moderni sistemi informatici induce a trovare nuove vie per facilitarne la gestione ed ottimizzarne l'utilizzo. Spesso i calcolatori che offrono servizi (server, non "desktop") sono sotto utilizzati per questioni di sicurezza e praticità: viene, di norma, installata una sola applicazione per sistema operativo e dunque una sola applicazione per calcolatore. Questa condizione implica la presenza di più calcolatori, che occupano spazio ed impiegano ingenti risorse di denaro, nonché di gestione e manutenzione.

La virtualizzazione è la tecnologia emergente che sembra raccogliere interesse soprattutto da parte delle aziende, che permette ad un server fisico ospitante di gestire sistemi operativi andando ad emulare le istanze delle macchine non più fisiche, ma appunto virtuali, e dei relativi sistemi operativi ospitati; questo agevola il mantenimento di un insieme di applicazioni su un singolo server e con un maggior livello di affidabilità. L'hypervisor è il componente chiave per un sistema basato appunto sulla virtualizzazione.

Compiti dell'hypervisor[modifica | modifica wikitesto]

Il virtual machine monitor (es. Xen, open source monitor di macchine virtuali, VMware ESX attuale standard di virtualizzazione in ambito enterprise o Hyper-V monitor di macchine virtuali di Microsoft) deve operare in maniera trasparente senza pesare con la propria attività sul funzionamento e sulle prestazioni dei sistemi operativi.

Svolge attività di controllo al di sopra di ogni sistema, permettendone lo sfruttamento anche come monitor e debugger delle attività dei sistemi operativi e delle applicazioni in modo da scoprire eventuali malfunzionamenti ed intervenire celermente. I requisiti richiesti a questo scopo sono quelli di compatibilità, performance e semplicità. Gli ambiti di applicazione delle macchine virtuali sono molteplici ed eterogenei fra loro, poiché la virtualizzazione sta diventando sinonimo di sicurezza informatica ed affidabilità del sistema.

L'hypervisor può controllare ed interrompere eventuali attività pericolose, e ciò fa sì che si usino macchine virtuali sempre più frequentemente in ambito di ricerca e collaudo di software. Tra gli altri, i vantaggi della virtualizzazione che i sostenitori della tecnologia vedono in questa soluzione quando ben progettata sono di riduzione e controllo dei costi consolidando l'hardware. L'hypervisor può allocare le risorse dinamicamente quando e dove necessario, ridurre in modo drastico il tempo necessario alla messa in opera di nuovi sistemi, isolare l'architettura nel suo complesso da problemi a livello di sistema operativo ed applicativo, abilitare ad una gestione più semplice di risorse eterogenee e, come già accennato, facilitare collaudo e debugging di ambienti controllati.

Classificazione[modifica | modifica wikitesto]

La classificazione si fa risalire all'articolo pubblicato nel 1974 da Gerald J. Popek e Robert P. Goldberg, in cui sono stati individuati due tipi di hypervisor:[2]

Nella realtà la distinzione tra questi due tipi non è sempre definita in modo chiaro. Ad esempio, Kernel-based Virtual Machine (KVM) di Linux e bhyve di FreeBSD sono moduli del kernel[5] che in pratica trasformano un sistema operativo host in un hypervisor di tipo-1.[6]. In modo simile, dato che Linux e FreeBSD sono considerati sistemi operativi per uso generico, le cui applicazioni sono in competizione per le risorse delle macchine virtuali, KVM e bhyve possono essere classificati come hypervisor di tipo-2.[7]

Note[modifica | modifica wikitesto]

  1. ^ (EN) How did the term "hypervisor" come into use?, su programmers.stackexchange.com.
  2. ^ (EN) Gerald J. Popek e Robert P. Goldberg, Formal requirements for virtualizable third generation architectures, in Communications of the ACM, vol. 17, n. 7, 1974, DOI:10.1145/361011.361073.
  3. ^ (EN) antsleOS Architecture - antsle Docs, su docs.antsle.com. URL consultato il 28 giugno 2018 (archiviato dall'url originale il 7 aprile 2019).
  4. ^ (EN) POWER Hypervisor, su ibm.com. URL consultato il 9 maggio 2020.
  5. ^ (EN) Michael Dexter, Hands-on bhyve, su CallForTesting.org. URL consultato il 24 settembre 2013.
  6. ^ (EN) Charles Graziano, A performance analysis of Xen and KVM hypervisors for hosting the Xen Worlds Project, su lib.dr.iastate.edu, Iowa State University, 2011. URL consultato il 29 gennaio 2013.
  7. ^ (EN) Beth Pariseau, KVM reignites Type 1 vs. Type 2 hypervisor debate, in SearchServerVirtualization, TechTarget, 2011. URL consultato il 29 gennaio 2013.

Voci correlate[modifica | modifica wikitesto]

Altri progetti[modifica | modifica wikitesto]

Collegamenti esterni[modifica | modifica wikitesto]