Introduzione alle virtual machine


Le virtual machine servono per astrarre dell’hardware di un computer per poter eseguire più sistemi operativi sullo stesso computer.

Lanciando un sistema operativo virtuale pare che questo stia girando su un calcolatore fisico con una CPU e la sua memoria dedicata.

Principalmente le virtual machine vengono usate per usare più sistemi operativi sulla stessa macchina concorrentemente (contemporaneamente).

Siccome l’hardware presente sul computer è condiviso tra il sistema operativo ospitante e le macchine virtuali, si possono avere dei conflitti sull’accesso alla varie periferiche.

Una delle maggior difficoltà è la gestione dei dischi: per questo motivo ogni virtual machine deve avere un suo disco virtuale, talvolta chiamato minidisc; questo disco virtuale è costituito da un file presente sul computer ospitante, file che viene visto dalla macchina virtuale come spazio disco su cui memorizzare le informazioni.

Una virtual machine non è un computer fisico, ma offre hardware virtuale. Talvolta durante le fasi di I/O (scrittura su disco, accesso al file system) si possono ottenere prestazioni diverse da quelle che si otterrebbero su un calcolatore reale: le performance possono essere migliori (accesso al file system) oppure inferiori, quando si effettuano passaggi di modalità utente-sistema, in fase di interpretazione.

Per migliorare le prestazioni si può adoperare hardware ottimizzato per la virtualizzazione come certe CPU ( processori IBM, Intel basati su Core Duo…).

Uno dei vantaggi forniti dalle virtual machine è la sicurezza: una macchina virtuale è completamente isolata e indipendente; un imprevisto crash di una machine non comporta il crash anche delle altre tanto meno del sistema operativo ospitante, per tanto non è necessario riavviare il computer ma solo terminare la virtual machine e avviarla nuovamente.

Si possono condividere informazioni tra le macchine virtuali o condividendo il loro disco virtuale oppure creando una rete virtuale.

Una virtual machine è estremamente utile per provare programmi per esempio evitando di danneggiare, in caso di errore, il file system. Si possono provare programmi su più sistemi operativi in modo più rapido, basta avviare una virtual machine e installare il sistema operativo.

I più importanti software che permettono di virtualizzare sono: VMware, Xen, VirtualBox, Qemu, VirtualPC…