VirtualBox

From Wikipedia, the free encyclopedia

Sun xVM VirtualBox
VirtualBox

VirtualBox OSE running Foresight Desktop Linux on an Ubuntu host
Developed by Sun Microsystems
Latest release 1.6.2 / June 6, 2008 (2008-06-06); 6 days ago
OS Cross-platform
Genre Virtual machine
License Proprietary / GNU General Public License
Website www.virtualbox.org

Sun xVM VirtualBox is an x86 virtualization software package originally created by German software company innotek GmbH that is now being developed by Sun Microsystems, Inc. It is installed on an existing host operating system; within this application, additional operating systems, each known as a Guest OS, can be loaded and run, each with its own virtual environment. For example, several Linux distributions can be guest hosted on a single virtual machine running Windows XP as the Host OS; or, XP and Windows Vista can run as guest OSes on a machine running OpenSolaris, Solaris or Linux.

Supported host operating systems include Linux, Mac OS X, OS/2 Warp (experimental OSE builds),[1] Windows, and Solaris/OpenSolaris.

Supported guest operating systems include FreeBSD, Linux, OpenBSD, OS/2 Warp, Windows and Solaris.[2]

According to a 2007 survey by DesktopLinux.com, VirtualBox is the third most popular software package for running Windows programs on Linux desktops.[3]

Contents

[edit] History

The application was initially offered under a proprietary software license. In January 2007, after several years of development, VirtualBox OSE (Open Source Edition) was released under GNU General Public License (GPL) version 2,[4]. Currently, there is a proprietary version, VirtualBox, which is free only for personal or evaluation use, subject to the VirtualBox Personal Use and Evaluation License (PUEL)[5] and an Open Source Edition(OSE), VirtualBox OSE, which is free for commercial and private use, subject to Copyleft and other requirements of the GPL license.

Innotek also contributed to the development of OS/2 support in virtualization products from Connectix which were later acquired by Microsoft. Specifically, innotek developed the “additions” code in both Virtual PC and Virtual Server, which greatly improves host-guest OS interactions. OS/2 has been notoriously difficult to run virtualized in the past due to extensive ring 2 execution.

Sun Microsystems acquired innotek in February 2008.[6][7][8]

An older "about" screen, with images related to various operating systems
An older "about" screen, with images related to various operating systems
Seamless Desktop Mode running Windows XP on Ubuntu
Seamless Desktop Mode running Windows XP on Ubuntu

[edit] Feature set

Compared with other established commercial virtualization software such as VMware Workstation, VirtualBox lacks some features, but in turn provides others such as running virtual machines remotely over the Remote Desktop Protocol (RDP), iSCSI support and USB support with remote devices over RDP.

  • Snapshots
  • Seamless mode
  • Clipboard
  • Shared folders
  • Special drivers and utilities to facilitate switching between systems
  • Command line interaction (in addition to the GUI)
  • Remote display (useful for headless host machines)

[edit] Emulated environment

While several guest operating systems can be loaded, it is usually impractical to run several at once. Each can be started, paused and stopped independently. Available RAM is the significant factor in running several operating systems simultaneously.

[edit] Hardware emulation

VirtualBox supports Intel's hardware virtualization VT-x and has experimental support for AMD's AMD-V, but does not use either of them by default.[9]

Hard disks are emulated in a special container format called "Virtual Disk Images", which is, at present, incompatible with the formats used by other virtualization solutions. These are normally stored as system files on the host operating system (with a .vdi suffix). Alternatively, VirtualBox has a unique feature in that it can connect to iSCSI targets and use them as virtual hard disks as well.

ISO images can be mounted as CD/DVD drives. For example the DVD image of a Linux distribution can be downloaded and used directly by VirtualBox. While there's no need to burn a disk, it is also possible to mount physical disks directly to a virtual machine.

By default VirtualBox provides graphics support by emulating a standard VESA card with 8 MB RAM, which can be adjusted. With the Guest Additions for Windows, Linux, or Solaris 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 an AMD PCNet card. By default, VirtualBox sets this up with NAT through which user programs like Firefox or ssh can operate. Other options exist, such as virtual networks between guests.

For a sound card, VirtualBox virtualizes an Intel ICH AC'97 device or a SoundBlaster 16 card.

In the "full release" (not in the open-source edition), a USB controller is emulated so that any USB devices attached to the host can be seen in the guest. 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.

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 to actually execute 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.[10] 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.[11]

VirtualBox also supports Intel VT and AMD AMD-V hardware-assisted virtualization for better performance and more security. [12]

The Mac OS X release supports Mac OS X 10.5 (Leopard)[13]; it currently does not support network bridging[14].

[edit] Future development

A roadmap of features to be added to VirtualBox was released at the CommunityOne 2008 conference.[15] The roadmap included:

  • Memory ballooning
  • 64-bit guests
  • Live migration
  • 3D virtualization
  • More portable snapshots
  • VMDK support
  • VHD support
  • Nested paging for AMD-V and VT-x
  • Next generation seamless windowing with better desktop integration
  • Paravirtualization using VMI and Windows Enlightenments

[edit] Proprietary vs. open source

There are two versions of the VirtualBox software. The full VirtualBox package comes under a proprietary license which allows using the software free-of-charge for personal and educational use and evaluation of the product.[16] Licenses for commercial use of the full VirtualBox package can be purchased from Sun.

A second version called the VirtualBox Open Source Edition (OSE) was released under the GPL, from which the following closed-source features are missing:[17]

  • The built-in Remote Desktop Protocol (RDP) server
  • USB support (see above) and the combination of running the RDP server with support of remote USB devices
  • The iSCSI support for virtual hard disks (see above)

The open source edition was accepted into Debian unstable on 30 August 2007.[18] VirtualBox OSE packages are included in the universe repository of Ubuntu 7.10 and newer.[19]

The USB support is stated to be open sourced at a later version of VirtualBox.

[edit] See also

[edit] References

[edit] External links