VirtualBox is a cross-platform virtualization application. What does that mean? For one thing, it installs on your existing Intel or AMD-based computers, whether they are running Windows, Mac, Linux or Solaris operating systems. Secondly, it extends the capabilities of your existing computer so that it can run multiple operating systems (inside multiple virtual machines) at the same time. So, for example, you can run Windows and Linux on your Mac, run Windows Server 2008 on your Linux server, run Linux on your Windows PC, and so on, all alongside your existing applications. You can install and run as many virtual machines as you like -- the only practical limits are disk space and memory.
VirtualBox is deceptively simple yet also very powerful. It can run everywhere from small embedded systems or desktop class machines all the way up to datacenter deployments and even Cloud environments.
Some of the features of VirtualBox are:
* Portability. VirtualBox runs on a large number of 32-bit and 64-bit host operating systems (again, see the section called Supported host operating systems for details).
VirtualBox is a so-called "hosted" hypervisor (sometimes referred to as a "type 2" hypervisor). Whereas a "bare-metal" or "type 1" hypervisor would run directly on the hardware, VirtualBox requires an existing operating system to be installed. It can thus run alongside existing applications on that host.
To a very large degree, VirtualBox is functionally identical on all of the host platforms, and the same file and image formats are used. This allows you to run virtual machines created on one host on another host with a different host operating system; for example, you can create a virtual machine on Windows and then run it under Linux.
In addition, virtual machines can easily be imported and exported using the Open Virtualization Format, an industry standard created for this purpose. You can even import OVFs that were created with a different virtualization software.
* No hardware virtualization required. For many scenarios, VirtualBox does not require the processor features built into newer hardware like Intel VT-x or AMD-V. As opposed to many other virtualization solutions, you can therefore use VirtualBox even on older hardware where these features are not present. The technical details are explained in the section called Hardware vs. software virtualization.
* Guest Additions: shared folders, seamless windows, 3D virtualization. The VirtualBox Guest Additions are software packages which can be installed inside of supported guest systems to improve their performance and to provide additional integration and communication with the host system. After installing the Guest Additions, a virtual machine will support automatic adjustment of video resolutions, seamless windows, accelerated 3D graphics and more. The Guest Additions are described in detail in Chapter 4, Guest Additions.
In particular, Guest Additions provide for "shared folders", which let you access files from the host system from within a guest machine. Shared folders are described in the section called Shared folders.
* Great hardware support. Among others, VirtualBox supports:
o Guest multiprocessing (SMP). VirtualBox can present up to 32 virtual CPUs to each virtual machine, irrespective of how many CPU cores are physically present on your host.
o USB device support. VirtualBox implements a virtual USB controller and allows you to connect arbitrary USB devices to your virtual machines without having to install device-specific drivers on the host. USB support is not limited to certain device categories. For details, see the section called USB settings.
o Hardware compatibility. VirtualBox virtualizes a vast array of virtual devices, among them many devices that are typically provided by other virtualization platforms. That includes IDE, SCSI and SATA hard disk controllers, several virtual network cards and sound cards, virtual serial and parallel ports and an Input/Output Advanced Programmable Interrupt Controller (I/O APIC), which is found in many modern PC systems. This eases cloning of PC images from real machines and importing of third-party virtual machines into VirtualBox.
o Full ACPI support. The Advanced Configuration and Power Interface (ACPI) is fully supported by VirtualBox. This eases cloning of PC images from real machines or third-party virtual machines into VirtualBox. With its unique ACPI power status support, VirtualBox can even report to ACPI-aware guest operating systems the power status of the host. For mobile systems running on battery, the guest can thus enable energy saving and notify the user of the remaining power (e.g. in fullscreen modes).
o Multiscreen resolutions. VirtualBox virtual machines support screen resolutions many times that of a physical screen, allowing them to be spread over a large number of screens attached to the host system.
o Built-in iSCSI support. This unique feature allows you to connect a virtual machine directly to an iSCSI storage server without going through the host system. The VM accesses the iSCSI target directly without the extra overhead that is required for virtualizing hard disks in container files. For details, see the section called iSCSI servers.
o PXE Network boot. The integrated virtual network cards of VirtualBox fully support remote booting via the Preboot Execution Environment (PXE).
* Multigeneration branched snapshots. VirtualBox can save arbitrary snapshots of the state of the virtual machine. You can go back in time and revert the virtual machine to any such snapshot and start an alternative VM configuration from there, effectively creating a whole snapshot tree. For details, see the section called Snapshots. You can create and delete snapshots while the virtual machine is running.
* Clean architecture; unprecedented modularity. VirtualBox has an extremely modular design with well-defined internal programming interfaces and a clean separation of client and server code. This makes it easy to control it from several interfaces at once: for example, you can start a VM simply by clicking on a button in the VirtualBox graphical user interface and then control that machine from the command line, or even remotely. See the section called Alternative front-ends for details.
Due to its modular architecture, VirtualBox can also expose its full functionality and configurability through a comprehensive software development kit (SDK), which allows for integrating every aspect of VirtualBox with other software systems. Please see Chapter 11, VirtualBox programming interfaces for details.
* Remote machine display. The VirtualBox Remote Desktop Extension (VRDE) allows for high-performance remote access to any running virtual machine. This extension supports the Remote Desktop Protocol (RDP) originally built into Microsoft Windows, with special additions for full client USB support.
The VRDE does not rely on the RDP server that is built into Microsoft Windows; instead, it is plugged directly into the virtualization layer. As a result, it works with guest operating systems other than Windows (even in text mode) and does not require application support in the virtual machine either. The VRDE is described in detail in the section called Remote display (VRDP support).
* On top of this special capacity, VirtualBox offers you more unique features:
o Extensible RDP authentication. VirtualBox already supports Winlogon on Windows and PAM on Linux for RDP authentication. In addition, it includes an easy-to-use SDK which allows you to create arbitrary interfaces for other methods of authentication; see the section called RDP authentication for details.
o USB over RDP. Via RDP virtual channel support, VirtualBox also allows you to connect arbitrary USB devices locally to a virtual machine which is running remotely on a VirtualBox RDP server; see the section called Remote USB for details.
Changelog for this release:
This is a maintenance release. The following items were fixed and/or added:
VMM: fixed incorrect handling of ballooned pages when restoring a VMM from a saved state
VMM: don't crash on hosts with more than 64 cores / hyperthreads; implemented support for up to 256 host cores (except Windows hosts; bug #8489)
VMM: fixed guru meditation for PAE guests running on hosts without PAE (bug #8006)
VMM: fixed slow Linux guests with raw mode and recent guest kernels (bug #8726)
GUI: support host key combinations (bug #979)
GUI: fixed progress indicator (bug #7814)
GUI: show the mouse pointer while the VM is paused if the USB tablet mouse emulation is used (bug #6799)
GUI: adapt the snapshot folder as well when renaming a VM (bug #8469)
GUI: persistently remember the last folders of the disk/DVD/floppy selectors
GUI: never allow to start a VM with USB-2.0 activated if the proper extension pack is missing (bug #8182)
GUI: fixed hang/crash when opening a file dialog in an non-existing folder (bug #8673)
Snapshots: fixed a bug which could lose entries in the media registry when restoring a snapshot (bug #8363)
Snapshots: allow snapshots to be stored in the VM directory
3D support: fixed a crash if a VM was forced to terminate (Windows hosts only; bug #7133)
Storage: fixed memory leak (4.0 regression; bug #7966)
Storage: fixed access to iSCSI targets over internal network
Storage: fixed reading from disks with more than one snapshot for VHD and VMDK images with disabled host cache (bug #8408)
Storage: fixed a possible hang during VM suspend after an I/O error occurred
Storage: fixed a possible hang during VM suspend / reset (bug #8276, #8294)
Storage: automatically create a diff image when attaching a streamOptimized VMDK image to a VM
ATA/SATA: fixed automounting of virtual CD/DVD mediums with recent Linux distributions by correctly reporting the current profile as 'none' if no medium is present
Buslogic: fixed emulation for certain guests (e.g. jRockit VE)
Host-Only Networking: fixed interface creation failure on Windows hosts (4.0.4 regression; bug #8362)
Host-Only & Bridged & Internal Networking: fix for processing promiscuous mode requests by VMs, defaulting to switch behaviour
Host-Only Networking: fixed connectivity issue after resuming the host from sleep (bug #3625)
Bridged Networking: support for interface bonding on Mac OS X hosts (bug #8731)
NAT: fixed processing of ARP announcements for guests with static assigned IPs (bug #8609)
VRDP: backward compatibility with VRDPAuth external authentication library (bug #8063)
Shared Folders: don't fail to start a VM if a path is not absolute, for example when importing an OVF from a different host (bug #7941)
Audio: fixed crash under certain conditions (bug #8527)
USB: fixed a crash when plugging certain USB devices (bug #8699)
HPET: fixed time jumps when reading the counter (bug #8707)
OVF/OVA: automatically adjust disk paths if the VM name is changed on import
OVF/OVA: fix export to slow medias
OVF/OVA: automatically repair inconsistent appliances with multiple disks (bug #8253)
rdesktop-vrdp: fixed an assertion triggered under certain conditions (bug #8593)
Windows hosts: fixed occasional hangs during VM shutdown because sometimes COM was not properly uninitialized
Mac OS X hosts: prevent the mouse from leaving the VM window while captured
Mac OS X hosts: keep aspect ratio while resizing in scale mode (shift for old behaviour) (part of bug #7822)
X11 hosts: fixed Yen key support (bug #8438)
X11 hosts: fixed a regression which caused Host+F1 to pop up help instead of sending Ctrl+Alt+F1
Linux hosts / Linux Additions: mangle IPRT symbols to allow installing VirtualBox inside a VM while the Guest Additions are active (bug #5686)
Linux hosts / Linux guests: workaround for a bug in GLIBC older than version 1.11 leading to crashes under certain conditions (signed/unsigned problem with memchr on 64-bit machines)
Solaris hosts: fixed a deadlock in event semaphores that could lead to unkillable VM processes
Windows Additions: fixed Sysprep parameter handling
Windows Additions: fixed spontaneous guest reboots under certain circumstances (4.0.2 regression; bugs #8406, #8429)
Windows Additions: added auto logon support for locked workstations on legacy Windows versions
Windows Additions: fixed driver bugcheck error when handling PnP messages (4.0 regression; bug #8367)
Windows Additions: fixed memory leak in VBoxVideo
X11 Additions: added support for X.Org Server 1.10 final
Linux Additions: Linux kernel 2.6.39-rc1 fixes
Linux Additions: improved auto-run support (bug #5509)
Linux Additions: fix mouse support on SUSE 11 SP 1 guests (bug #7946)
Solaris Additions: added support for X.Org Server 1.9
Guest Additions: various bugfixes for guest control execution
Webservice: use own log file, with log rotation to limit size