Oracle VM VirtualBox (formerly Sun VirtualBox, Sun xVM VirtualBox and Innotek VirtualBox) is a free and open-source hosted hypervisor for x86 virtualization, developed by Oracle Corporation. Created by Innotek, it was acquired by Sun Microsystems in 2008, which was in turn acquired by Oracle in 2010.
VirtualBox logo since 2010
|Initial release||17 January 2007|
6.1.16 / 16 October 2020
|Written in||C, C++, x86 Assembly, Python|
|Operating system||Windows, macOS, Linux and Solaris|
|Platform||x86-64 only (version 5.x and earlier works on IA-32)|
|License||Base Package (USB support only for USB 1.1): GNU General Public License version 2 (Optionally CDDL for most files of the source distribution), "Extension Pack" (including USB 3.0 support): PUEL|
VirtualBox may be installed on Windows, macOS, Linux, Solaris and OpenSolaris. There are also ports to FreeBSD and Genode. It supports the creation and management of guest virtual machines running Windows, Linux, BSD, OS/2, Solaris, Haiku, and OSx86, as well as limited virtualization of macOS guests on Apple hardware. For some guest operating systems, a "Guest Additions" package of device drivers and system applications is available, which typically improves performance, especially that of graphics.
VirtualBox was first offered by Innotek GmbH from Weinstadt, Germany, under a proprietary 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). In January 2007, based on counsel by LiSoG, Innotek GmbH released VirtualBox Open Source Edition (OSE) as free and open-source software, subject to the requirements of the GNU General Public License (GPL), version 2.
Innotek GmbH also contributed to the development of OS/2 and Linux support in virtualization and OS/2 ports of products from Connectix which were later acquired by Microsoft. Specifically, Innotek developed the "additions" code in both Windows Virtual PC and Microsoft Virtual Server, which enables various host–guest OS interactions like shared clipboards or dynamic viewport resizing.
The core package is, since version 4 in December 2010, free software under GNU General Public License version 2 (GPLv2). The separate "VirtualBox Oracle VM VirtualBox extension pack" providing support for USB 2.0 and 3.0 devices, Remote Desktop Protocol (RDP), disk encryption, NVMe and Preboot Execution Environment (PXE) boot is under a proprietary license, called Personal Use and Evaluation License (PUEL), which permits use of the software for personal use, educational use, or evaluation, free of charge. Since VirtualBox version 5.1.30 Oracle defines personal use as the installation of the software on a single host computer for non-commercial purposes.
Prior to version 4, there were two different packages of the VirtualBox software. The full package was offered free under the PUEL, with licenses for other commercial deployment purchasable from Oracle. A second package called the VirtualBox Open Source Edition (OSE) was released under GPLv2. This removed the same proprietary components not available under GPLv2.
Building the BIOS for VirtualBox  requires the use of the Open Watcom compiler, for which the Sybase Open Watcom Public License is approved as "Open Source" by the Open Source Initiative but not as "free" by the Free Software Foundation or under the Debian Free Software Guidelines.
Although VirtualBox has experimental support for macOS guests, the end user license agreement of macOS does not permit the operating system to run on non-Apple hardware, and this is enforced within the operating system by calls to the Apple System Management Controller (SMC) in all Apple machines, which verifies the authenticity of the hardware.
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 own virtual machine (VM). The user can independently configure each VM and run it under a choice of software-based virtualization or hardware 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.
Version 6.0 and earlierEdit
In the absence of hardware-assisted virtualization, VirtualBox adopts a standard software-based virtualization approach. This mode supports 32-bit guest OSs which run in rings 0 and 3 of the Intel ring 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 perform in-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 a dynamic recompiler, based on QEMU to recompile any real mode or protected mode code entirely (e.g. BIOS code, a DOS guest, or any operating system startup).
VirtualBox supports both Intel's VT-x and AMD's AMD-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.
Starting with version 6.1, VirtualBox only supports this method. Until then, VirtualBox specifically supported some guests (including 64-bit guests, SMP guests and certain proprietary OSs) only on hosts with hardware-assisted virtualization.
The system emulates hard disks in one of three disk image formats:
- VDI: This format is the VirtualBox-specific Virtual Disk Image and stores data in files bearing a ".vdi" filename extension.
- VMDK: This open format is used by VMware products such as VMware Workstation and VMware Player. It stores data in one or more files bearing ".vmdk" filename extensions. A single virtual hard disk may span several files.
- VHD: This format is used by Windows Virtual PC and Hyper-V, and is the native virtual disk format of the Microsoft Windows operating system, starting with Windows 7 and Windows Server 2008 R2. Data in this format are stored in a single file bearing the ".vhd" filename extension.
A VirtualBox virtual machine can, therefore, use disks previously created in VMware or Microsoft Virtual PC, as well as its own native format. VirtualBox can also connect to iSCSI targets and to raw partitions on the host, using either as virtual hard disks. VirtualBox emulates IDE (PIIX4 and ICH6 controllers), SCSI, SATA (ICH8M controller) and SAS controllers to which hard drives can be attached.
Both ISO images and host-connected physical devices can be mounted as CD/DVD drives. For example, the DVD image of a Linux distribution can be downloaded and used directly by VirtualBox.
By default, VirtualBox provides graphics support through a custom virtual graphics-card that is VESA compatible. The Guest Additions for Windows, Linux, Solaris, OpenSolaris, or 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 or desktop composition via virtualized WDDM drivers .
- AMD PCnet PCI II (Am79C970A)
- AMD PCnet-Fast III (Am79C973)
- Intel Pro/1000 MT Desktop (82540EM)
- Intel Pro/1000 MT Server (82545EM)
- Intel Pro/1000 T Server (82543GC)
- Paravirtualized network adapter (virtio-net)
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 of Linux ship with this driver included.) By default, VirtualBox uses NAT through which Internet software for end-users such as Firefox or ssh 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.
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 controllers and, if VirtualBox acts as an RDP server, it can also use USB devices on the remote RDP 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 and Sun Ray thin clients that can do this, and have promised support for other platforms in future versions).
- Seamless mode – the ability to run virtualized applications side by side with normal desktop applications
- Shared clipboard
- Shared folders
- Special drivers and utilities to facilitate switching between systems
- Command line interaction (in addition to the GUI)
- Public API (Java, Python, SOAP, XPCOM) to control VM configuration and execution
- Nested paging for AMD-V and Intel VT (only for processors supporting SLAT and with SLAT enabled)
- Limited support for 3D graphics acceleration (including OpenGL up to (but not including) 3.0 and Direct3D 9.0c via Wine's Direct3D to OpenGL translation)
- SMP support (up to 32 virtual CPUs per virtual machine), since version 3.0
- Teleportation (aka Live Migration)
- 2D video output acceleration (not to be mistaken with video decoding acceleration), since version 3.1
- EFI has been supported since version 3.1 (Windows 7 guests are not supported)
- Storage emulation features
- NCQ support for SATA, SCSI and SAS raw disks and partitions
- SATA disk hotplugging
- Pass-through mode for solid-state drives
- Pass-through mode for CD/DVD/BD drives – allows users to play audio CDs, burn optical disks, and play encrypted DVD discs
- Can disable host OS I/O cache
- Allows limitation of IO bandwidth
- PATA, SATA, SCSI, SAS, iSCSI, floppy disk controllers
- VM disk image encryption using AES128/AES256
- Storage support
- Raw hard disk access – allows physical hard disk partitions on the host system to appear in the guest system
- VMware Virtual Machine Disk (VMDK) format support – allows exchange of disk images with VMware
- Microsoft VHD support
- QEMU qed and qcow disks
- HDD format disks (only version 2; versions 3 and 4 are not supported) used by Parallels virtualization products
- Since version 3.2
- Mac OS X Server guest support – experimental
- Memory ballooning (not available on Solaris hosts)
- RAM deduplication (Page Fusion) for Windows guests on 64-bit hosts
- CPU hot-plugging for Linux (hot-add and hot-remove) and certain Windows guests (hot-add only)
- Deleting snapshots while the VM is running
- Multi-monitor guest setups in the GUI, for Windows guests
- LSI Logic SAS controller emulation
- Remote Desktop Protocol (RDP) video acceleration via a non-free extension
- Run and control guest applications from the host – for automated software deployments
- Since version 4.0
- 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)
- Intel HD audio codec emulation
- Intel ICH9 chipset emulation
- A new VM storage scheme where all VM data is stored in one single folder to improve VM portability
- Several UI enhancements including a new look with VM preview and scale mode
- On 32-bit hosts, VMs can each use more than 1.5 GB of RAM
- In addition to OVF, the single file OVA format is supported
- CPU use and I/O bandwidth can be limited per VM
- Support for Apple DMG images (DVD)
- Multi-monitor guest setups for Linux/Solaris guests (previously Windows only)
- Resizing of disk image formats from Oracle, VDI (VirtualBox disk image), and Microsoft, VHD (Virtual PC hard disk)
- Since version 4.1
- Windows Aero support (experimental)
- Virtual machine cloning
- Since version 4.2
- Virtual machine groups – allows management of a group of virtual machines as a single unit (power them on or off, take snapshots, etc.)
- Some VM settings can be altered during VM execution
- Support up to 36 NICs in case of the ICH9 chipset
- Support for limiting network I/O bandwidth
- Can automatically run VMs on host system startup (except on Windows hosts)
- Since version 4.3
- VM video-capture support
- Host touch device support (GUI passes host touch events to guest)/USB virtualization of such devices
- Since version 5.0
- Paravirtualization support for Windows and Linux guests to improve time-keeping accuracy and performance
- USB3 controller based on Intel's hardware implementation. It's supported by any Windows version starting from Windows 8, any Linux kernel starting from 2.6.31 and Mac OS X starting from version 10.7.4.
- Bidirectional drag and drop support for Windows, Linux and Solaris guests
- VM disk image encryption via a non-free extension
- VM output scaling and HiDPI displays support
- Hotplugging of SATA disks using GUI
- USB traffic capturing
- VMs can be disconnected from a GUI session and run in background
- AVX, AVX-2, AES-NI, SSE 4.1/4.2 instructions (if supported by the host CPU)
- Since version 6.0
- Support for exporting virtual machines to Oracle Cloud
- A file manager which allows to control the guest file system and copy files from/to it
- VMSVGA GPU driver for Linux hosts
- Surround speakers setup support
- Support for hardware-assisted nested virtualization on AMD CPUs
- Since version 6.1
- Support for importing virtual machines from Oracle Cloud
- Added nested virtualization support for Intel CPUs (it was already available for AMD CPUs) starting with Intel Core i5 Broadwell
- Experimental support for file transfers via drag-n-drop only for Windows host and guests (disabled by default, must be enabled using VBoxManage)
- Support for virtio-scsi for hard disks and optical drives, including boot support
- Support for hosts with up to 1024 CPUs
- DXVA (hardware accelerated video decoding) support for Windows guests
- NVRAM support for EFI which improves compatibility with many guest OSes
- Software keyboard for entering any keys to a guest
- Guest CPU use monitoring
- Dropped support for software CPU virtualization - a CPU with hardware virtualization support is now required
- Dropped support for PCI passthrough for Linux hosts
- 3D graphics acceleration for Windows guests earlier than Windows 7  was removed in version 6.1.  This affected Windows XP  and Windows Vista.
- VirtualBox has a very low transfer rate to and from USB2 devices.
- Despite being an open source product, some of its features are available only in a binary form under a commercial license (see "VirtualBox Extension Pack" below).
- USB3 devices pass through is not supported by older guest OSes like Windows Vista and Windows XP due to the lack of drivers however starting with version 5.0 VirtualBox offers experimental Renesas uPD720201 xHCI USB3 controller which allows to use USB3 in these operating systems through manual modification of configuration files.
- Guest Additions for macOS are unavailable at this time.
- Guest Additions for Windows 9x (Windows 95, 98 and ME) are not available. This results in poor performance due to the lack of graphics acceleration with the default 16-bit color mode (external third-party software is available to enable support for 32-bit color mode, resulting in better performance).
- EFI support is incomplete, e.g. EFI boot for a Windows 7 guest is not supported. Secure UEFI boot for guest OSes is missing.
- Only older versions of DirectX and OpenGL passthrough are supported (the feature can be enabled using the 3D Acceleration option for each VM individually).
- Video RAM is limited to 128 MiB (256 MiB with 2D Video Acceleration enabled) due to technical difficulties (merely changing the GUI to allow the user to allocate more video RAM to a VM or manually editing the configuration file of a VM won't work and will result in a fatal error).
- Windows 95/98/98SE/ME cannot be installed or work unreliably with modern CPUs (AMD Zen or newer) and hardware assisted virtualization (VirtualBox 6.1 and higher). This is due to these OSes not being coded correctly.
VirtualBox Extension PackEdit
- Support for a virtual USB 2.0/3.0 controller (EHCI/xHCI)
- VirtualBox RDP: support for the proprietary remote connection protocol developed by Microsoft and Citrix Systems.
- PXE boot for Intel cards.
- VM disk image encryption
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 is free but commercial users need to purchase a license. Oracle routinely checks log files for downloads of the VirtualBox Extension Pack from nonresidential IP addresses and contacts unlicensed users to enforce compliance.[failed verification]
While Guest Additions are installed within each suitable guest virtual machine, the Extension Pack is installed on the host running VirtualBox.
Host OS supportEdit
The supported operating systems include:
- Windows 8.1 and higher
- Windows Server 2012 and higher
- Linux distributions
- Mac OS X 10.13 and higher (on an Intel CPU)
- Oracle Solaris
Since version 5 (July 2015), VirtualBox has stated that they are dropping support for Windows XP hosts, thus leaving its users with Windows XP hosts vulnerable to flaws of earlier releases.
- "Downloads – Oracle VM VirtualBox".
- "Download VirtualBox". VirtualBox.org. Oracle.
- "VirtualBox". Wiki.FreeBSD.org. 2009-06-16. Retrieved 2009-07-04.
- "Release Notes for the Genode OS Framework 14.02". Genode.org. Genode Labs. 28 February 2014. Retrieved 19 March 2014.
- "Guest_OSes". VirtualBox.org. 2009-06-12. Retrieved 2009-07-04.
- "How to Install Mac OS X Snow Leopard in VirtualBox on Windows 7".
- Purdy, Kevin (4 May 2010). "VirtualBox 3.2 Beta Virtualizes Mac OS X (On Macs)". Lifehacker.
- "Chapter 4: Guest Additions". VirtualBox.
- "Oracle VM VirtualBox 4.3 Now Available" (Press release). Oracle Corporation. 2013-10-15. Retrieved 2014-10-15.
Generally available today, Oracle VM VirtualBox 4.3 delivers the latest enhancements to the world's most popular, free and open-source, cross-platform virtualization software.
- "Run Ubuntu Linux Within Windows Using VirtualBox". Linux.About.com.
- "VirtualBox_PUEL – VirtualBox". VirtualBox. 2008-09-10. Retrieved 2009-07-04.
- "GPL". VirtualBox. Retrieved 2009-07-04.
- Ong, Ronny. "Additions Version History". Newsgroup: microsoft.public.virtualpc. Retrieved 2009-07-04.
- "Connectix Announces First Virtual Computing Solution for OS/2 Users; Virtual PC Lets Enterprises Run OS/2 and Windows Concurrently on a Single PC | Business Wire | Find Articles at BNET". Findarticles.com. 2002-07-01. Retrieved 2009-07-04.
- "Sun Microsystems Announces Agreement to Acquire Innotek, Expanding Sun xVM Reach to the Developer Desktop" (Press release). Sun Microsystems. 12 February 2008. Retrieved 2008-02-12.
- "E-Commerce News: Business: Sun Gets Desktop Virtualization Chops With Innotek Buy". Ecommercetimes.com. Retrieved 2009-07-04.
- "Sun Welcomes Innotek". Sun Microsystems, Inc. Retrieved 2008-02-26.
On February 20 Sun completed the acquisition of Innotek
- "Oracle and Virtualization". Oracle Corporation. Retrieved 2010-01-30.
- "VirtualBox Joins Oracle's Enterprise Virtualization Portfolio". systemnews. 25 February 2010. Retrieved 6 March 2010.[dead link]
- Hawley, Adam (26 February 2010). "The Oracle VM Product Line Welcomes Sun!". Oracle Virtualization Blog. Oracle Corporation. Archived from the original on 2010-04-07. Retrieved 6 March 2011.
- "Changelog-6.1 – Oracle VM VirtualBox". www.virtualbox.org. Retrieved 2019-12-12.
- "VirtualBox_PUEL". VirtualBox. 2010-04-19. Retrieved 2011-04-20.
- "PUEL no longer allowing commercial use with VB extension pack 5.1.30". forums.virtualbox.org. Retrieved 2019-01-18.
- "Licensing: Frequently Asked Questions". VirtualBox. Retrieved 2017-11-28.
- "Editions". VirtualBox. Retrieved 2009-07-04.
- "Copyright file of Virtualbox". Debian. 2016-01-26. Retrieved 2016-07-24.
- "Open Source Licenses by Category". Palo Alto, California: Open Source Initiative. Non-reusable licenses. Retrieved 2016-07-24.
- "Various Licenses and Comments about Them". Boston, Massachusetts: Free Software Foundation. Nonfree Software Licenses. Retrieved 2016-07-24.
- "Interview with Andy Hall, Product Manager for Oracle VM VirtualBox".
- "Internal Networking". VirtualBox. Retrieved 2013-07-31.
- "VirtualBox Manual, Section 10.4 Details about software virtualization". VirtualBox. Retrieved 2011-04-25.
- Dr. Diedrich, Oliver (2007-01-15). "heise open – 15.01.07 – VirtualBox". Heise.de. Retrieved 2009-07-04.
- Perlow, Jason (2010-05-21). "Virtualization Smackdown 2: Oracle VM VirtualBox 3.2 vs. VMware Workstation 7.1". ZDNET. Archived from the original on 2010-05-24. Retrieved 2010-05-24.
- "VirtualBox changelog". Archived from the original on 2010-02-05. Retrieved 2010-02-18.
- "Chapter 4. Guest Additions". VirtualBox. Retrieved 2011-01-17.
- "Chapter 6. Virtual networking". VirtualBox. Retrieved 2011-01-17.
- "Chapter 3. Configuring Virtual Machines". VirtualBox. Retrieved 2011-01-17.
- "VirtualBox 4.1.4 Manual – Chapter 7 Remote Virtual Machines". Oracle. 2011-10-03. Retrieved 2011-11-19.
- "Python API to the VirtualBox VM". Sun Microsystems. 2008-09-05. Archived from the original on 2008-09-10. Retrieved 2008-09-06.
- "#7702 (UEFI support for Windows guests) – Oracle VM VirtualBox". www.virtualbox.org. Retrieved 2019-01-11.
- "Chapter 3. Configuring Virtual Machines". www.virtualbox.org. Retrieved 2019-01-11.
- "Chapter 3. Configuring virtual machines". www.virtualbox.org. Retrieved 2016-04-14.
- "Changelog for VirtualBox 5.0".
- "USB 3.0 Driver: Intel USB 3.0 eXtensible Host Controller Driver for Intel 7 Series/C216 Chipset Family".
- "New separate GUI / VMM mode".
- "Changelog-6.0 – Oracle VM VirtualBox". www.virtualbox.org. Retrieved 2018-12-19.
- Chapter 3. Configuring Virtual Machines: Display Settings
- Changelog for VirtualBox 6.1
- Direct3D does not work on XP guest with SVGA
- "#2973 (USB extremely slow with USB-2.0 (very similar to #464)) – Oracle VM VirtualBox". Oracle. Retrieved 10 October 2014.
- "#4261 (Slow transfer speeds from USB disk) – Oracle VM VirtualBox". Oracle. Retrieved 10 October 2014.
- "virtualbox.org • View topic - USB 3.0 support in XP guests". forums.virtualbox.org. Retrieved 2020-01-25.
- "virtualbox.org • View topic - USB 3.0 support in XP guests". forums.virtualbox.org. Retrieved 2020-01-25.
- "Chapter 14. Known limitations". www.virtualbox.org. Retrieved 2017-03-28.
- "Unofficial Windows 98 Second Edition Service Pack". www.majorgeeks.com. Retrieved 2017-03-28.
- "98SE Option Pack". www.majorgeeks.com. Retrieved 2017-03-28.
- "Windows 9x Power Pack". www.majorgeeks.com. Retrieved 2017-03-28.
- "virtualbox.org • View topic - Tutorial: Windows 95/98 guest OSes". forums.virtualbox.org. Retrieved 2017-03-28.
- "virtualbox.org • View topic - Win98SE with ACPI - Success At Last!". forums.virtualbox.org. Retrieved 2017-03-28.
- "virtualbox.org • View topic - Windows 98SE step by step". forums.virtualbox.org. Retrieved 2017-03-28.
- "virtualbox.org • View topic - Enable Secure Boot and TPM on Virtualbox". forums.virtualbox.org. Retrieved 2019-08-27.
- "Chapter 4. Guest Additions". www.virtualbox.org. Retrieved 2017-03-28.
- "virtualbox.org • View topic - Reason behind the 256MB vram limit". forums.virtualbox.org. Retrieved 2018-01-29.
- "#19275 (Windows 98SE is not installable in VirtualBox 6.1.2 with a Ryzen 3000 CPU) – Oracle VM VirtualBox". www.virtualbox.org. Retrieved 2020-02-14.
- "TLB and Pagewalk Coherence in x86 Processors". 2015-08-10.
- "Windows 9x TLB Invalidation Bug". 2015-08-10.
- "Licensing_FAQ – Oracle VM VirtualBox".
- "Chapter 1. First Steps". www.virtualbox.org. Retrieved 2020-09-03.
- "Chapter 1. First steps".
|Wikimedia Commons has media related to VirtualBox.|
|Wikimedia Commons has media related to Oracle VirtualBox.|
- Official website (includes documentation in HTML and PDF formats)