Virtualizzazione
Per discutere degli argomenti qui descritti, partecipa alla board Ubuntu su macchina virtuale del forum. |
Introduzione
Con la virtualizzazione è possibile eseguire in un sistema operativo, detto sistema host, uno o più sistemi operativi alternativi detti sistemi guest come Windows, Linux, BSD, Solaris o macOS, grazie all'ausilio di macchine virtuali.
Alcuni termini fondamentali da conoscere sono:
Host: si riferisce al sistema ospitante, ovvero quello che è installato sulla macchina fisica.
Guest: indica invece il sistema ospite, quello che viene eseguito all'interno della macchina virtuale.
VM (Virtual Machine, ovvero macchina virtuale): indica la configurazione hardware simulata più il sistema operativo installato al suo interno.
Per utilizzare un sistema operativo proprietario in una macchina virtuale è necessario avere una licenza di utilizzo.
Se si acquista un computer con una licenza di utilizzo di Windows (o un altro sistema proprietario) preinstallato, generalmente questa licenza non permette l'installazione dello stesso su un'altra macchina come il virtualizzatore. La licenza Microsoft OEM copre soltanto la macchina fisica su cui il sistema è stato preinstallato e non ne consente il trasferimento su un'altra macchina, anche se virtualizzata nello stesso computer.
In alcuni computer potrebbe essere necessario abilitare la funzionalità di virtualizzazione nel BIOS. In quest'ultimo cercare voci con termini quali «Virtualization», «Intel VT-x», «AMD-V», «Hypervisor», «Hyper-v», ecc. Nel dubbio consultare il manuale della propria scheda madre.
Pro e contro nell'utilizzo della virtualizzazione
La virtualizzazione può comportare numerosi vantaggi, ad esempio:
- possibilità di eseguire due o più sistemi contemporaneamente;
indipendenza reciproca di sistemi guest e host. Ogni sistema sarà indipendente dagli altri garantendo una solida affidabilità in termini di servizi offerti (il crash di ogni macchina virtuale non coinvolgerà gli altri guest);
- installazione di diversi sistemi operativi, senza dover partizionare il disco, in un ambiente sicuro (la macchina virtuale), senza rischiare di intaccare i propri dati;
- possibilità di testare sistemi o software in fase di sviluppo che potrebbero compromettere, o addirittura danneggiare, l'hardware del computer utilizzato;
- possibilità di testare la compatibilità di un proprio software o sito con diversi sistemi operativi;
installazione di programmi disponibili soltanto per un altro sistema operativo (esempio: Autocad);
- vantaggi in termini di flessibilità e portabilità, in quanto molti tra i software più recenti integrano funzionalità avanzate (backup e/o clonazione di VM, trasferimento di VM da un sistema guest ad un altro, scalabilità e condivisione del carico di risorse tramite gestione attraverso rete locale e/o server e/o cloud, ecc.)
Esistono tuttavia delle limitazioni nell'utilizzo di sistemi virtualizzati:
- parte dell'hardware (scheda madre, scheda video, controller dei dischi) è emulata, quindi le prestazioni possono essere inferiori (soprattutto su scheda video e CPU);
- maggior impiego di risorse su sistema host, dovendo dedicare una parte di CPU e RAM al sistema guest; ne consegue che computer con poca RAM e con pochi core (fisici o logici) avranno difficoltà nel virtualizzare sistemi operativi con requisiti hardware più alti.
Software per virtualizzazione
Di seguito sono elencati alcuni programmi utili per emulazione e/o per gestire macchine virtuali, installabili in Ubuntu e derivate:
KVM: installare e configurare KVM.
VirtualBox: come installare e configurare VirtualBox.
Qemu: installazione di Ubuntu su emulatore Qemu.
Quickemu: installazione e configurazione di Quickemu.
VirtManager: gestore di macchine virtuali virt-manager.
Applicazioni
Anche se le seguenti applicazioni non sono dei sistemi di virtualizzazione, sono utili in molti casi per eseguire programmi Windows:
Wine: ricrea le API di Windows, cioè le librerie per creare i programmi grafici di Windows.
PlayOnLinux: interfaccia grafica di Wine che consente l'esecuzione e l'installazione di applicazioni, in particolare giochi.
Cedega: programma a pagamento, funziona per molti giochi.
Altre
OpenMoko: installare OpenMoko con Qemu.
Ulteriori risorse
What is a Virtual Machine? (articolo in inglese)