Oracle VM VirtualBox is a virtualization software package for x86 and AMD64/Intel64-based computers
from Oracle Corporation as part of its family of virtualization products. It was created
by innotek GmbH, purchased in 2008 by Sun Microsystems, and now developed by Oracle.
It is installed on an existing host operating system as an application; this host application
allows additional guest operating systems, each known as a Guest OS, to be loaded and
run, each with its own virtual environment. Supported host operating systems include Linux,
Mac OS X, Windows XP, Windows Vista, Windows 7, Windows 8, Solaris, and OpenSolaris; there
are also ports to FreeBSD and Genode. Supported guest operating systems include versions and
derivations of Windows, Linux, BSD, OS/2, Solaris, Haiku and others. Since release 3.2.0,
VirtualBox also allows limited virtualization of Mac OS X guests on Apple hardware, though
OSX86 can also be installed using VirtualBox. Since version 4.3, Windows guests on supported
hardware can take advantage of the recently implemented WDDM driver included in the guest
additions; this allows Windows Aero to be enabled along with Direct3D support.
History
VirtualBox was initially offered by innotek GmbH 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. In January 2007, based
on counsel by LiSoG, innotek GmbH released VirtualBox Open Source Edition as free and
open-source software, subject to the requirements of the GNU General Public License, 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 Microsoft Virtual PC and Microsoft Virtual Server, which enables various host-guest
OS interactions like shared clipboards or dynamic viewport resizing.
Sun Microsystems acquired innotek in February 2008.
Oracle Corporation acquired Sun in January 2010 and re-branded the product as "Oracle
VM VirtualBox". Licensing
With version 4 of VirtualBox, released in December 2010, the core package is free software
released under GNU General Public License version 2. This is the fully featured package,
excluding some proprietary components not available under GPLv2. These components provide
support for USB 2.0 devices, Remote Desktop Protocol and Preboot Execution Environment
for Intel cards and are released as a separate "VirtualBox Oracle VM VirtualBox extension
pack" under a proprietary Personal Use and Evaluation License, which permits use of the
software for personal use, educational use, or evaluation, free of charge.
Oracle defines personal use as any situation in which one person installs the software,
and only that individual, and their friends and family, use the software. Oracle does
not care if that use is for commercial or non-commercial purposes. Oracle would consider
it non-personal use, for example, if a network administrator installed many copies of the
software on many different machines, on behalf of many different end-users. That type of
situation would require purchasing a special volume license.
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 was released under GPLv2.
This removed the same proprietary components not available under GPLv2.
Virtualbox requires the use of the Open Watcom compiler to build the BIOS since version 4.2.
Although VirtualBox has experimental support for Mac OS X guests, the end user license
agreement of Mac OS X does not permit the operating system to run on non-Apple hardware,
enforced within the operating system by calls to the Apple System Management Controller
in all Apple machines, which verifies the authenticity of the hardware.
Emulated environment
Users of VirtualBox can load multiple guest OSs under a single host operating-system.
Each guest can be started, paused and stopped independently within its own virtual machine.
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.
Software-based virtualization 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
to scan the ring 0 code recursively before its first execution to identify problematic
instructions and then calls the Patch Manager 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.
Using these techniques, VirtualBox can achieve a performance comparable to that of VMware.
Hardware-assisted virtualization VirtualBox supports both Intel's VT-x and
AMD's AMD-V hardware-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.
VirtualBox supports some guests only on hosts with hardware-assisted virtualization.
Device virtualization The system emulates hard disks in one of three
disk image formats: a VirtualBox-specific container format, called
"Virtual Disk Image", storing files on the host operating system
VMware Virtual Machine Disk Format Microsoft Virtual PC VHD format
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, SCSI, SATA and SAS controllers to which hard drives can be attached.
VirtualBox has supported Open Virtualization Format since version 2.2.0.
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 .
For an Ethernet network adapter, VirtualBox virtualizes these Network Interface Cards:
AMD PCnet PCI II AMD PCnet-Fast III
Intel Pro/1000 MT Desktop Intel Pro/1000 MT Server
Intel Pro/1000 T Server 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. 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 closed-source extension pack adds a USB 2.0 controller 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. Feature set
64-bit guests Snapshots
Seamless mode - the ability to run virtualized applications side by side with your normal
desktop applications Shared clipboard
Shared folders Special drivers and utilities to facilitate
switching between systems Command line interaction
Public API to control VM configuration and execution
Nested paging for AMD-V and Intel VT Limited support for 3D graphics acceleration
3.0 and Direct3D 9.0c via Wine's Direct3D to OpenGL translation)
SMP support, since version 3.0 Teleportation
2D video output acceleration, since version 3.1
Storage emulation features NCQ support for SATA, SCSI and SAS raw disks
and partitions Pass-through mode for solid-state drives
Pass-through mode for CDBD disks - allows to play audio CDs, burn optical disks, play
encrypted DVD disks Can disable host OS I/O cache
Allows to limit IO bandwidth PATA, SATA, SCSI, SAS, iSCSI, floppy disk
controllers 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 format support
– allows VirtualBox to exchange disk images with VMware
Microsoft VHD support QEMU qed and qcow disks
HDD format disks used by Parallels virtualization products
Since version 3.2 Mac OS X Server guest support – experimental
Memory ballooning RAM deduplication for Windows guests on 64-bit
hosts CPU hot-plugging for Linux and certain Windows
guests 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 video acceleration
Run and control guest applications from the host – for automated software deployments
Since version 4.0 The PUEL/OSE separation was given up 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 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 Multi-monitor guest setups for Linux/Solaris
guests Resizing of disk image formats from Oracle,
VDI, and Microsoft, VHD Since version 4.1
Windows Aero support Virtual machine cloning
Since version 4.2 Virtual machine groups - allows you to manage
a group of virtual machines as a single unit Some VM settings can be altered during a VM
execution Support up to 36 NICs in case of the ICH9
chipset Support for limiting network IO bandwidth
Can automatically run VMs on a host system startup
Since version 4.3 VM video capturing support
Host touch devices support/USB virtualization of such devices
The extension pack Some features require the installation of
the closed-source "VirtualBox Extension Pack": Support for a virtual USB 2.0 controller
VirtualBox RDP: support for proprietary remote connection protocol developed by Microsoft
and Citrix. PXE boot for Intel cards
See also
Comparison of platform virtual machines Hypervisor
LHC@home, distributed computing project for particle physics at the Large Hadron Collider
that uses VirtualBox Platform virtualization
Virtual disk image References
External links Official website
Sub-site at Oracle Virtualbox Downloads
All downloads index. E.g. for guest additions