VirtualBox
File:VirtualBox326.png | |
Original author(s) | innotek |
---|---|
Developer(s) | Oracle Corporation |
Initial release | January 15, 2007 |
Stable release | 7.0.10 (17 July 2023[1]) [±] |
Repository | |
Written in | C++, C, X86 assembly |
Operating system | Cross-platform |
Size | 40–82 MiB depending on platform[2] |
Type | Virtual machine |
License | Base Package: GNU General Public License version 2 (Optionally CDDL for most files of the source distribution), "Extension Pack": PUEL |
Website | www |
Oracle VM VirtualBox is an x86 virtualization software package, originally created by software company innotek GmbH, purchased by Sun Microsystems, and now developed by Oracle Corporation as part of its family of virtualization products. It is installed on an existing host operating system; within this application, additional guest operating systems, each known as a Guest OS, can 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, Solaris and OpenSolaris; there is also a port to FreeBSD (only OSE version).[3] Supported guest operating systems include a small number of versions of NetBSD and various versions of Windows, Linux, DragonFlyBSD, FreeBSD, OpenBSD, OS/2 Warp, Solaris, OpenSolaris, Haiku, Syllable, ReactOS and SkyOS.[4] Since release 3.2.0, VirtualBox also allows limited virtualization of Mac OS X guests on Apple hardware.[5] The end user license agreement of Mac OS X does not permit that 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. [6]
According to 2010 surveys by LinuxJournal.com [7] and LifeHacker.com [8], VirtualBox was the most popular virtualization product with over 50% of the vote.
History
The application was initially offered under a proprietary software license. One version of the product was available at no cost for personal or evaluation use, subject to the VirtualBox Personal Use and Evaluation License (PUEL).[9] 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.[10]
The original developer, innotek, also contributed to the development of OS/2 and Linux support in virtualization[11] and OS/2 ports[12] 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 greatly improves host-guest OS interactions.
Sun Microsystems acquired innotek in February 2008.[13][14][15]
Oracle Corporation acquired Sun in January 2010, at which point the product was rebranded as Oracle VM VirtualBox.[16][17][18]
Licensing
There are two versions of the VirtualBox software.
The full VirtualBox package comes under a proprietary Personal Use and Evaluation License (PUEL), which allows using the software free of charge for personal and educational use and evaluation of the product.[19] Licenses for commercial deployment of the full VirtualBox package can be purchased from Oracle, although commercial use by individuals within a company is covered by the free PUEL.[20]
A second version called the VirtualBox Open Source Edition (OSE) is free software released under the GNU General Public License (GPL), from which the following closed-source features are missing:[21]
- The built-in Remote Desktop Protocol (RDP) server
- USB support (see below) and the combination of running the RDP server with support of remote USB devices
Emulated environment
Several guest operating systems can be loaded. Each can be started, paused and stopped independently. The host operating system and guest operating systems can communicate with each other through a common clipboard or using the network facility provided, as can guest operating systems if more than one is running.
VirtualBox attempts to run as much guest code natively (that is, directly on the host processor) as possible. This works well for user-mode code running in the guest's ring 3 of the Intel ring architecture. However, the guest's ring-0 code, which will usually contain many privileged instructions, will need to be intercepted. VirtualBox has a rather novel approach to fix this conflict: It tricks the guest operating system into actually executing its ring-0 code in ring 1, which is normally unused on the Intel architecture.
If problems arise, VirtualBox has a built-in dynamic recompiler, like other virtualizers do. VirtualBox's recompiler is based on the free and open-source QEMU. In addition, however, VirtualBox automatically disassembles and, in many situations, patches the guest code to avoid future recompilations, as these are relatively expensive.[22] As a result, both the guest's ring-3 and ring-0 code can run natively most of the time, and with this combination of "traditional" recompiling and actual code patching, VirtualBox achieves a performance that is comparable to that of VMware.[23] It has been shown to have even better performance in some tests.[24]
Hardware emulation
VirtualBox supports both Intel's hardware virtualization VT-x and AMD's AMD-V.[25]
Hard disks are emulated in one of three disk image formats: a VirtualBox-specific container format called "Virtual Disk Image" (VDI) which are stored as files (with a .vdi suffix) on the host operating system ; VMware Virtual Machine Disk Format (VMDK); and Microsoft Virtual PC VHD format. This means that a VirtualBox virtual machine can be set up to use disks that were 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.
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 which is VESA compatible. With the Guest Additions for Windows, Linux, Solaris, OpenSolaris or OS/2 guests comes a special video driver that allows for better performance and features such as dynamically adjusting the guest resolution when the VM window is resized.
For an Ethernet network adapter, VirtualBox virtualizes these Network Interface Cards: AMD PCnet PCI II (Am79C970A), AMD PCnet-Fast III (Am79C973), Intel Pro/1000 MT Desktop (82540EM), Intel Pro/1000 MT Server (82545EM), and Intel Pro/1000 T Server (82543GC). Such a broad range of the emulated network cards allows running many operating systems without finding and installing drivers. By default, VirtualBox sets the network up with NAT through which user programs like Firefox or ssh can operate. Other options exist, such as bridged networking via a host NIC or virtual networks between guests just to mention some. Up to eight 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.
In the open source edition, 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.
Feature set
- 64-bit guests (64-bit hosts with CPU virtualization extensions)
- 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 [26]
- Nested paging for AMD-V and Intel VT (only for Intel Nehalem processors and up)
- 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), since version 3.0
- Teleportation (aka Live Migration), since version 3.1
- 2D video acceleration, since version 3.1
Since version 3.2:
- Mac OS X server guest support - experimental (only if VirtualBox is running on Mac hardware)
- 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, addition 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 allocate more than 1.5GB of RAM
- In addition to OVF, the single file OVA format is supported
- CPU use and IO 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
Features only available with the extension pack
Some features require the installation of the closed-source "VirtualBox Extension Pack"[27]:
- 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
VirtualBox and VDI
Virtual desktop infrastructure (VDI) is the server computing model enabling desktop virtualization, but Virtual Desktop Image (also VDI) is the name of the default VirtualBox container storage format.
Virtual Desktop Infrastructure
While VirtualBox is usually considered a desktop virtualization product, Oracle uses it for its desktop virtualization product Oracle VDI. This product uses a dedicated version of VirtualBox that is integrated into the Virtual Desktop Infrastructure environment using VirtualBox webservices.
Virtual Desktop Image
Virtual Desktop Image (VDI) is the name of the default storage format for VirtualBox containers.
VirtualBox also supports other well known storage formats[28] 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 as this can be achieved in many ways with third-party tools or the guest OS itself.[29]
VirtualBox supports Open Virtualization Format (OVF) since version 2.2.0 (April 2009).[30]
See also
References
- ^ "Changelog". Oracle VM Virtualbox. Oracle. 2023-07-17. Retrieved 2023-07-17.
- ^ http://dlc.sun.com/virtualbox/vboxdownload.html
- ^ "VirtualBox - FreeBSD Wiki". Wiki.freebsd.org. 2009-06-16. Retrieved 2009-07-04.
- ^ "Guest_OSes". VirtualBox. 2009-06-12. Retrieved 2009-07-04.
- ^ VirtualBox 3.2 Beta Virtualizes Mac OS X (On Macs), May 4, 2010, By Kevin Purdy, Lifehacker
- ^ Interview with Andy Hall, Product Manager for Oracle VM VirtualBox
- ^ "2010 Linux Journal Readers' Choice Awards".
- ^ "LifeHacker.com Best Virtual Machine Application".
- ^ "VirtualBox_PUEL - VirtualBox". VirtualBox. 2008-09-10. Retrieved 2009-07-04.
- ^ "GPL". VirtualBox. Retrieved 2009-07-04.
- ^ Ronny Ong View profile More options. "Additions Version History - microsoft.public.virtualpc | Google Groups". Groups.google.com. 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. February 12, 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. February 25, 2010. Retrieved March 6, 2010.
- ^ Hawley, Adam (February 26, 2010). "The Oracle VM Product Line Welcomes Sun!". Oracle Virtualization Blog. Oracle Corporation. Retrieved March 6, 2010.
- ^ "VirtualBox_PUEL". VirtualBox. 2008-09-10. Retrieved 2009-07-04.
- ^ "Licensing FAQ". VirtualBox. Retrieved 2008-12-16.
- ^ "Editions". VirtualBox. Retrieved 2009-07-04.
- ^ "VirtualBox_architecture". VirtualBox. Retrieved 2009-07-04.
- ^ Dr. Oliver Diedrich (2007-01-15). "heise open - 15.01.07 - VirtualBox". Heise.de. Retrieved 2009-07-04.
- ^ Jason Perlow (2010-05-21). "Virtualization Smackdown 2: Oracle VM VirtualBox 3.2 vs. VMware Workstation 7.1". ZDNET. Retrieved 2010-05-24.
- ^ "Developer_FAQ". VirtualBox. Retrieved 2009-07-04.
- ^ "Python API to the VirtualBox VM". Sun Microsystems. 2008-09-05. Retrieved 2008-09-06.
- ^ http://www.virtualbox.org/wiki/Downloads
- ^ Guide/Virtual storage "Virtual storage". VirtualBox. 2009-10-30. Retrieved 2009-10-30.
{{cite web}}
: Check|url=
value (help) [dead link ] - ^ "Howto increase hard disk size after installing a guest OS". End user forums for VirtualBox. 2009-10-30. Retrieved 2009-10-30.
- ^ "VirtualBox changelog". Retrieved 2010-02-18.
External links