VirtualBox ist eine Virtualisierungssoftware des US-amerikanischen Unternehmens Oracle und wurde ursprünglich von der InnoTek Systemberatung GmbH aus Baden-Württemberg entwickelt.
Sun Microsystems wurde 2010 von Oracle übernommen, das Oracle VM VirtualBox nunmehr ebenfalls in sein VM-Portfolio eingliederte. Die freie Variante behielt jedoch den ursprünglichen Namen. VirtualBox kann auf den Betriebssystemen FreeBSD, Linux, macOS, OS/2, Solaris und Windows als Wirtsystem auf x86- (32 Bit) und x86-64-Systemen (64 Bit) eingesetzt werden.
Als Gastsystem können wiederum x86- bzw. x86-x64-Betriebssysteme eingesetzt werden. Für eine Vielzahl an Betriebssystemen werden Treiber, Kernel-Module bzw. – Erweiterungen mitgeliefert; diese stehen bei der Einrichtung einer neuen virtuellen Maschine zur Auswahl.
Festplatten werden in Containerdateien, von VirtualBox auch als „virtuelle Plattenabbilder“ (englisch Virtual Disk Images, kurz VDI) bezeichnet, emuliert. Neben diesem eigenen Dateiformat kann VirtualBox auch mit Festplattendateien von vmware-Virtualisierungsprodukten (mit der Dateiendung „.vmdk“), dem „ Virtual Hard Disk“-Format (mit der Dateiendung „.vhd“) von Windows Virtual PC, HDD-Dateien von Parallels sowie mit Abbildern im QED- (QEMU enhanced disk) und QCOW-Format (QEMU Copy-On-Write) der Emulations- und Virtualisierungssoftware QEMU umgehen. Zudem können iSCSI-Objekte als virtuelle Festplatten genutzt werden, wobei der hierfür benötigte iSCSI-Initiator bereits in VirtualBox enthalten ist. Mit dem zu VirtualBox gehörenden Kommandozeilen-Werkzeug VBoxManager kann man diese fremden Formate auch konvertieren.
Für Systeme ohne VT-x/AMD-V oder bei manueller Abwahl dieser Funktionen besitzt VirtualBox einen weiteren Modus, der „Raw Mode“ genannt wird. Hierbei versucht VirtualBox, so viel Code wie möglich nativ auszuführen. In den meisten Fällen läuft Ring-3-Code des Gastsystems nativ auf dem Wirtssystem. Versucht das Gastsystem, Ring-0-Code auszuführen, führt das Wirtssystem diesen stattdessen im Ring-1 aus (der normalerweise nicht genutzt wird). Wenn es nicht möglich sein sollte, Code nativ auszuführen, muss dieser von einem Emulator ausgeführt werden, der auf dem Quellcode von QEMU basiert. Da die Ausführung von Ring-0-Code im Ring-1 zu sehr vielen Ausnahmen führt (privilegierte Instruktionen dürfen nur im Ring-0 ausgeführt werden), betreibt VirtualBox eine Art in situ-Patching. Hierbei wird der Gastcode zur Laufzeit und unmittelbar vor Ausführung mit Hilfe einer Disassembler-Komponente (CASM) auf problematische Segmente hin analysiert und gegebenenfalls von einem Patch Manager (PATM) so verändert oder ersetzt, dass Ausnahmen reduziert werden und sich die Ausführungsgeschwindigkeit erhöht. In vielen Fällen ist der klassische Ansatz mit Patch Manager effizienter als VT-x/AMD-V, es gibt jedoch Einschränkungen in der Kompatibilität mit weniger verbreiteten Gastsystemen.