Che cos'è una macchina virtuale: tipi e vantaggi

Prova Il Nostro Strumento Per Eliminare I Problemi





Il concetto di macchina virtuale è stato introdotto intorno al 1960. È l'evoluzione della tecnica del time-sharing. Nel metodo del time-sharing, ogni programma ha pieno accesso a tutte le risorse del computer ma alla volta verrà eseguito un solo programma. Il sistema passa da un programma all'altro in intervalli di tempo mentre salva e ripristina ogni volta gli stati del programma. Con l'uso del metodo di condivisione del tempo, più utenti possono utilizzare il sistema informatico contemporaneamente. I centri di ricerca IBM hanno sviluppato il metodo di condivisione del tempo come macchine virtuali. CP-67 è stato il primo disponibile architettura della macchina virtuale . Sono stati sviluppati sistemi con più macchine virtuali su un singolo host e una singola macchina virtuale su più host.

Prima di avviare qualsiasi nuovo hardware tecnologia , viene prima testato sull'emulatore per rilevare, ricreare e riparare i difetti nei passaggi necessari di progettazione e fissaggio. Allo stesso modo, prima di introdurre qualsiasi nuovo software, viene simulato per verificare eventuali errori ed eseguirne il debug. Per fare questo compito, un sistema che può fungere da sostituto per l'ambiente principale per costruire nuova tecnologia. È qui che entrano in gioco le macchine virtuali. Agisce come l'emulazione del sistema informatico fornendo la piena funzionalità del sistema fisico.




Cos'è una macchina virtuale?

Con l'introduzione di nuove tecnologie e di modelli di ricerca più recenti, vengono lanciati molti prodotti hardware e software. Molti software dipendono dalla piattaforma, quindi a volte è difficile eseguirne il debug o controllarli a causa delle risorse hardware limitate.

Una VM (macchina virtuale) è un'emulazione di un sistema informatico, in cui queste macchine utilizzano architetture di computer per fornire la funzionalità di un computer fisico. Il dispositivo fisico su cui funzionano le macchine virtuali è noto come Host, mentre le macchine virtuali sono note come Guest. Un singolo host può avere più numeri di ospiti.



Tipi di macchina virtuale

La macchina virtuale funziona come un computer ed è in modalità sandbox dal resto del sistema host. Il software all'interno del guest non può apportare modifiche al software del sistema host. Pertanto, i file dei virus possono essere testati utilizzando una macchina virtuale senza influire sul sistema informatico principale. Il software per computer che crea ed esegue la macchina virtuale è noto come Hypervisor. In base alle loro funzioni, esistono due diversi tipi di macchine virtuali: macchine virtuali di sistema e macchine virtuali di processo.

1). Macchine virtuali di sistema


Questi tipi di VM forniscono la virtualizzazione completa. Agendo come sostituto della macchina reale, forniranno funzionalità per eseguire un intero sistema operativo . Le risorse hardware vengono condivise e gestite, formando più ambienti sul sistema host. Questi ambienti sono isolati l'uno dall'altro ma esistono sullo stesso host fisico. Pertanto, questi forniscono la condivisione del tempo tra diversi sistemi operativi single-tasking.

Per consentire la condivisione della memoria tra diverse macchine virtuali su un computer sistema operativo , possono essere applicati sistemi di overcommitment della memoria. Le pagine di memoria con contenuto identico possono essere condivise tra più macchine virtuali presenti sullo stesso host fisico. Ciò è molto utile per le pagine di sola lettura.

2). Process Virtual Machines (VM)

Queste VM sono anche note come macchine virtuali dell'applicazione, ambienti di runtime gestiti. Questo tipo di VM viene eseguito come una normale applicazione all'interno del sistema operativo dell'host, supportando un singolo processo. Viene creato con l'avvio del processo e viene distrutto al termine del processo. Viene utilizzato per fornire una piattaforma indipendente programmazione ambiente al processo, consentendogli di essere eseguito nello stesso modo su una qualsiasi delle altre piattaforme.

Processo-macchina virtuale

Processo-macchina virtuale

Questi sono implementati utilizzando interpreti e forniscono astrazioni di alto livello. Questi sono comunemente usati per la programmazione Java che utilizza la macchina virtuale Java per l'esecuzione dei programmi. C'è un caso speciale di una VM di processo che astrae il meccanismo di comunicazione di un cluster di computer. Questi contengono un processo per macchina fisica nel cluster. Questi aiutano il programmatore a concentrarsi sull'algoritmo invece che sul processo di comunicazione fornito dall'interconnessione e macchina virtuale nel sistema operativo . L'applicazione in esecuzione su queste VM ha accesso a tutti i servizi del sistema operativo. La macchina virtuale parallela, l'interfaccia di passaggio dei messaggi sono esempi di queste macchine virtuali (VM).

Architettura

Il software runtime è il software di virtualizzazione che implementa Process VM. È implementato a livello di API dell'architettura del computer sopra il livello combinato di sistema operativo e hardware. Questo emula le istruzioni a livello di utente e le chiamate del sistema operativo o della libreria. Per la macchina virtuale di sistema, il software di virtualizzazione è chiamato Virtual Machine Monitor (VMM). Questo software è presente tra la macchina hardware host e il software guest. VMM emula l'ISA dell'hardware consentendo al software guest di eseguire un ISA diverso.

Vantaggi

Alcuni dei vantaggi delle macchine virtuali sono i seguenti:

  • Le macchine virtuali forniscono la compatibilità del software al software in esecuzione su di esso. Quindi tutto il software scritto per l'host virtualizzato verrà eseguito anche sulla macchina virtuale.
  • Fornisce isolamento tra diversi tipi di sistemi operativi e processi. Pertanto il sistema operativo del processore in esecuzione su una macchina virtuale non può modificare i processi delle altre macchine virtuali e del sistema host.
  • Questi forniscono l'incapsulamento e il software presente su una macchina virtuale può essere modificato e controllato.
  • Per l'host del sistema multi-operativo, questi forniscono varie funzionalità come nessun doppio avvio, trasferimento di file tra macchine virtuali, l'errore in un sistema operativo non influisce sull'altro sistema operativo presente sull'host, il sistema operativo freash può essere aggiunto facilmente.
  • Questi forniscono una buona gestione del software come questi possono eseguire uno stack software completo della macchina host, eseguire il sistema operativo legacy, ecc.
  • Qui è possibile condividere le risorse Hardware con stack software indipendenti e per bilanciare il carico, le macchine virtuali possono essere trasferite sui diversi computer.

Pertanto, i moderni sistemi informatici stanno diventando più complessi che contengono vari componenti software e hardware strettamente interagenti. In questo caso, la virtualizzazione funge da tecnologia di interconnessione. Le macchine virtuali creano sottosistemi incompatibili per lavorare insieme. Fornisce inoltre un uso più flessibile ed efficace delle risorse hardware tra più sistemi operativi. Questi forniscono l'interoperabilità tra hardware, software di sistema e applicazioni. Quali sono le differenze tra il processo Macchina virtuale e macchina virtuale di sistema?