Original author(s) | InnoTek Systemberatung GmbH (2007–2008) Sun Microsystems (2008–2010) |
---|---|
Developer(s) | Oracle Corporation |
Initial release | 17 January 2007 |
Stable release | |
Repository | |
Written in | C, C++, x86 Assembly, Python |
Operating system | Windows, macOS, Linux and Solaris [2] |
Platform | x86-64, Apple silicon ARM64 since version 7.1 (version series 5.x and earlier work on IA-32) [3] |
Type | Hypervisor |
License |
|
Website | www |
Oracle VirtualBox (formerly Sun VirtualBox, Sun xVM VirtualBox and InnoTek VirtualBox) is a hosted hypervisor for x86 virtualization developed by Oracle Corporation. VirtualBox was originally created by InnoTek Systemberatung GmbH, which was acquired by Sun Microsystems in 2008, which was in turn acquired by Oracle in 2010.
VirtualBox may be installed on Microsoft Windows, macOS, Linux, Solaris and OpenSolaris. There are also ports to FreeBSD [5] and Genode. [6] It supports the creation and management of guest virtual machines running Windows, Linux, BSD, OS/2, Solaris, Haiku, and OSx86, [7] as well as limited virtualization of macOS guests on Apple hardware. [8] [9] For some guest operating systems, a "Guest Additions" package of device drivers and system applications is available, [10] [11] which typically improves performance, especially that of graphics, and allows changing the resolution of the guest OS automatically when the window of the virtual machine on the host OS is resized.
Released under the terms of the GNU General Public License and, optionally, the CDDL for most files of the source distribution, VirtualBox is free and open-source software, though the Extension Pack is proprietary software, free of charge only to personal users. The License to VirtualBox was relicensed to GPLv3 with linking exceptions to the CDDL and other GPL-incompatible licenses. [12]
VirtualBox was first offered by InnoTek Systemberatung GmbH, a German company based in Weinstadt, 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). [13] In January 2007, based on counsel by LiSoG, InnoTek released VirtualBox Open Source Edition (OSE) as free and open-source software, subject to the requirements of the GNU General Public License (GPL), version 2. [14]
InnoTek also contributed to the development of OS/2 and Linux support in virtualization [15] and OS/2 ports [16] of products from Connectix which were later acquired by Microsoft. Specifically, InnoTek developed the "additions" code in both Windows 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. [17] [18] [19]
Following the acquisition of Sun Microsystems by Oracle Corporation in January 2010, the product was re-branded as "Oracle VM VirtualBox". [20] [21] [22]
In December 2019, VirtualBox removed support for software-based virtualization and exclusively performs hardware-assisted virtualization. [23] [2]
This section contains a list of miscellaneous information.(November 2021) |
Version | Release date | Notable changes |
---|---|---|
3.2 | May 19, 2010 |
|
4.0 | Dec 22, 2010 |
|
4.1 | Jul 19, 2011 |
|
4.2 | Sep 13, 2012 |
|
4.3 | Oct 15, 2013 |
|
5.0 | Jul 9, 2015 |
|
6.0 | Dec 18, 2018 |
|
6.1 | Dec 10, 2019 |
|
7.0 | Oct 10, 2022 |
|
7.1 | Sep 9, 2024 |
The core package, since version 4 in December 2010, is free software under GNU General Public License version 2 (GPLv2). A supplementary package, under a proprietary license, adds support for USB 2.0 and 3.0 devices, Remote Desktop Protocol (RDP), disk encryption, NVMe, and Preboot Execution Environment (PXE). This package is called "VirtualBox Oracle VM VirtualBox extension pack". It includes closed-source components, so it is not source-available. [27] The license is called Personal Use and Evaluation License (PUEL). It allows gratis access for personal use, educational use, and evaluation. [28] Since VirtualBox version 5.1.30, [29] Oracle defines personal use as installation on a single computer for non-commercial purposes. [30]
Prior to version 4, there were two different packages of the VirtualBox software. The full package was offered gratis 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. [30] [27]
Since version 4.2[ citation needed ], building the BIOS for VirtualBox requires the Open Watcom compiler, [31] which is released under the Sybase Open Watcom Public License. The Open Source Initiative has approved this as "Open Source" [32] but the Free Software Foundation and the Debian Free Software Guidelines do not consider it "free". [31] [33]
VirtualBox has experimental support for macOS guests. However, macOS's end user license agreement does not permit running on non-Apple hardware. The operating system enforces this by calling the Apple System Management Controller (SMC), to verify the hardware's authenticity. All Apple machines have an SMC. [34]
Users of VirtualBox can load multiple guest OSes 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. Guest VMs can also directly communicate with each other if configured to do so. [35]
VirtualBox supports both Intel's VT-x and AMD's AMD-V hardware-assisted 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. [ citation needed ]
Starting with version 6.1, VirtualBox only supports this method. [23] [2] Until then, VirtualBox specifically supported some guests (including 64-bit guests, SMP guests and certain proprietary OSs) only on hosts with hardware-assisted virtualization. [ citation needed ]
VirtualBox emulates hard disks in three formats: the native VDI (Virtual Disk Image), [36] VMware's VMDK, and Microsoft's VHD. It thus supports disks created by other hypervisor software. 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.
VirtualBox has supported Open Virtualization Format (OVF) since version 2.2.0 (April 2009). [37]
Both ISO images and physical devices connected to the host can be mounted as CD or DVD drives. VirtualBox supports running operating systems from live CDs and DVDs.
By default, VirtualBox provides graphics support through a custom virtual graphics-card that is VBE or UEFI GOP compatible. The Guest Additions for Windows, Linux, Solaris, OpenSolaris, and 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 [38] and desktop composition via virtualized WDDM drivers.
For an Ethernet network adapter, VirtualBox virtualizes these Network Interface Cards: [39]
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, and SoundBlaster 16 devices. [40]
A USB 1.1 controller is emulated, so that any USB devices attached to the host can be seen in the guest. The proprietary extension pack adds a USB 2.0 or USB 3.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 has promised support for other platforms in future versions). [41]
In the absence of hardware-assisted virtualization, versions 6.0.24 and earlier of VirtualBox could adopt a standard software-based virtualization approach. This mode supports 32-bit guest operating systems which run in rings 0 and 3 of the Intel ring architecture.
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). [42]
Using these techniques, VirtualBox could achieve performance comparable to that of VMware in its later versions. [43] [44]
The feature was dropped starting with VirtualBox 6.1. [23] [2]
Storage support includes:
The supported operating systems include: [75]
Some features require the installation of the closed-source "VirtualBox Extension Pack": [2]
While VirtualBox itself is free to use and is distributed under an open source license the VirtualBox Extension Pack is licensed under the VirtualBox Personal Use and Evaluation License (PUEL). Personal use of the extension pack is free but commercial users need to purchase a license. [91]
Guest Additions are installed within each guest virtual machine which supports them; the Extension Pack is installed on the host running VirtualBox.
In computing, a virtual machine (VM) is the virtualization or emulation of a computer system. Virtual machines are based on computer architectures and provide the functionality of a physical computer. Their implementations may involve specialized hardware, software, or a combination of the two. Virtual machines differ and are organized by their function, shown here:
Virtual PC is a discontinued x86 emulator software for Microsoft Windows hosts and PowerPC-based Mac hosts. It was created by Connectix in 1997 and acquired by Microsoft in 2003, after which the program was renamed Microsoft Virtual PC. In July 2006, Microsoft released the Windows version free of charge. The Mac version was discontinued the same year following the Mac transition to Intel. In 2009, Microsoft released Windows Virtual PC, which is only compatible with Windows 7 hosts, and is the technical foundation for the latter's Windows XP Mode. Windows Virtual PC does not officially support MS-DOS or operating systems older than Windows XP Professional SP3 as guests. Virtual PC was discontinued in 2011 in favour of Hyper-V.
Bochs is a portable IA-32 and x86-64 IBM PC compatible emulator and debugger mostly written in C++ and distributed as free software under the GNU Lesser General Public License. It supports emulation of the processor(s), memory, disks, display, Ethernet, BIOS and common hardware peripherals of PCs.
Xen is a free and open-source type-1 hypervisor, providing services that allow multiple computer operating systems to execute on the same computer hardware concurrently. It was originally developed by the University of Cambridge Computer Laboratory and is now being developed by the Linux Foundation with support from Intel, Citrix, Arm Ltd, Huawei, AWS, Alibaba Cloud, AMD, Bitdefender and EPAM Systems.
QEMU is a free and open source emulator that uses dynamic binary translation to emulate the processor of a computer. It provides a variety of hardware and device models for the virtual machine, enabling it to run different guest operating systems. QEMU can be used in conjunction with a Kernel-based Virtual Machine (KVM) to emulate hardware at near-native speeds. Additionally, it supports user-level processes, allowing applications compiled for one processor architecture to run on another.
Platform virtualization software, specifically emulators and hypervisors, are software packages that emulate the whole physical computer machine, often providing multiple virtual machines on one physical platform. The table below compares basic information about platform virtualization hypervisors.
Parallels Workstation is the first commercial software product released by Parallels, Inc., a developer of desktop and server virtualization software. The Workstation software comprises a virtual machine suite for Intel x86-compatible computers which allows the simultaneous creation and execution of multiple x86 virtual computers. They distributed the product as a download package. Parallels Workstation has been discontinued for Windows and Linux as of 2013.
A Hackintosh is a computer that runs Apple's operating system macOS on computer hardware that is not authorized for the purpose by Apple. This can also include running Mac software on hardware it is not originally authorized for. This is due to the software license for macOS only permitting its use on in-house hardware built by Apple itself, in this case the Mac line.
The Apple–Intel architecture, or Mactel, is an unofficial name used for Macintosh personal computers developed and manufactured by Apple Inc. that use Intel x86 processors, rather than the PowerPC and Motorola 68000 ("68k") series processors used in their predecessors or the ARM-based Apple silicon SoCs used in their successors. As Apple changed the architecture of its products, they changed the firmware from the Open Firmware used on PowerPC-based Macs to the Intel-designed Extensible Firmware Interface (EFI). With the change in processor architecture to x86, Macs gained the ability to boot into x86-native operating systems, while Intel VT-x brought near-native virtualization with macOS as the host OS.
Boot Camp Assistant is a multi boot utility included with Apple Inc.'s macOS that assists users in installing Microsoft Windows operating systems on Intel-based Macintosh computers. The utility guides users through non-destructive disk partitioning of their hard disk drive or solid-state drive and installation of Windows device drivers for the Apple hardware. The utility also installs a Windows Control Panel applet for selecting the default boot operating system.
In computing, virtualization is the use of a computer to simulate another computer. The following is a chronological list of virtualization technologies.
Kernel-based Virtual Machine (KVM) is a free and open-source virtualization module in the Linux kernel that allows the kernel to function as a hypervisor. It was merged into the mainline Linux kernel in version 2.6.20, which was released on February 5, 2007. KVM requires a processor with hardware virtualization extensions, such as Intel VT or AMD-V. KVM has also been ported to other operating systems such as FreeBSD and illumos in the form of loadable kernel modules.
Parallels Desktop for Mac is a hypervisor providing hardware virtualization for Macintosh computers developed by Parallels, a subsidiary of Corel.
In computing, virtualization (v12n) is a series of technologies that allows dividing of physical computing resources into a series of virtual machines, operating systems, processes or containers.
Second Level Address Translation (SLAT), also known as nested paging, is a hardware-assisted virtualization technology which makes it possible to avoid the overhead associated with software-managed shadow page tables.
bhyve is a type-2 (hosted) hypervisor initially written for FreeBSD. It can also be used on a number of illumos based distributions including SmartOS, OpenIndiana, and OmniOS. A port of bhyve to macOS called xhyve is also available.
Mac OS is the series of operating systems developed for the Macintosh family of personal computers by Apple Computer, Inc. from 1984 to 2001, starting with System 1 and ending with Mac OS 9. The Macintosh operating system is credited with having popularized the graphical user interface concept. It was included with every Macintosh that was sold during the era in which it was developed, and many updates to the system software were done in conjunction with the introduction of new Macintosh systems.
On February 20 Sun completed the acquisition of Innotek