Oracle VirtualBox (formerlySun VirtualBox,Sun xVM VirtualBox andInnoTek VirtualBox) is ahosted hypervisor forx86 andARM virtualization developed byOracle Corporation. VirtualBox was originally created by InnoTek Systemberatung GmbH, which was acquired bySun Microsystems in 2008, which was in turn acquired by Oracle in 2010.
VirtualBox may be installed onMicrosoft Windows,macOS,Linux,Solaris andOpenSolaris. There are also ports toFreeBSD[5] andGenode.[6] It supports the creation and management of guestvirtual machines running Windows, Linux,BSD,OS/2, Solaris,Haiku, andOSx86,[7] as well as limited virtualization ofmacOS guests on Apple hardware.[8][9] For some guest operating systems, a "Guest Additions" package of device drivers and system applications is available,[10][11] which typically improves performance, especially that of graphics, and allows changing the resolution of the guest OS automatically when the window of the virtual machine on the host OS is resized.
Released under the terms of the GNU General Public License and, optionally, theCDDL for most files of the source distribution, VirtualBox isfree and open-source software, though the Extension Pack isproprietary software, free of charge only to personal users. The License to VirtualBox was relicensed to GPLv3 with linking exceptions to the CDDL and other GPL-incompatible licenses.[12]
Logo of VirtualBox OSE, 2007–2010Logo of VirtualBox, 2010–2024
VirtualBox was first offered by InnoTek Systemberatung GmbH, a German company based inWeinstadt, under aproprietary software license, making one version of the product available at no cost for personal or evaluation use, subject to the VirtualBox Personal Use and Evaluation License (PUEL).[13] In January 2007, based on counsel byLiSoG, InnoTek released VirtualBox Open Source Edition (OSE) asfree and open-source software, subject to the requirements of theGNU General Public License (GPL), version 2.[14]
InnoTek also contributed to the development ofOS/2 andLinux support in virtualization[15] and OS/2 ports[16] of products fromConnectix which were later acquired byMicrosoft. Specifically, InnoTek developed the "additions" code in bothWindows Virtual PC andMicrosoft Virtual Server, which enables various host–guest OS interactions like sharedclipboards or dynamic viewport resizing.
Run and control guest applications from the host – for automated software deployments
4.0
Dec 22, 2010
The PUEL/OSE separation was abandoned in favor of an open source base product and a closed source extension pack that can be installed on top of the base product. As part of this change, additional components of VirtualBox were made open source (installers, documentation, device drivers)
Can automatically run VMs on host system startup (except on Windows hosts)
4.3
Oct 15, 2013
VM video-capture support
Host touch device support (GUI passes host touch events to guest)/USB virtualization of such devices
5.0
Jul 9, 2015
Paravirtualization support for Windows and Linux guests to improve time-keeping accuracy and performance
USB3 controller based on Intel's hardware implementation.[25] It is supported by any Windows version starting fromWindows 8, any Linux kernel starting from 2.6.31 and Mac OS X starting from version 10.7.4.[citation needed]
Bidirectionaldrag and drop support for Windows, Linux and Solaris guests
The core package, since version 4 in December 2010, isfree software underGNU General Public License version 2 (GPLv2). A supplementary package, under aproprietary license, adds support forUSB 2.0 and 3.0 devices,Remote Desktop Protocol (RDP), disk encryption,NVMe, andPreboot Execution Environment (PXE). This package is called "VirtualBox Oracle VM VirtualBox extension pack". It includes closed-source components, so it is notsource-available.[28] The license is calledPersonal Use and Evaluation License (PUEL). It allows gratis access for personal use, educational use, and evaluation.[29] Since VirtualBox version 5.1.30,[30] Oracle defines personal use as installation on a single computer for non-commercial purposes.[31]
Prior to version 4, there were two different packages of the VirtualBox software. The full package was offeredgratis under the PUEL, with licenses for other commercial deployment purchasable from Oracle. A second package called theVirtualBox Open Source Edition (OSE) was released under GPLv2. This removed the same proprietary components not available under GPLv2.[31][28]
VirtualBox has experimental support for macOS guests. However, macOS'send user license agreement does not permit running on non-Apple hardware. The operating system enforces this by calling the AppleSystem Management Controller (SMC), to verify the hardware's authenticity. All Apple machines have an SMC.[36]
Users of VirtualBox can load multiple guest OSes under a single host operating-system (host OS). Each guest can be started, paused and stopped independently within its ownvirtual machine (VM). The user can independently configure each VM and run it under a choice ofsoftware-based virtualization orhardware assisted virtualization if the underlying host hardware supports this. The host OS and guest OSs and applications can communicate with each other through a number of mechanisms including a common clipboard and a virtualized network facility. Guest VMs can also directly communicate with each other if configured to do so.[37]
VirtualBox supports bothIntel'sVT-x andAMD'sAMD-V hardware-assisted virtualization. Making use of these facilities, VirtualBox can run each guest VM in its own separate address-space; the guest OS ring 0 code runs on the host at ring 0 in VMX non-root mode rather than in ring 1.[citation needed]
Starting with version 6.1, VirtualBox only supports this method.[23][2] Until then, VirtualBox specifically supported some guests (including 64-bit guests, SMP guests and certain proprietary OSs) only on hosts withhardware-assisted virtualization.[citation needed]
VirtualBox emulates hard disks in three formats: the nativeVDI (Virtual Disk Image),[38]VMware'sVMDK, andMicrosoft'sVHD. It thus supports disks created by other hypervisor software. VirtualBox can also connect toiSCSI targets and to raw partitions on the host, using either as virtual hard disks. VirtualBox emulatesIDE (PIIX4 and ICH6 controllers),SCSI,SATA (ICH8M controller), andSAS controllers, to which hard drives can be attached.
BothISO images and physical devices connected to the host can be mounted as CD or DVD drives. VirtualBox supports running operating systems fromlive CDs and DVDs.
By default, VirtualBox provides graphics support through a custom virtual graphics-card that isVBE orUEFI GOP compatible. The Guest Additions for Windows, Linux, Solaris, OpenSolaris, and OS/2 guests include a special video-driver that increases video performance and includes additional features, such as automatically adjusting the guest resolution when resizing the VM window[40]and desktop composition via virtualizedWDDM drivers.
The emulated network cards allow most guest OSs to run without the need to find and install drivers for networking hardware as they are shipped as part of the guest OS. A special paravirtualized network adapter is also available, which improves network performance by eliminating the need to match a specific hardware interface, but requires special driver support in the guest. (Many distributions ofLinux ship with this driver included.) By default, VirtualBox usesNAT through which Internet software for end-users such asFirefox orssh can operate.Bridged networking via a host network adapter or virtual networks between guests can also be configured. Up to 36 network adapters can be attached simultaneously, but only four are configurable through the graphical interface.
For a sound card, VirtualBox virtualizes Intel HD Audio, Intel ICH AC'97, andSoundBlaster 16 devices.[42]
A USB 1.1 controller is emulated, so that any USB devices attached to the host can be seen in the guest. The proprietary extension pack adds a USB 2.0 or USB 3.0 controller and, if VirtualBox acts as anRDP server, it can also use USB devices on the remoteRDP client, as if they were connected to the host, although only if the client supports this VirtualBox-specific extension (Oracle provides clients for Solaris, Linux, andSun Ray thin clients that can do this, and has promised support for other platforms in future versions).[43]
In the absence of hardware-assisted virtualization, versions 6.0.24 and earlier of VirtualBox made use of a standardsoftware-based virtualization approach. This mode supports 32-bit guest operating systems which run in rings 0 and 3 of the Intelring architecture.
The system reconfigures the guest OS code, which would normally run in ring 0, to execute in ring 1 on the host hardware. Because this code contains many privileged instructions which cannot run natively in ring 1, VirtualBox employs a Code Scanning and Analysis Manager (CSAM) to scan the ring 0 code recursively before its first execution to identify problematic instructions and then calls the Patch Manager (PATM) to performin-situ patching. This replaces the instruction with a jump to a VM-safe equivalent compiled code fragment in hypervisor memory.
The guest user-mode code, running in ring 3, generally runs directly on the host hardware in ring 3.
In both cases, VirtualBox uses CSAM and PATM to inspect and patch the offending instructions whenever a fault occurs. VirtualBox also contains adynamic recompiler, based onQEMU to recompile anyreal mode orprotected mode code entirely (e.g. BIOS code, a DOS guest, or any operating system startup).[44]
Using these techniques, VirtualBox could achieve performance comparable to that ofVMware in its later versions.[45][46]
The feature was dropped starting with VirtualBox 6.1.[23][2]
"Host key" for releasing the keyboard and mouse cursor to the host system if captured (coupled) to the guest system, and for keyboard shortcuts to features such as configuration, restarting, and screenshot. By default, it is the right-sideCtrl key, or on Mac, the left⌘ Command key.[47][48]
Mouse pointer integration, meaning automatic coupling and uncoupling of mouse cursor when moved inside and outside the virtual screen, if supported by guest operating system.
Seamless mode – the ability to run virtualized applications side by side with normal desktop applications
Nestedpaging forAMD-V andIntel VT (only for processors supportingSLAT and with SLAT enabled)
Limited support for3D graphics acceleration (includingOpenGL up to (but not including) 3.0 andDirect3D 9.0c viaWine's Direct3D to OpenGL translation in versions prior to 7.0 orDXVK in later releases)
SMP support (up to 32 virtual CPUs per virtual machine), since version 3.0
3D graphics acceleration for Windows guests earlier than Windows Vista[55] was removed in version 6.1.[56]
VirtualBox has a very low transfer rate to and fromUSB2 devices.[57][58]
ForUSB3 equipment, device pass-through does not work in older guest OSes, such asWindows Vista andWindows XP, which lack appropriate drivers. However, since version 5.0, VirtualBox has added an experimental USB3 controller (theRenesas uPD720201xHCI), which enables USB3 in these operating systems. This requires editing some configuration files.[59][60]
Guest Additions formacOS are unavailable at this time.[61]
Native Guest Additions forWindows 9x (Windows 95,98 andME) are not available. This results in poor performance due to the lack of graphics acceleration with the default limited color depth. Externalthird-party software is available[62][63][64] to enable support for 32-bit color mode, resulting in better performance.[65][66][67]
EFI support is incomplete, e.g. EFI boot for a Windows 7 guest is not supported.[61][54]
Only older versions ofDirectX andOpenGL pass-through are supported (the feature can be enabled using the 3D Acceleration option for eachVM individually).[68]
Video RAM is limited to 128MiB (256MiB with 2D Video Acceleration enabled) due to technical difficulties[69] (merely changing theGUI to allow the user to allocate morevideo RAM to aVM or manually editing theconfiguration file of aVM won't work and will result in afatal error[69]).
Windows 95/98/98SE/ME cannot be installed or work unreliably with modern CPUs (AMDZen and newer; IntelTiger Lake and newer) and hardware assisted virtualization (VirtualBox 6.1 and higher). This is due to these OSes not being coded correctly.[70][71][72] An open source patch has been developed to fix the issue which also addresses Windows 95/98/98SE bug which makes the system crash when running on new fast CPUs.[73]
VirtualBox 7.0[74] and later is required to run a pristine Windows 11 guest.[75] Full compatibility with Windows 11 is achieved in VirtualBox version 7.0.14 and higher.
The provided NVMe controller doesn't support Windows guests.[76]
Some features require the installation of theclosed-source "VirtualBox Extension Pack":[2]
Support for a virtualUSB 2.0/3.0 controller (EHCI/xHCI) (Starting with VirtualBox 7.0, this functionality was integrated into the GPL version instead.[74])
VirtualBoxRDP: support for the proprietary remote connection protocol developed by Microsoft andCitrix Systems.
While VirtualBox itself is free to use and is distributed under an open source license the VirtualBox Extension Pack is licensed under the VirtualBox Personal Use and Evaluation License (PUEL). Personal use of the extension pack is free but commercial users need to purchase a license.[93]
Guest Additions are installed within each guest virtual machine which supports them; the Extension Pack is installed on the host running VirtualBox.
^"Sun Welcomes Innotek". Sun Microsystems, Inc. Archived fromthe original on 2008-03-02. Retrieved2008-02-26.On February 20 Sun completed the acquisition of Innotek
Convention: Any item in this table that has the form of "A+B" or "A+B+C" indicates a disk format that spans multiple files, where A contains the bulk of the data, and B and C aresidecar files.