VirtualBox ist eine Virtualisierungssoftware des US-amerikanischen Unternehmens Oracle, die ursprünglich von der InnoTek Systemberatung GmbH aus Baden-Württemberg entwickelt wurde. Nach der Übernahme durch Sun Microsystems im Februar 2008 wurde daraus Sun xVM VirtualBox, da Sun es in sein xVM-Portfolio eingliederte. 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.www.virtualbox.org (englisch); abgerufen am 22. Januar 2017.

VirtualBox kann auf den Betriebssystemen FreeBSD,FreeBSD as a Host with VirtualBox (englisch) – FreeBSD-Dokumentation (abgerufen am 7. Juni 2016) Linux, macOS, OS/2 bzw. eComStation, Solaris, Windows und GenodeGenode 14.02 Versionsinformationen (abgerufen am 14. Januar 2019) als Wirtssystem auf x86- (32 Bit) und x86-64-Systemen (64 Bit) eingesetzt werden.

Als Gastsystem können wiederum x86- bzw. x64-Betriebssysteme eingesetzt werden. Für eine Vielzahl an Betriebssystemen werden Treiber, Kernel-Module bzw. mitgeliefert; diese stehen bei der Einrichtung einer neuen virtuellen Maschine zur Auswahl.

Überblick VirtualBox wurde von dem in Weinstadt ansässigen Unternehmen Innotek (ursprünglich InnoTek Systemberatung GmbH) entwickelt. Zunächst hatte Innotek dem Hypervisor Virtual PC von Connectix zur Unterstützung des Betriebssystems OS/2 verholfen. Nachdem Connectix von Microsoft aufgekauft worden war, begann Innotek im Jahr 2004 mit der Entwicklung von VirtualBox und gewann unter anderem Behörden als Anwender. Insbesondere werden in deutschen Behörden die SINA Workstations S eingesetzt, die eine VirtualBox enthalten.

Im Januar 2007 stellte Innotek VirtualBox erstmals als freie Software zur Verfügung. Im Februar 2008 wurde Innotek von Sun Microsystems übernommen. Sun Microsystems wiederum wurde im Januar 2010 von Oracle aufgekauft. Seit dieser Übernahme wird VirtualBox von Oracle vertrieben.

Ab Version 1.3.2 (Anfang 2007) bis einschließlich Version 3 (Ende 2010) waren zwei unterschiedliche Varianten (Editionen genannt) mit unterschiedlichen Lizenzen verfügbar: Oracle VirtualBox mit allen Funktionen unter proprietärer Lizenz (), welche für persönliche sowie zu jeglicher Verwendung in Bildungseinrichtungen kostenfrei genutzt werden durfte, und VirtualBox Open Source Edition (OSE), welcher diverse Funktionen fehlten und die unter der GNU General Public License (GPL) stand. Ab Version 4.0 vom 22. Dezember 2010 stellt Oracle nur noch eine unter der GPL stehende Edition zur Verfügung, die in etwa der früheren Open Source Edition entspricht und mit Modulen erweitert werden kann. Lediglich der Funktionsumfang wurde um USB-1.1-Unterstützung erweitert. Die Funktionen der proprietären Version 3 sind nun in das Modul ausgelagert, welches wieder unter der PUEL steht. Für einen Wechsel zwischen beiden Versionen muss daher lediglich das Zusatzpaket installiert bzw. entfernt werden.

Bis Version 9 der PUEL fällt unter Personal Use (englisch für persönlicher Gebrauch) auch, wenn ein Angestellter in einer Firma die unter der PUEL stehenden Teile persönlich installiert und verwendet. Ausgeschlossen ist daher nur eine automatische Installation des oder der Gasterweiterungen im Gastsystem z. B. durch den Systemadministrator und auch die Nutzung mit Fernwartungssoftware (wie beispielsweise VNC), nicht aber die kommerzielle Nutzung – solange sie persönlich erfolgt. Ab Version 10 der PUEL, die als Datum den 20. Juli 2017 angibt, ist die kommerzielle Nutzung jedoch explizit ausgeschlossen. Mit Version 5.1.30 vom 16. Oktober 2017 wurde die PUEL des auf Version 10 aktualisiert. Als Konsequenz daraus ist das nur bis Version 5.1.28 vom 13. September 2017 persönlich gratis kommerziell, wie beispielsweise in Firmen, nutzbar.

Funktionen

Festplatten werden in Containerdateien, von VirtualBox auch als 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 („.vhd“), HDD-Dateien von Parallels sowie mit Abbildern im QED- () und QCOW-Format 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.

Von virtuellen Maschinen lassen sich Schnappschüsse erstellen, sodass der Zustand des virtuellen Datenträgers und Arbeitsspeichers später wiederhergestellt werden kann.

Die freie GPL-Edition von VirtualBox emuliert im Gastsystem u. a. folgende Komponenten:

die x86-CPU des jeweiligen Wirtssystems Intel-Chipsatz 440FX (Natoma) ACPI- (ab Version 1.6 (englisch) – Änderungen bei Virtualbox.org (abgerufen am 7. Juni 2016) oder früher) und I/O-APIC-Unterstützung VESA-kompatible Grafikprozessor IDE-Controller PIIX3 (82371SB), PIIX4 (82371AB) und ICH6 (82801FB) Serial-ATA-Controller ICH8 (82801HB), unterstützt AHCI SCSI-Controller von LSI Logic und BusLogic sowie SAS-Controller ebenfalls von LSI Logic die Netzwerkkarten AMD PCnet-PCI II (Am79C970A) und PCnet-FAST III (Am79C973), sowie Intel PRO/1000 in den Varianten MT Desktop (82540EM), T Server (82543GC) und MT Server (82545EM) virtio-Netzwerkkarte mit Paravirtualisierung Bootvorgang aus dem Netzwerk mit PXE Version 2.1 die Soundkarten Intel AC’97, Intel HD Audio (ab VirtualBox 4.0) und Sound Blaster 16 serielle Schnittstellen (National Semiconductor 16550A UART) virtuelle Schnittstelle für USB 1.1 (OHCI) oder 2.0 (EHCI) iSCSI-Unterstützung zu iSCSI-Servern durch das Wirtssystem ohne Emulation weitere Komponenten sind über das proprietäre verfügbar

mini|Das „About VirtualBox“-Fenster der Open Source Edition ab Version 5 mini|Das „About VirtualBox“-Fenster der Open Source Edition zeigte bis Version 4.3 die Maskottchen einiger unterstützter Gast-Betriebssysteme

Die Grafikauflösung ist ohne entsprechende Treiber (als Gasterweiterung) auf bzw. beschränkt.

Die VMs lassen sich wahlweise über mehrere Frontends bedienen: eine grafische Benutzeroberfläche (GUI), die die Grafikbibliothek Qt nutzt, in der aber noch nicht alle Optionen des Konsolenprogramms implementiert sind (VirtualBox) ein Konsolenprogramm (VBoxManage) eine Python-Shell (VBoxShell) ein SDL-Programm (VBoxSDL) einen Remote-Desktop-Protocol-Server, der in der Konsole läuft (VBoxHeadless, vormals VBoxVRDP) per Webserver (vboxwebsrv) und Skript (phpVirtualBox)VirtualBox über den Browser steuern – Linux und Ich, am 31. Juli 2010phpVirtualBox (englisch) – Seite auf SourceForge, (abgerufen am 26. Juli 2016)

Die Virtualisierungserweiterungen der aktuellen Intel-CPUs mit der Bezeichnung VT-x und dessen AMD-Pendant AMD-V werden, sofern vorhanden, genutzt. Hierbei werden auch neuere Funktionen dieser Befehlssatzerweiterungen wie unterstützt.

Für Systeme ohne VT-x/AMD-V oder bei manueller Abwahl dieser Funktionen besitzt VirtualBox den „Raw Mode“. 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.

Unterstützte Betriebssysteme Da VirtualBox einen x86-Prozessor in einer virtuellen Umgebung bereitstellt, werden auch nur für diese Prozessorarchitektur geschriebene Betriebssysteme, sowohl als Gast- als auch als Wirtbetriebssystem, unterstützt. Die Virtualisierung beschränkt sich so auf das Erstellen einer VM, deren Prozessor dem tatsächlich im System verbauten Prozessor entspricht. Der Systemprozessor wird also, anders als bei QEMU, nicht emuliert, was in der Regel mehr Rechenleistung benötigen würde.

Folgende Wirtssysteme (Host) werden unterstützt (aktuelle Version):Chapter 1. First steps; 1.4. Supported host operating systems (englisch) – Seite bei Virtualbox.org (abgerufen am 20. Juli 2015) Linux (Kernel ab 2.6) Ubuntu (18.04 LTS, 19.03 und 19.10), Debian (9, 10, 11), Oracle Linux (6, 7 und 8), Red Hat (6, 7, 8), Fedora (30 und 31), Gentoo, openSUSE (15.1) sowie SUSE Linux Enterprise Server (12 und 15) Microsoft Windows Windows Server 2012, 2016 und 2019, Windows 8.1, Windows 10, Windows 11 Apple Mac bzw. macOS High Sierra (10.13) bis 6.1, Mojave (10.14) bis 6.1, Catalina (10.15) min. für Version 7.x Oracle Solaris Version 11; experimentelle Unterstützung in der Open Source Edition (OSE), die von ehemaligen Sun-Entwicklern in deren Freizeit entwickelt wurde.

IBM OS/2 und eComStation VirtualBox in Version 1.56; ein von der OS/2-Community gesponserter Port der Version 5.0 befindet sich im Beta-Stadium.

Darüber hinaus gibt es auch ein Startprogramm, mit dessen Hilfe VirtualBox für Windows-Betriebssysteme leicht übertragbar (portabel) gemacht und gestartet werden kann.Portable-VirtualBox (englisch) – öffentliche Projektseite; Stand: 13. Mai 2013 Dieses Startprogramm wird unabhängig von Oracle von der deutschen nLite-Gemeinschaft, in der Skriptsprache AutoIt, entwickelt und gepflegt.Portable-VirtualBox (englisch) – Entwicklerseite bei GitHub; Stand: 13. Mai 2013

Mac OS X/​OS X/​macOS kann ab Version 3.2 auch als Gastsystem ausgeführt werden, was aus lizenzrechtlichen Gründen jedoch nur auf Apple-Hardware zugelassen ist. Da mittels Boot Camp auch Windows auf jedem Intel-basierten Mac-Rechner installiert werden kann, ist folglich macOS als Gastsystem auch unter Windows als Wirtssystem möglich.

Ab Version 2.1 können die unterstützten Gastsysteme unabhängig vom Wirtssystem sowohl als 32-Bit- als auch als 64-Bit-Virtualisierung nutzen, sofern der Prozessor des Wirtssystems dies unterstützt. Zusätzlich zu den bereits als unterstützte Wirtssysteme gelisteten Betriebssystemen sind auch folgende Systeme virtualisierbar: Windows NT, 2000 MS-DOS-kompatible DOS-Betriebssysteme (Windows 3.1, 95, 98, ME) Linux mit Kernel 2.2 (eingeschränkte Unterstützung) L4 NetWare diverse BSD-Derivate

Es ist durchaus möglich, VirtualBox mit weiteren Gast-Betriebssystemen zu betreiben. Das Aktivieren der Virtualisierungserweiterung moderner x86-Prozessoren (bei Intel VT-x, AMD-V bei AMD) kann dabei helfen, ein sonst nicht unterstütztes Betriebssystem in der virtuellen Umgebung von VirtualBox laufen zu lassen.

Gasterweiterungen Die nur in englischer Sprache verfügbaren Gasterweiterungen (englisch ) von VirtualBox erweitern die Integration zwischen Wirt- und Gastsystem. Diese liegen für Windows ab NT 4.0 und OS/2 Warp als Binärdaten (als eine Art Treiber-CD), für Linux und Solaris als Quellcode und Installationspaket vor und werden im virtuellen CD-Laufwerk innerhalb der VM bereitgestellt. Die folgenden Komponenten werden dabei erweitert: Grafikkarten-Treiber der Mauszeiger kann das Fenster der VM verlassen, ohne die „Host-Taste“ benutzen zu müssen