Macchine Virtuali
Docente: Fabio Tordini
Email: [email protected]
Macchine Virtuali
macchine virtuali e virtualizzazione
• introduzione
• architettura
• utilizzi
VirtualBox
• installazione e panoramica (interattivo)
Linux su macchina virtuale
• Ubuntu su VirtualBox (interattivo)
Macchina Virtuale (VM)
• applicazione che crea un ambiente virtualizzato
tra computer fisico e utente
– emula macchina fisica (risorse HW)
– permette l'esecuzione di applicazioni e OS
Macchina Virtuale (VM)
due diversi tipi
• Process VM
– dal punto di vista OS, VM è singola applicazione
– sistemi runtime (es: Java Virtual Machine)
• System VM
– intero sistema virtualizzato
– permette di eseguire OS
Virtualizzazione
• astrarre le componenti fisiche di un sistema,
rendendole disponibili come risorse virtuali
– maggiore flessibilità
– migliore sfruttamento risorse
• software eseguito su risorse virtuali
• diversi approcci di virtualizzazione
– totale (emulazione)
– parziale
– paravirtualizzazione
Virtual Machine Monitor (VMM)
• software che si occupa della virtualizzazione
delle risorse
– hypervisor
• fornisce ad ogni VM l'illusione che un sistema
fisico sia a sua disposizione
Virtual Machine Monitor (VMM)
Macchina fisica
Hardware
• processori, memoria,
dispositivi I/O, ecc.
• risorse spesso poco utilizzate
Software
• dipendente dall'hardware
• sistema operativo singolo
• OS gestisce risorse hardware
Macchina virtuale
Astrazione Livello Hardware
• hardware virtuale: processori,
memoria, dispositivi I/O, ecc.
Software di Virtualizzazione
• indipendente dall'hardware e
dal OS originario
• replica risorse hardware per
ogni VM
• gestione ottimale delle risorse
• VM isolate ed indipendenti
Macchina virtuale (2)
Sicurezza
• eseguire più VM su un singolo PC
• bug, virus ed errori non intaccano altre VM
• ripartizione ottimale risorse hardware
Compatibilità
• indipendente dall'hardware
• trasportabile e replicabile su diversi computer
• esecuzione vecchie applicazioni e OS obsoleti
Utilizzi
Test e sviluppo
• verifica software su piattaforme diverse
• creazione librerie e pacchetti software ad-hoc
Business
• replica e riutilizzo di dati e sistemi
• servizi multipli in una singola macchina
Sicurezza
• protezione e isolamento
Svantaggi
Latenza hardware
• I/O (RAM, Hard Disk)
• grafica
Supporto hardware
• periferiche non virtualizzabili (Bluetooth,
GPU, ecc.)
Proliferazione
• gestione risorse e sicurezza più difficili
VirtualBox
VirtualBox
valido programma di virtualizzazione
• open source, multi-piattaforma
• gratis
https://www.virtualbox.org/
altre soluzioni
•
•
•
•
Parallels (Windows/Mac/Linux, $79.99)
VMware (Windows/Linux, Basic: gratis, Premium: $189)
QEMU (Linux, gratis)
Windows Virtual PC (gratis)
VirtualBox
installare VirtualBox e creare una nuova VM
VirtualBox
verificare impostazioni VM, avviare VM
Linux
Linux
installare Linux su VM
• scaricare Linux (Ubuntu, LinuxMint, altri...)
– cercare da Google la distribuzione preferita
– scaricare versione appropriata (32bit / 64bit)
notare estensione file .ISO
• creare nuova VM per nuovo OS
• avviare VM e selezionare ISO da installare
• avviare installazione
un aiuto
https://www.virtualbox.org/manual/ch01.html#gui­createvm
Linux
installare Linux su VM
• facile e intuitivo
• leggere e seguire le istruzioni di installazione
utile guida, in italiano, per l'installazione di Ubuntu:
http://wiki.ubuntu­it.org/Installazione/Grafica
Link Utili
Link utili
VirtualBox (scegliere piattaforma corretta)
• https://www.virtualbox.org/wiki/Downloads
Ubuntu (scegliere versione e architettura 32/64 bit)
• http://www.ubuntu.com/download/desktop
Linux Mint (una delle alternative ad Ubuntu)
• http://www.linuxmint.com/download.php
– scegliere ambiente grafico preferito e architettura 32/64 bit
Link utili
libro su Macchine Virtuali (in inglese)
• Virtual Machines: Versatile Platforms for Systems and Processes
– di James Edward Smith e Ravi Nair. Elsevier, 2005
articolo di Smith e Nair (in inglese)
• L'architettura delle macchine virtuali
VirtualBox – User Manual (in inglese)
• https://www.virtualbox.org/manual/UserManual.html