VirtualBox
From Wikipedia, the free encyclopedia
VirtualBox | |
Developer: | InnoTek |
---|---|
Latest release: | 1.3.8 / March 14, 2007 |
OS: | Windows, Linux |
Use: | Virtual machine |
License: | GPL / proprietary |
Website: | www.virtualbox.org |
VirtualBox by InnoTek is an x86 virtualizer for Windows and Linux 32-bit hosts supporting Windows, Linux 2.x, OS/2 Warp, OpenBSD and FreeBSD as guest operating systems[1]. After several years of development, VirtualBox was released under the GNU General Public License (GPL) in January 2007.
Compared with the other established commercial virtualizers such as VMware and Virtual PC, VirtualBox lacks some features, but in turn provides others. Such unique features are running virtual machines remotely over the Remote Desktop Protocol (RDP), iSCSI support and USB support with remote devices over RDP.
VirtualBox supports Intel's hardware virtualization VT-x and has experimental support for AMD's AMD-V, but barely uses either of them in practice.
Contents |
[edit] Emulated environment
VirtualBox emulates the following hardware components:
- Hard disks are emulated in a special container format called "Virtual Disk Images" (VDI files), which is, at present, incompatible with the formats used by other virtualizing solutions. In addition, VirtualBox has a unique feature in that in can connect to iSCSI targets and use them as virtual hard disks as well.
- As a graphics adapter, by default, VirtualBox virtualizes a standard VESA card with 8 MB RAM, which can be adjusted. With the Guest Additions (for Windows or Linux 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.
- As an Ethernet network adapter, VirtualBox virtualizes an AMD PCNet card.
- As a sound card, VirtualBox virtualizes an Intel ICH AC'97 device.
- In the proprietary release (not in the open-source edition), a USB 2.0 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 (i.e. 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 lots of privileged instructions, will need to be intercepted. VirtualBox has a rather unique 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 open-source QEMU. In addition, however, VirtualBox automatically disassembles and, in many situations, patches the guest code to avoid future recompilations, as these are comparably expensive.[2] 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.[3]
[edit] Proprietary version vs. Open Source Edition
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.[4]
A second version called the VirtualBox Open Source Edition (OSE) was released under the GPL, from which a number of features are missing, which are:[5]
- The built-in Remote Display Protocol (RDP) server.
- USB support (see above) and the combination of running the RDP server with support of remote USB devices.
- Shared folders, with which host directories can be shared with the guest.
- The iSCSI support for virtual hard disks (see above).
[edit] External links
- http://www.virtualbox.org/
- Benchmark - Virtualbox vs. Qemu vs. VMware-Player
- VirtualBox and VMware Images of Ubuntu 6.10 Desktop