"Virtual box" redirects here. For virtual computers in general, see
virtual machine.
Oracle VM VirtualBox (formerly
Sun VirtualBox,
Sun xVM VirtualBox and
innotek VirtualBox) is an
x86 virtualization software package, created by software company Innotek GmbH, purchased in 2008 by
Sun Microsystems, and now developed by
Oracle Corporation as part of its family of virtualization products. Oracle VM VirtualBox 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 is also a port to
FreeBSD.
[3] Supported guest operating systems include versions and derivations of
Windows,
Linux,
BSD,
OS/2,
Solaris and others.
[4] 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
[5][6]
Since version 4.1, 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.
[edit] History
Logo of VirtualBox OSE, 2007
Innotek initially offered the application 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).
[7] In January 2007, VirtualBox Open Source Edition (OSE) was released as
free software, subject to the requirements of the
GNU General Public License (GPL), version 2.
[8]
The original developer,
innotek, also contributed to the development of
OS/2 and
Linux support in virtualization
[9] and OS/2 ports
[10] 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.
[11][12][13]
Oracle Corporation acquired Sun in January 2010 and re-branded the product as "Oracle VM VirtualBox".
[14][15][16]
[edit] Version summary
Versions of VirtualBox include:
[17]
- version 1.3.2, released 2007, January (first public release, before that it was all internal)
- version 1.5.0, released 2007, September 4
- version 2.0.0, released 2008, September 4
- version 3.0.0, released 2009, June 30
- version 4.0.0, released 2010, December 22
- version 4.1.0, released 2011, July 19
- version 4.2.0, released 2012, September 13
[edit] Licensing
With version 4 of Virtualbox, released in Dec. 2010, the core package is
free software released under
GNU General Public License version 2 (GPLv2). This is the fully featured package, excluding some proprietary components not available under GPLv2. These components provide support for
USB 2.0 devices,
RDP and
PXE boot for Intel cards and are released as a separate "VirtualBox Oracle VM VirtualBox extension pack" under a
proprietary Personal Use and Evaluation License (PUEL), which permits use of the software for personal use, educational use, or evaluation, free of charge.
[18]
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.
[19][20]
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 (SMC) in all Apple machines, which verifies the authenticity of the hardware.
[21]
[edit] Emulated environment
Users of VirtualBox can load multiple guest OSs 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 (provided). Guest VMs can also directly communicate with each other if configured to do so.
[citation needed]
[edit] 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 (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).
[22]
Using these techniques, VirtualBox can achieve a performance comparable to that of
VMware.
[23][24]
[edit] 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 (including 64-bit guests, SMP guests and certain proprietary OSs) only on hosts with
hardware-assisted virtualization.
[edit] Device virtualization
The system emulates hard disks in one of three disk image formats:
- a VirtualBox-specific container format, called "Virtual Disk Image" (VDI), storing files (with a .vdi suffix) on the host operating system
- VMware Virtual Machine Disk Format (VMDK)
- 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 (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
[25] or desktop composition via virtualized
WDDM drivers .
For an
Ethernet network adapter, VirtualBox virtualizes these
Network Interface Cards:
[26]
- 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)
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 device and
SoundBlaster 16 cards.
[27]
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 (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).
[28]
[edit] Feature set
- 64-bit guests (hardware virtualization only)
- NCQ support for SATA, SCSI and SAS raw disks and partitions
- Snapshots
- Seamless mode
- 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[29]
- Nested paging for AMD-V and Intel VT (only for processors supporting SLAT and with SLAT enabled)
- 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 VirtualBox to exchange disk images with VMware
- Microsoft VHD support
- 3D virtualization (Limited support for OpenGL was added to v2.1, more support was added to v2.2, OpenGL 2.0 and Direct3D support was added in VirtualBox 3.0)
- SMP support (up to 32 virtual CPUs per virtual machine), since version 3.0
- Teleportation (aka Live Migration), since version 3.1 (Broken since version 4.1)[30]
- 2D video acceleration, since version 3.1
- Since version 3.2
- Mac OS X Server guest support – experimental
- Memory ballooning
- 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
- 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 (installers, documentation, device drivers)
- Intel HD audio 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 VDI and VHD images
- Since version 4.1
- Windows Aero support (experimental)
- Guest virtual machine cloning
[edit] The extension pack
Some features require the installation of the
closed-source "VirtualBox Extension Pack":
[31]
- Support for a virtual USB 2.0 controller (EHCI)
- VirtualBox RDP: support for proprietary remote connection protocol developed by Microsoft and Citrix.
- PXE boot for Intel cards
[edit] Virtual Disk Image
VirtualBox uses its own format for storage containers – Virtual Disk Image (VDI). VirtualBox also supports other well-known storage formats
[32] such as
VMDK (used in particular by
VMware) as well as the
VHD format used by
Microsoft.
VirtualBox's command-line utility
VBoxManage
includes options for cloning disks and importing and exporting file systems, however, it does not include a tool for increasing the size of the filesystem within a VDI container: this can be achieved in many ways with third-party tools (e.g. CloneVDI provides a GUI for cloning and increasing the size
[33]) or in the guest OS itself.
[34]
VirtualBox has supported
Open Virtualization Format (OVF) since version 2.2.0 (April 2009).
[35]
[edit] See also
[edit] References
- ^ https://www.virtualbox.org/wiki/Downloads
- ^ VirtualBox downloads
- ^ "VirtualBox – FreeBSD Wiki". Wiki.freebsd.org. 2009-06-16. http://wiki.freebsd.org/VirtualBox. Retrieved 2009-07-04.
- ^ "Guest_OSes". VirtualBox. 2009-06-12. http://www.virtualbox.org/wiki/Guest_OSes. Retrieved 2009-07-04.
- ^ [1]
- ^ VirtualBox 3.2 Beta Virtualizes Mac OS X (On Macs), May 4, 2010, By Kevin Purdy, Lifehacker
- ^ "VirtualBox_PUEL – VirtualBox". VirtualBox. 2008-09-10. http://www.virtualbox.org/wiki/VirtualBox_PUEL. Retrieved 2009-07-04.
- ^ "GPL". VirtualBox. http://www.virtualbox.org/wiki/GPL. Retrieved 2009-07-04.
- ^ Ronny Ong View profile More options. "Additions Version History – microsoft.public.virtualpc | Google Groups". Groups.google.com. http://groups.google.com/group/microsoft.public.virtualpc/msg/1dbfbc16da8ac9af. 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. http://findarticles.com/p/articles/mi_m0EIN/is_2002_July_1/ai_88090458. Retrieved 2009-07-04.
- ^ "Sun Microsystems Announces Agreement to Acquire innotek, Expanding Sun xVM Reach to the Developer Desktop" (Press release). Sun Microsystems. February 12, 2008. http://www.sun.com/aboutsun/pr/2008-02/sunflash.20080212.1.xml. Retrieved 2008-02-12.
- ^ "E-Commerce News: Business: Sun Gets Desktop Virtualization Chops With Innotek Buy". Ecommercetimes.com. http://www.ecommercetimes.com/story/61661.html. Retrieved 2009-07-04.
- ^ "Sun Welcomes Innotek". Sun Microsystems, Inc.. http://www.sun.com/software/innotek/. Retrieved 2008-02-26. "On February 20 Sun completed the acquisition of innotek"
- ^ "Oracle and Virtualization". Oracle Corporation. http://www.oracle.com/us/technologies/virtualization/index.html. Retrieved 2010-01-30.
- ^ "VirtualBox Joins Oracle's Enterprise Virtualization Portfolio". systemnews. February 25, 2010. http://sun.systemnews.com/articles/144/4/Virtualization/22866. Retrieved March 6, 2010.[dead link]
- ^ Hawley, Adam (February 26, 2010). "The Oracle VM Product Line Welcomes Sun!". Oracle Virtualization Blog. Oracle Corporation. Archived from the original on 2010-04-07. http://web.archive.org/web/20100407074836/http://blogs.oracle.com/virtualization/2010/02/the_oracle_vm_product_line_wel.html. Retrieved March 6, 2010.
- ^ "Old Versions of VirtualBox". http://www.oldapps.com/virtualbox.php. Retrieved 2012-10-18.
- ^ "VirtualBox_PUEL". VirtualBox. 2010-04-19. http://www.virtualbox.org/wiki/VirtualBox_PUEL. Retrieved 2011-04-20.
- ^ "Licensing FAQ". VirtualBox. http://www.virtualbox.org/wiki/Licensing_FAQ. Retrieved 2008-12-16.
- ^ "Editions". VirtualBox. http://www.virtualbox.org/wiki/Editions. Retrieved 2009-07-04.
- ^ Interview with Andy Hall, Product Manager for Oracle VM VirtualBox
- ^ "VirtualBox Manual, Section 10.4 Details about software virtualization". VirtualBox. http://www.virtualbox.org/manual/ch10.html#idp13728752. Retrieved 2011-04-25.
- ^ Dr. Oliver Diedrich (2007-01-15). "heise open – 15.01.07 – VirtualBox". Heise.de. http://www.heise.de/open/artikel/83678. Retrieved 2009-07-04.
- ^ Jason Perlow (2010-05-21). "Virtualization Smackdown 2: Oracle VM VirtualBox 3.2 vs. VMware Workstation 7.1". ZDNET. http://www.zdnet.com/blog/perlow/virtualization-smackdown-2-oracle-vm-virtualbox-32-vs-vmware-workstation-71/13020. Retrieved 2010-05-24.
- ^ "Chapter 4. Guest Additions". VirtualBox. http://www.virtualbox.org/manual/ch04.html#id448025. Retrieved 2011-01-17.
- ^ "Chapter 6. Virtual networking". VirtualBox. http://www.virtualbox.org/manual/ch06.html#nichardware. Retrieved 2011-01-17.
- ^ "Chapter 3. Configuring Virtual Machines". VirtualBox. http://www.virtualbox.org/manual/ch03.html#settings-audio. Retrieved 2011-01-17.
- ^ "VirtualBox 4.1.4 Manual – Chapter 7 Remote Virtual Machines". Oracle. 2011-10-03. http://www.virtualbox.org/manual/ch07.html#usb-over-rdp. Retrieved 2011-11-19.
- ^ "Python API to the VirtualBox VM". Sun Microsystems. 2008-09-05. Archived from the original on 2008-09-10. http://web.archive.org/web/20080910134357/http://blogs.sun.com/nike/entry/python_api_to_the_virtualbox. Retrieved 2008-09-06.
- ^ "VirtualBox Bug #9455". https://www.virtualbox.org/ticket/9455.
- ^ Downloads – Oracle VM VirtualBox
- ^ Guide/Virtual storage "Virtual storage". VirtualBox. 2009-10-30. http://web.archive.org/web/20100204064658/http://www.virtualbox.org/wiki/User Guide/Virtual storage. Retrieved 2009-10-30.
- ^ https://forums.virtualbox.org/viewtopic.php?f=6&t=22422
- ^ "Howto increase hard disk size after installing a guest OS". End user forums for VirtualBox. 2009-10-30. http://forums.virtualbox.org/viewtopic.php?f=1&t=364&start=30. Retrieved 2009-10-30.
- ^ "VirtualBox changelog". http://www.virtualbox.org/wiki/Changelog-2.2. Retrieved 2010-02-18.
[edit] External links
[show]
|
|
Hardware |
|
|
Software |
|
|
Storage |
|
|
High-performance computing |
|
|
Research |
|
|
Education and recognition |
|
|
Community |
|
|