Oracle VM VirtualBox (precedentemente noto come Sun VirtualBox, Sun xVM VirtualBox e Innotek VirtualBox), è un software gratuito e open source per l'esecuzione di macchine virtuali (con una versione ridotta distribuita secondo i termini della GNU General Public License) per architettura x86 e 64bit che supporta Windows, GNU/Linux e macOS come sistemi operativi host, ed è in grado di eseguire Windows, GNU/Linux, OS/2 Warp, BSD come ad esempio OpenBSD, FreeBSD e infine Solaris e OpenSolaris come sistemi operativi guest. VirtualBox supporta la soluzione per la virtualizzazione hardware di Intel VT-x e la soluzione di AMD, AMD-V. 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 nel 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 nel 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.




       

virtualbox.org / software gratuito per l'esecuzione di macchine virtuali