IL SOFTWARE
Articoli, tips, recensioni e news sul mondo del software

VirtualBox: virtualizzare il sistema operativo gratuitamente.

VirtualBox: virtualizzare il sistema operativo gratuitamente.
VirtualBox è un software di virtualizzazione commerciale proprietario (con una versione ridotta distribuita secondo i termini della GNU General Public License) per architettura  x86 che supporta Windows, GNU/Linux e Mac OS X  (beta) come sistemi operativi host, ed è in grado di eseguire Windows, GNU/Linux, OS/2 Warp, OpenBSD e FreeBSD  come sistemi operativi guest.

Nel gennaio  2007 ne è stata rilasciata una versione ridotta.

VirtualBox supporta la soluzione per la virtualizzazione hardware di Intel VT-x ed, in via sperimentale la soluzione di AMD, AMD-V, ma non usa nessuna delle due per impostazione predefinita.

Il 12 febbraio 2008 Sun Microsystem ha acquistato Innotek GmbH, l'azienda tedesca sviluppatrice di VirtualBox.
Il 27 Gennaio 2010 è stata perfezionata l'acquisizione di Sun da parte di Oracle Corporation.
VirtualBox emula i seguenti componenti hardware:
    * Gli hard disk vengono emulati con uno speciale formato contenitore chiamato "Virtual Disk Images" (file VDI), che è, al momento, incompatibile con i formati utilizzati dalle altre soluzioni di virtualizzazione. Sono comunque supportati i file VMDK (VMware ed altri) e VHD (Microsoft). Inoltre, VirtualBox ha la caratteristica peculiare di poter collegarsi a supporti iSCSI, e di poterli utilizzare come dischi virtuali.

    * Come scheda grafica, per impostazione predefinita VirtualBox fornisce una periferica VESA con 12 MB di RAM configurabili. Un driver video speciale viene fornito dalle Guest Additions (per sistemi guest Windows e GNU/Linux): questo driver conferisce maggiore performance e la possibilità di regolare la risoluzione del sistema guest quando la finestra della macchina virtuale viene ridimensionata. Dalla versione 2.1.0 è inoltre possibile eseguire applicazioni che utilizzano le librerie OpenGL sulla macchina client sfruttando direttamente la scheda video del computer host.

    * Come scheda di rete Ethernet, VirtualBox fornisce le seguenti NIC:
          o AMD PCnet PCI II (Am79C970A);
          o AMD PCnet-Fast III (Am79C973) (default);
          o Intel PRO/1000 MT Desktop (82540EM);
          o Intel PRO/1000 T Server (82543GC);
          o Intel PRO/1000 MT Server (82545EM).

    * Come scheda audio, VirtualBox mette a disposizione una periferica Intel ICH AC'97 oppure una SoundBlaster 16.

    * Nell'edizione proprietaria, a differenza di quella free, viene emulato un controller USB, così che qualunque periferica USB collegata al sistema host può essere vista da quello guest. Se VirtualBox svolge il ruolo di server RDP, può anche utilizzare periferiche USB connesse al client RDP remoto come se fossero connesse all'host.

VirtualBox tenta di eseguire quanto più codice guest possibile in maniera nativa (vale a dire sul processore host). Questo va bene per il codice in modalità utente che funziona a ring 3 (nel contesto dell'architettura ring di Intel). Tuttavia. il codice ring 0 del sistema guest, che contiene di solito decine di istruzioni privilegiate, dovrà essere gestito in modo particolare. VirtualBox usa un approccio abbastanza inconsueto per risolvere il problema: convince il sistema operativo guest ad eseguire il codice ring 0 in ring 1, normalmente non utilizzato sull'architettura Intel.

Se dovessero sorgere problemi, VirtualBox ha un ricompilatore dinamico, come gli altri software di virtualizzazione. Il ricompilatore di VirtualBox si basa su QEMU. Inoltre, VirtualBox disassembla e, in alcuni casi, aggiunge delle patch al codice guest per evitare ricompilazioni future, dal momento che sono abbastanza onerose. In questo modo, sia il codice a ring 3 che quello a ring 0 può essere eseguito in maniera nativa nella maggior parte delle occasioni, e con questa combinazione di ricompilazione "tradizionale" e patch per il codice VirtualBox raggiunge una velocità simile a quella di VMware Workstation.

 Differenze tra la versione proprietaria e quella libera.

Ci sono due versioni di VirtualBox. Una, più completa in termini di caratteristiche, è software proprietario che permette l'utilizzo gratuito del software per uso personale ed educativo.Le licenze per utilizzo commerciale del pacchetto completo di VirtualBox possono essere acquistate da Innotek.

Una seconda versione, chiamata VirtualBox Open Source Edition (OSE), è stata rilasciata secondo i termini della GNU General Public License. Questa versione è priva di alcune caratteristiche:

    * Il server Remote Display Protocol (RDP) integrato.
    * Il supporto USB (vedi sopra) e la possibilità di eseguire il server RDP con il supporto di periferiche USB remote.
    * Il supporto iSCSI per dischi rigidi virtuali (vedi sopra)

Screenshots.

VirtualBox for FreeBSD. This screenshot shows a first version running Ubuntu. NAT networking works.
VirtualBox for FreeBSD. This screenshot shows a first version capable of running Windows.
VirtualBox for Mac OS X. One virtual machine is running in seamless mode on Leopard. Note the realtime preview of the virtual machine in the dock.
VirtualBox for Mac OS X, currently in beta test. Two virtual machines are visible: one with Windows Vista, another with Gentoo Linux.
Creating a new, empty VM for installing Windows Vista.
The new VM in the VirtualBox main window. Note that an ISO file (containing the Vista setup CD) has been mounted as the VM's CD-ROM drive.
After starting the VM, it boots off the virtual CD-ROM (the ISO file with the Vista setup), and Vista Setup starts up.
Vista is installing into the virtual hard drive.
Vista install complete: the log-on screen.
Compiling VirtualBox on Ubuntu Edgy Eft in VirtualBox on Windows XP.
Details of a snapshot performed after Vista installation. We can revert the virtual machine to this snapshot at a later time.
Damn Small Linux 2.0 works damn well in VirtualBox!
The Virtual Disk Manager allows you to work with VM images.
VirtualBox in Vista inside VirtualBox on XP? Perhaps some day...
A community-based effort is underway to port VirtualBox to OS/2 hosts. This screenshot shows a first alpha version.