Jump to content

VirtualBox: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
TXiKiBoT (talk | contribs)
m robot Adding: eu:VirtualBox
web interface
Line 108: Line 108:
* [[iSCSI]] support
* [[iSCSI]] support
* [[Open Virtualization Format]] (OVF) support (import/export)
* [[Open Virtualization Format]] (OVF) support (import/export)

==Web Console==
A [[Google Code]] project using [[AJAX]] to implement the VirtualBox UI is also available. This allows users to administer VirtualBox remotely from a [[web browser]] It is released under the [[MIT Licence]].


== Future development ==
== Future development ==
Line 130: Line 133:
* [http://www.virtualbox.org/ Project home page]
* [http://www.virtualbox.org/ Project home page]
* [http://www.sun.com/software/products/virtualbox Sub-site at Sun Microsystems]
* [http://www.sun.com/software/products/virtualbox Sub-site at Sun Microsystems]
* [http://code.google.com/p/vboxweb/ VirtualBox Web Interface]


[[Category:Virtualization software]]
[[Category:Virtualization software]]

Revision as of 18:24, 19 October 2009

VirtualBox
Original author(s)Innotek
Developer(s)Sun Microsystems
Initial releaseJanuary 15, 2007 (2007-01-15)
Stable release7.0.10 (17 July 2023; 12 months ago (2023-07-17)[1]) [±]
Repository
Written inC++
Operating systemCross-platform
Size~36-67 MiB
TypeVirtual machine
LicenseProprietary / GNU General Public License (Optionally CDDL for most files of the source distribution)
Websitevirtualbox.org

VirtualBox is an x86 virtualization software package, originally created by German software company Innotek, now developed by Sun Microsystems as part of its Sun xVM virtualization platform. 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.

Supported host operating systems include Linux, Mac OS X, OS/2 Warp, Windows XP, Windows Vista, and Solaris; there is also an experimental port to FreeBSD.[2] Supported guest operating systems include a small number of versions of NetBSD and various versions of DragonFlyBSD, FreeBSD, Linux, OpenBSD, OS/2 Warp, Windows, Solaris, Haiku, Syllable, ReactOS and SkyOS.[3] The latest version also supports Windows 7.

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

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).[5] In January 2007, VirtualBox OSE (Open Source Edition) was released as free software, subject to the requirements of the GNU General Public License (GPL), version 2.[6]

The original developer, innotek, also contributed to the development of OS/2 and Linux support in virtualization[7] and OS/2 ports[8] 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. OS/2 has been notoriously difficult to run virtualized in the past due to extensive ring 2 execution.[citation needed]

Sun Microsystems acquired Innotek in February 2008.[9][10][11]

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.[12] Licenses for commercial deployment of the full VirtualBox package can be purchased from Sun, although commercial use by individuals within a company is covered by the free PUEL.[13]

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:[14]

  • 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.

Hardware emulation

VirtualBox supports both Intel's hardware virtualization VT-x and AMD's AMD-V.[15]

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. VirtualBox can also read and write disk images in VMware Virtual Machine Disk Format (VMDK) and Microsoft Virtual PC VHD format. This means that a VirtualBox virtual machine can be set up using disks that were created in VMware or Microsoft Virtual PC.

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 CD/DVD disks directly to a virtual machine.

By default VirtualBox provides graphics support through a custom virtual graphics card which is VESA compatible. With the Guest Additions for Windows, Linux, Solaris 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. For hosts other than Windows Vista, other options exist, such as virtual networks between guests. Up to eight network adapters can be attached simultaneously, but only four are configurable through the graphical interface.

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 (both USB 1.1 and USB 2.0) 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.[16] 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.[17]

Feature set

Seamless Desktop Mode running Kubuntu on Windows Vista. Note: Pop up menu with useful commands
  • 64-bit guests (64-bit hosts with CPU virtualization extensions or experimentally on 64-bit capable 32-bit host operating systems)
  • NCQ support for SATA raw disks and partitions
  • Snapshots
  • Seamless mode
  • Clipboard
  • Shared folders
  • Special drivers and utilities to facilitate switching between systems
  • Experimental OpenGL drivers for win32 and Linux to render on Host hardware
  • Command line interaction (in addition to the GUI)
  • Public API (Java, Python, SOAP, XPCOM) to control VM configuration and execution [18]
  • Remote display (useful for headless host machines)
  • Nested paging for AMD-V and Intel Core i7
  • Raw hard disk access - allows physical hard disk partitions on the host system to appear in the guest system
  • VMware Virtual Machine Disk Format (VMDK) 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

Only available in the full (closed source) version:

Web Console

A Google Code project using AJAX to implement the VirtualBox UI is also available. This allows users to administer VirtualBox remotely from a web browser It is released under the MIT Licence.

Future development

A roadmap of features which are planned to be added to VirtualBox was released at the CommunityOne 2008 conference.[19] A second roadmap was disclosed at the Open Source Conference in Malta.[20] The roadmaps included:

Virtualbox and VDI

While VirtualBox is usually considered a desktop virtualization product, Sun has decided to use it for its Desktop Virtualization (VDI) product Sun VDI 3.0. This product uses a customized version of VirtualBox 2.0.8 that is integrated into the VDI environment using VirtualBox webservices.

See also

References

  1. ^ "Changelog". Oracle VM Virtualbox. Oracle. 2023-07-17. Retrieved 2023-07-17.
  2. ^ "VirtualBox - FreeBSD Wiki". Wiki.freebsd.org. 2009-06-16. Retrieved 2009-07-04.
  3. ^ "Guest_OSes". VirtualBox. 2009-06-12. Retrieved 2009-07-04.
  4. ^ "2007 Desktop Linux Survey results revealed".
  5. ^ "VirtualBox_PUEL - VirtualBox". VirtualBox<!. 2008-09-10. Retrieved 2009-07-04.
  6. ^ "GPL". VirtualBox. Retrieved 2009-07-04.
  7. ^ Ronny Ong   View profile    More options. "Additions Version History - microsoft.public.virtualpc | Google Groups". Groups.google.com. Retrieved 2009-07-04.
  8. ^ "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. Retrieved 2009-07-04.
  9. ^ "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.
  10. ^ "E-Commerce News: Business: Sun Gets Desktop Virtualization Chops With Innotek Buy". Ecommercetimes.com. Retrieved 2009-07-04.
  11. ^ "Sun Welcomes Innotek". Sun Microsystems, Inc. Retrieved 2008-02-26. On February 20 Sun completed the acquisition of innotek
  12. ^ "VirtualBox_PUEL". VirtualBox. 2008-09-10. Retrieved 2009-07-04.
  13. ^ "Licensing FAQ". VirtualBox. Retrieved 2008-12-16.
  14. ^ "Editions". VirtualBox. Retrieved 2009-07-04.
  15. ^ "Developer_FAQ". VirtualBox. Retrieved 2009-07-04.
  16. ^ "VirtualBox_architecture". VirtualBox. Retrieved 2009-07-04.
  17. ^ Dr. Oliver Diedrich (2007-01-15). "heise open - 15.01.07 - VirtualBox". Heise.de. Retrieved 2009-07-04.
  18. ^ "Python API to the VirtualBox VM". Sun Microsystems. 2008-09-05. Retrieved 2008-09-06.
  19. ^ "VirtualBox 1.6 at Community One : OS Technology". Blogs.sun.com. 2008-05-05. Retrieved 2009-07-04.
  20. ^ "Sun Microsystems SE Europe > Events > Open Source Conference - Malta". Me.sun.com. Retrieved 2009-07-04.