Che cos'è un hypervisor?

Un hypervisor è un tipo unico di software che consente a un computer di eseguire più di un sistema operativo (SO). Attraverso un processo noto come virtualizzazione, il software induce ciascun sistema operativo a pensare di avere accesso esclusivo a un determinato set di hardware. Si trova tra l'hardware fisico e il sistema operativo e presenta un set virtuale di hardware a tutti gli altri software in esecuzione sulla macchina. Gestisce anche il flusso di informazioni tra software, hardware virtualizzato e hardware fisico. Questo tipo di software viene utilizzato sia in ambito consumer che aziendale.

Nella maggior parte dei casi, il sistema operativo di un computer viene eseguito in uno stato altamente privilegiato in cui ha accesso illimitato all'hardware della macchina mentre le applicazioni vengono eseguite in uno stato meno privilegiato e devono fare affidamento sul sistema operativo. Questi diversi livelli di privilegi di accesso all'hardware sono noti come anelli, con il sistema operativo tradizionalmente in esecuzione nell'anello 0; le applicazioni utente vengono eseguite negli anelli 1–3, che hanno meno privilegi. Questo modello funziona bene per la maggior parte del tempo, ma cade completamente a pezzi quando si tenta di eseguire contemporaneamente più di un sistema operativo su un singolo computer. Un hypervisor risolve questo problema utilizzando una tecnica chiamata virtualizzazione.

La virtualizzazione non è una nuova idea, ma è diventata una sorta di parola d'ordine dalla metà degli anni 2000, poiché le aziende e l'industria dell'informatica (IT) hanno realizzato il suo potenziale per ridurre i costi e aumentare l'efficienza. Esistono diversi approcci alla virtualizzazione, ma l'idea di base è quella di creare set simulati di hardware che sono spesso noti come macchine virtuali. Nel caso di un hypervisor, che può anche essere chiamato monitor di una macchina virtuale, ogni macchina virtuale contiene un sistema operativo "guest". L'hypervisor stesso può essere eseguito direttamente sull'hardware fisico, nel qual caso è noto come tipo "bare metal" o all'interno di un sistema operativo host come hypervisor "software".

Gli hypervisor devono utilizzare alcune tecniche molto sofisticate per gestire i loro sistemi operativi guest e assicurarsi che non siano in conflitto tra loro. Poiché un sistema operativo all'interno di una macchina virtuale non è a conoscenza del fatto che è stato privato dei privilegi dell'anello 0, potrebbe tentare di eseguire funzioni limitate senza autorizzazione. In questi casi, l'hypervisor può intercettare una funzione prima che raggiunga l'hardware, eseguire le istruzioni in modo tale da non danneggiare gli altri sistemi operativi in ​​esecuzione sull'hardware e restituire il risultato al sistema operativo originale. Conosciuta come una tecnica di "trappola ed emula", questo è solo uno dei tanti concetti avanzati unici nel mondo della virtualizzazione.

Poiché questo tipo di software è diventato più importante e redditizio, sempre più aziende hanno cercato modi per facilitare il carico su un hypervisor e fornire prestazioni migliori. I fornitori di software hanno modificato i loro sistemi operativi per essere consapevoli delle macchine virtuali su cui sono in esecuzione, il che significa un minor numero di scenari di tipo trap-and-emulate. I fornitori di hardware hanno aggiunto il supporto per un nuovo livello di privilegi a volte noto come anello -1. I programmi software più recenti possono sfruttare una o entrambe queste tecniche per aumentare le prestazioni.

Gli hypervisor possono ora essere trovati in una varietà di prodotti sia a livello di consumatore che di impresa. I prodotti di consumo che consentono l'esecuzione di un sistema operativo all'interno di un altro spesso utilizzano un hypervisor di tipo software. Nello spazio aziendale, il software consente di consolidare server sottoutilizzati con sistemi operativi diversi. Gli sviluppatori di software potrebbero utilizzare questo approccio per eseguire più istanze di sistemi operativi simili o addirittura identici al fine di verificare problemi di compatibilità.

ALTRE LINGUE

Questo articolo è stato utile? Grazie per il feedback Grazie per il feedback

Come possiamo aiutare? Come possiamo aiutare?