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.
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.
The feature was dropped starting with VirtualBox 6.1.
Version 6.0 and earlier
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).
Using these techniques, VirtualBox can achieve a performance comparable to that of VMware.
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.
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 .
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.
For a sound card, VirtualBox virtualizes Intel HD Audio, Intel ICH AC'97 and SoundBlaster 16 devices.
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).
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)
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
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.
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 Pack
Some features require the installation of the closed-source "VirtualBox Extension Pack":
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.
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.
^Support for 64-bit Windows was added with VirtualBox 1.5. Support for Windows XP was removed with VirtualBox 5.0. Support for Windows Vista was removed with VirtualBox 5.2. Windows 7 support was removed in version 6.1.
^"Oracle VM VirtualBox 4.3 Now Available" (Press release). Oracle Corporation. 2013-10-15. Retrieved . 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.