Una macchina virtuale (VM) è un "computer all'interno del tuo computer". Si tratta di un software che si comporta come un PC fisico completo di CPU virtuale, memoria, archiviazione e rete, in modo da poter eseguire un altro sistema operativo (OS) in una finestra sul desktop o su un server. Considerala come una sandbox sicura e autonoma in cui è possibile installare app, provare impostazioni o eseguire software obsoleti senza toccare il sistema principale.
Dietro le quinte, un programma chiamato hypervisor crea e gestisce la VM. Esso suddivide l'hardware reale e ne assegna parti a ciascuna macchina virtuale. Il sistema operativo guest all'interno della VM crede di avere l'intero PC a sua disposizione, anche se in realtà condivide le risorse con il sistema host e con qualsiasi altra VM in esecuzione. Un trucco ingegnoso, vero?
Per essere precisi, le VM virtualizzano l'hardware, mentre i container virtualizzano lo spazio utente del sistema operativo. Una VM include un sistema operativo guest completo ed è più isolata, il che è ottimo per una forte separazione e per l'esecuzione di sistemi operativi diversi. I container condividono il kernel del sistema operativo host, quindi sono più leggeri e si avviano più velocemente, il che è perfetto per il packaging e la distribuzione di applicazioni. Entrambi hanno la loro utilità: le VM sono come appartamenti completi, mentre i container sono efficienti monolocali sullo stesso piano.
Dipende dalle tue esigenze. Se stai testando software, eseguendo file non attendibili, mantenendo separati l'ambiente di lavoro e quello personale, o se hai bisogno di un sistema operativo specifico per un'applicazione specifica, una VM è la soluzione ideale. Per la navigazione web quotidiana o i giochi, di solito è preferibile utilizzare il sistema operativo host. È possibile giocare in una VM, ma le prestazioni e il pass-through hardware diventano rapidamente complessi, quindi non è la prima scelta della maggior parte delle persone.
Non è una novità, è solo una questione di modernità. La maggior parte delle CPU dell'ultimo decennio include il supporto alla virtualizzazione (cerca Intel VT‑x/VT‑d o AMD‑V) e almeno 8-16 GB di RAM semplificano la vita. Anche lo spazio di archiviazione è utile, poiché i file del disco VM possono essere pesanti. Sui laptop, quando una VM è sotto carico, è normale che la ventola sia più rumorosa e che il consumo della batteria aumenti. Sui desktop e sui server, è possibile eseguire comodamente diverse VM se si dispone di RAM e spazio di archiviazione sufficienti.
Le VM sono fortemente isolate, motivo per cui sono così popolari nei data center. Detto questo, non esistono soluzioni magiche: mantieni aggiornati i sistemi operativi host e guest, utilizza hypervisor affidabili e tratta le VM con la stessa attenzione alla sicurezza che useresti in qualsiasi altro contesto. Gli snapshot sono tuoi alleati: creane uno prima di apportare modifiche importanti, così potrai correggere eventuali errori senza problemi.
Sui desktop sono disponibili strumenti come Hyper‑V, VirtualBox, VMware Workstation e Parallels. Nel mondo dei server, sono comuni KVM, VMware ESXi e Hyper-V. La scelta giusta dipende dal sistema operativo, dall'hardware e dalla necessità o meno di funzionalità come PCIe/GPU pass‑through, migrazione live o storage condiviso.