VirtualBox

botond published 2024. 02. 12., h - 04:01 time

Content

 

Introductory

Oracle VirtualBox (formerly Sun VirtualBox) is a free and open source virtualization software developed and maintained by Oracle Corporation. This software is designed to allow one or more operating systems to run within a single physical machine in the form of isolated virtual machines. VirtualBox is a widely used tool among system administrators, developers, and educational institutions because it provides a simple yet powerful solution for testing and running different operating systems simultaneously without changing the underlying physical hardware.

 

 

Importance and benefits of VirtualBox

The importance of VirtualBox lies in its ability to facilitate software development, system organization and education, allowing users to try different operating systems without risk. In addition, VirtualBox is also a key tool for creating secure test environments, where potentially unstable or compromised software can be run in isolation without endangering the host's system or data.

One of its main advantages is portability, as VirtualBox virtual machines (VMs) can be easily moved from one physical machine to another, regardless of the underlying hardware architecture or operating system. This greatly facilitates the distribution, testing and demonstration of software in different environments.

Other advantages include ease of use and configurability. VirtualBox's user-friendly interface and extensive documentation allow even novice users to quickly learn the basics of virtualization and use the software effectively. In addition, VirtualBox supports various network settings, shared folders, and multiple virtual hardware configurations, providing a wide range of applications.

Overall, VirtualBox is a versatile and reliable tool that allows users to maximize the possibilities offered by operating systems and applications while minimizing the cost and effort spent on hardware and system organization.

 

history

The history and evolution of VirtualBox is closely intertwined with the development of computing and virtualization over the past decade and a half. It started in 2007, when Innotek GmbH, a German software development company, made it public for the first time. VirtualBox was initially a niche product, but quickly became popular among IT professionals and tech enthusiasts thanks to its ability to easily and efficiently create and manage virtual machines.

Major milestones

  • 2008: Sun Microsystems acquired Innotek GmbH, and this marked the beginning of VirtualBox's rapid development.
  • 2010:  Oracle Corporation acquired Sun Microsystems. Thanks to Oracle's resources and expertise, VirtualBox has added new features and enhancements, improving performance, compatibility, and user experience.
  • v4.x (2010-2016): At the end of the same year, VirtualBox 4.0.0 was released (which was the first release maintained by Oracle), the appearance of which brought significant changes, let's see some of the most important of them:
    • New, unified user interface
    • Support for Intel ICH9 chipset: This development added support for three PCI buses, PCI Express, and Message Signaled Interrupts (MSI) to VirtualBox. This move significantly increased the hardware compatibility and performance of virtual machines, enabling better support for modern operating systems and applications.
    • Introduction of extension packs: VirtualBox was reorganized into a base package and extension packs that offered additional features such as support for USB 2.0 devices.
    • Intel HD Audio support: To better support modern operating systems such as 64-bit Windows, VirtualBox 4.0 introduced support for Intel HD Audio. This improved sound quality and multimedia experience on virtual machines.
    • Asynchronous I/O support for iSCSI, VMDK, VHD and Parallels images: This development has significantly improved the performance of storage devices, especially for large data transfer operations. Asynchronous I/O support allowed VirtualBox to take better advantage of the capabilities of modern hardware, reducing the latency of I/O operations.
    • VRDP compatibility fixes: Improved VRDP (VirtualBox Remote Desktop Protocol) compatibility with rdesktop 1.8.3. This development helped make remote desktop connections more stable and seamless, which is especially important in remote access environments.
    • Improve ExtPack handling: Version 4.1.40 included an important fix in ExtPack handling that prevented the installation from failing if the TMP directory contained non-Latin1 characters. This change improved the reliability of the ExtPack installation process and made the software installation process more user-friendly in different language environments.
    • Additional security fixes for Windows hosts: Versions 4.1.36 and 4.1.38 of VirtualBox included several security fixes on Windows hosts aimed at strengthening the system. These fixes increased the security of running VirtualBox on Windows-based systems, contributing to a more stable and secure operation of virtual machines.
    • Linux host patches: Improved compatibility with Linux 4.2 and Linux 4.3 kernel versions. These fixes ensure that VirtualBox runs smoothly with the latest Linux distributions, improving user experience and system stability.
    • Linux additions and X11 guest support: Fixes for Linux Additions, including fixes for the Linux 3.19 kernel and support for X.Org Server 1.15 and 1.16. These updates ensure that Linux-based guest operating systems work seamlessly with the latest kernel and X server versions, improving system compatibility and performance.
    • Storage device fixes: Improvements in storage management in version 4.3.40, including prevention of an infinite reconnect loop with the iSCSI backend, and a bug that caused the full disk to be used when resizing certain VDI images on the host.
    • NAT Network Fixes: NAT network fixes, including reducing CPU load on VBoxNetNAT under MacOS X under certain circumstances, and NAT network DHCP dynamic changes to your server's configuration.
  • v5.x (2015-2020): Even under version 5.0, many new features were added to the VirtualBox software, some of the most important of them:
    • Paravirtualization support for Windows and Linux guests: This key feature improves timing accuracy and performance by providing a more efficient way for guest systems to interact with the host system, optimizing the execution of guest operating systems.
    • xHCI controller for USB 3 devices: The introduction of the xHCI driver in VirtualBox 5.0 provided support for USB 3.0 devices, significantly improving data transfer rates between the host and virtual machines. This was a crucial upgrade given the rapid proliferation of USB 3.0 devices.
    • Two-way drag and drop support: Starting with version 5.0, VirtualBox introduced bidirectional drag and drop support for Windows, Linux, and Solaris guests, improving integration and ease of data exchange between host and guest operating systems.
    • Disk Image Encryption: VirtualBox 5.0 supports disk image encryption, allowing users to protect their virtual machines with encryption. This feature added an essential layer of security, especially for users working with sensitive information in their virtual environment.
    • Starting virtual machines separately: This feature allowed the virtual machine process to be started without a framework, while the frontend could run as a separate process. This provided more flexibility in managing virtual machines, especially in server environments or situations where a graphical interface is not always needed.
    • 3D Fixes for linux guests: VirtualBox version 5.1.38 also includes 3D fixes for the latest Linux guests (#17623 bug) that improve graphics performance and compatibility.
    • Audio fixes: Several improvements have been made to audio emulation, most notably the addition of HDA (High Definition Audio) support for newer Linux guests, which improves audio quality and compatibility.
    • Linux support: Linux 5.6 kernel support and improvements to Linux guest support, including improvements to building kernel modules.
  • v6.x (2018-2024): The 6.x branch was released in parallel before the final versions of the 5.x branch were released. Let's see some innovations from these versions:
    • Virtualization core support: To embed hardware virtualization on AMD CPUs: This allows additional virtualization layers to run in guest operating systems.
    • User interface:
      • Major HiDPI and scaling support improvements: Better resolution and aspect ratio detection and per-machine configuration.
      • New file manager: It allows the user to control the guest file system and copy files between the host and the guest.
      • Major overhaul of the user interface: Easier and more powerful application and virtual machine setup.
    • Graphics:
      • Major update to 3D graphics support for Windows guests: As well as introduction of VMSVGA 3D graphics device emulation for Linux and Solaris guests.
    • Voice:
      • Support for surround sound system settings: This includes settings used by Windows 10 Build 1809.
    • VBoxManage: Support for DHCP options: Command line management options have been expanded.
    • To use Hyper-V as an emergency execution core on a Windows host: This allows VMs to run at the cost of reduced performance when native execution is not possible.
    • OVF Import/Export: Added support for importing and exporting VMs with NVMe storage controllers, expanding supported hardware configurations.
  • v7.x (2024-): The 7.x branch is currently the actively supported version, let's look at some of them:
    • Audio: Additional fixes for switching host audio devices on a Windows host when using the WAS backend, which improves the flexibility of audio handling.
    • 3D:
      • Initial support for OpenGL 4.1
      • Fix graphics issues related to Windows 11 guest systems
      • Fix graphics problems related to Windows 7 guest systems
    • Linux Guest Additions: Fix kernel panic on RHEL 8.9 kernel due to vboxvideo, which brings stability to graphics system.

Of course, I only highlighted a few important things here, but apart from that, each version branch contains a lot of innovations.

The development of VirtualBox has significantly influenced the market of virtualization technologies, allowing users to flexibly and efficiently use virtual machines for various purposes, from education to software development to system design. Over the years, VirtualBox has become more and more integrated with the infrastructure of Oracle Cloud, further increasing its applicability in the enterprise environment.

 

 

Virtualization

Virtualization is a technology that allows the resources of a single physical machine to be shared between multiple isolated virtual environments, or virtual machines (VMs). VirtualBox uses this technology to create and manage virtual machines running on the host's operating system, allowing users to run different operating systems simultaneously, each in an isolated environment.

Principle of operation

The operation of VirtualBox is based on a hypervisor, which acts as an intermediary between the host machine and the virtual machines. A hypervisor is responsible for sharing physical resources such as processor, memory, and storage between virtual machines. This sharing allows multiple operating systems and applications to run in parallel within a single physical machine, each with its own virtual hardware environment.

Technical implementation

VirtualBox's technical implementation includes dynamic compilation, which optimizes virtual machine code for the host's processor, improving performance. In addition, VirtualBox supports hardware acceleration (eg Intel VT-x and AMD-V) on modern processors, which can result in additional performance gains when running virtual machines.

Other important features of VirtualBox include the Snapshot feature, which allows users to take "snapshots" of the current state of the virtual machine and restore it if necessary. This is especially useful in test and development environments where you need to be able to quickly revert to a previous stable state.

Virtualization techniques used by VirtualBox

VirtualBox basically supports the following virtualization technologies:

Full Virtualization

VirtualBox uses full virtualization, which allows virtual machines to use the host's physical resources as if they were their own hardware. In this mode, VMs are completely isolated from the host and each other, ensuring stability and security.

Paravirtualization

Paravirtualization is a virtualization technique in which the guest operating system is aware that it is running in a virtualized environment. In this mode, the guest operating system is modified to communicate directly with the host, which handles low-level hardware emulation. In this way, paravirtualized systems can avoid the performance degradation that can be associated with emulating or simulating hardware resources because the guest operating system "knows" how to best use the virtual environment.

One of the most important advantages of paravirtualization is that it enables higher performance and better scalability of virtualized systems by reducing unnecessary communication between the hypervisor and the guest operating system. For this reason, it is particularly suitable for high-performance computing tasks and high-availability systems. However, the use of paravirtualization is more limited than that of full virtualization because it requires modifying the guest operating system to support paravirtualized interfaces. This means that not all operating systems are supported and changes must be repeated for each new operating system version.

 

 

Supported architectures and operating systems

VirtualBox provides extensive support for various host and guest operating systems, allowing users to create and manage a wide range of configurations. This versatility makes VirtualBox an ideal tool for education, development, and testing purposes.

Host operating systems

The host operating system is the system on which the VirtualBox software runs. VirtualBox supports the most popular operating systems such as:

  • Windows: VirtualBox supports all recent Microsoft Windows operating systems, allowing users to create and run virtual machines in a Windows environment. The following Windows versions are supported or were only supported in previous versions of VirtualBox:
    • Windows XP: It was deprecated in VirtualBox 5.0.
    • Windows Vista: It was deprecated in VirtualBox 5.2
    • Windows 7 (64-bit): It was deprecated in VirtualBox 6.1
    • Windows 8 (64-bit): It was deprecated in VirtualBox 7.0
    • Windows 8.1 and later (32-bit): Support for 8.1-bit versions of Windows 32 and later is no longer supported in VirtualBox 6.0
    • Windows Server 2003: It was deprecated in VirtualBox 5.0
    • Windows Server 2008: It was deprecated in VirtualBox 6.0
    • Windows Server 2008 R2: It was deprecated in VirtualBox 7.0
    • Windows Server 2012: It is actively supported in the current version
  • Linux distributions: The current (7.x) branch of VirtualBox supports all Linux distributions, however, there are dedicated installation packages optimized and compiled for a specific Linux distribution and its major version, and there is a general installation package, which is detailed below.
    • Dedicated distributions and their versions:
      • ​Debian 10
      • ​Debian 11
      • ​Debian 12
      • Fedora 35
      • ​Fedora 36 / 37 / 38 / 39
      • ​Oracle Linux 7 / Red Hat Enterprise Linux 7 / CentOS 7
      • ​Oracle Linux 8 / Red Hat Enterprise Linux 8
      • ​Oracle Linux 9 / Red Hat Enterprise Linux 9
      • ​Ubuntu 18.04 / 18.10 / 19.04
      • ​Ubuntu 20.04
      • ​Ubuntu 22.04
      • openSUSE 15.3 / 15.4 / 15.5
    • All distributions: This version offers a version of VirtualBox built on Red Hat Enterprise Linux 6 (EL6). This version is designed to be compatible with older Linux distributions that do not have the latest system libraries. This allows VirtualBox to run on systems that are not up to date without the need to update or replace system libraries.
      This installation package contains a file with the extension .run. A file with the .run extension is a self-extracting archive that can be run on Linux systems. This file usually contains an installation script that automates the process of installing VirtualBox on the given Linux system.
  • macOS: VirtualBox is also compatible with the macOS operating system, so the VirtualBox system is also available for Mac users.
  • Solaris systems:
    • Solaris
    • ​Solaris 11 IPS

Guest operating systems

The guest operating system is the system that runs inside the virtual machine. VirtualBox supports an even wider variety of guest operating systems, including:

  • Windows: From older Windows versions (such as Windows XP) to the latest Windows 10 and Windows Server versions, including both 32-bit and 64-bit versions.
  • Linux: 32-bit and 64-bit versions of all Linux distributions
  • solaris: All Oracle Solaris and Open Solaris versions
  • BSD based systems: 32-bit and 64-bit versions of FreeBSD, OpenBSD and NetBSD systems
  • IBM OS/2
  • Mac OS X
  • Other: Additionally, VirtualBox can run other operating systems such as DOS or even older operating systems, which can be especially useful for testing older software.

Compatibility and integration

VirtualBox has an add-on on both the host and guest sides that improves compatibility, thus ensures more stable operation and increases the user experience.

Host-side integration: Extension Pack

The VirtualBox Extension Pack is an add-on package that provides additional functionality for VirtualBox virtual machines. The Extension Pack adds advanced features to the system that go beyond the base version of VirtualBox and are usually needed by those with special needs, such as support for USB 2.0 and USB 3.0 devices, Virtual Background Docking (VHDC) capability, VirtualBox Remote Display Protocol (VRDP ) for support and network booting using PXE.

A The VirtualBox Extension Pack must be installed in the VirtualBox application running on the host machine, and once installed, VirtualBox automatically integrates these features and makes them available in the virtual machine configuration. Users have the option to turn on or configure these features in the virtual machine settings, depending on the type of support they need. In order to actually use these functions, it is also necessary to install the guest integration services on the guest machine.

Guest side integration: Guest additions

VirtualBox also offers advanced integration features on the guest side, such as guest integration services (VirtualBox Guest additions). VirtualBox Guest Additions are software packages that must be installed on a guest operating system to improve its integration and interaction with the VirtualBox virtual machine manager. Guest Additions features include better video performance, automatic guest scaling, desktop integration, clipboard sharing, better mouse integration, shared folders, and better time synchronization. These services enable interoperability between the virtual machine and the host operating system to be smoother and more efficient, and improve user experience and system management.

Installing Guest additions usually starts a setup program on the guest operating system that guides the user through the setup process. During installation, the guest system detects new hardware and adds drivers to the guest operating system's driver database. Then, after the guest operating system is restarted, the newly detected and installed hardware will be activated.

The installation of Guest additions can also be automated when a new virtual machine is created using VirtualBox. In this case, the installer automatically installs the appropriate files and drivers after the guest OS setup is complete.

The installation steps for Guest Additions may differ on different operating systems due to significant differences between different guest operating systems. Additions are available for both Windows and some supported Linux distributions, and come with your VirtualBox installation.

This versatility and compatibility makes VirtualBox an extremely popular choice among virtualization software.

 

 

Supported hardware and drivers

VirtualBox is one of the few virtualization solutions that offers broad hardware support, allowing users to run almost any operating system on a variety of hardware configurations. This versatility is key to VirtualBox's popularity, as it ensures that users can customize their virtual machines to suit their needs.

Processor and memory

VirtualBox supports multi-core processors, allowing users to utilize the full computing power of their computers. Virtual machines can be configured to use different numbers of processor cores, as well as dedicated allocation of a portion of available system memory, ensuring adequate performance for guest operating systems.

Storage devices

VirtualBox can handle virtual hard disks (in VMDK, VDI, HDD formats), optical drives (in the form of CD/DVD ISO image files), and supports SATA, IDE, SCSI, and SAS interfaces. This allows users to customize the configuration of their storage devices, including size, type, and connection method.

Network adapters

VirtualBox supports multiple network adapters that enable different network configurations and communication scenarios for virtual machines to communicate with the host and virtual machines with each other. These are the following in the current (7.x) version branch:

  • NAT (Network Address Translation): The virtual machine is on its own private network, and the host IP addresses can be used to connect to the external network. This setting allows the virtual machine to gain Internet access without being directly visible on the network.
  • Bridged card: The virtual machine behaves as if it were a physically connected device on the host's network. It receives its own IP address from the network and is directly accessible to other devices on the network.
  • Internal network: This creates a completely isolated network that only connects between virtual machines. This can be useful in test or development environments where network traffic needs to remain isolated.
  • Host-only card: The virtual machine can only communicate with the host through a private network. There is no direct access to the external network, which provides isolation while allowing communication between the host and the virtual machine.
  • General driver: Special network drivers can be used to allow virtual machines to use custom or special network configurations.
  • NAT network: Similar to plain NAT, but allows virtual machines to communicate with each other within the private NAT network, not just the host.
  • Cloud Network [EXPERIMENTAL]: This is an experimental feature that allows virtual machines to connect to a cloud-based network such as Oracle Cloud Infrastructure.
  • Not connected: This setting disables the network adapter on the virtual machine so that it has no network connection.

In addition, VirtualBox supports configuring network interfaces such as Intel PRO/1000 MT Desktop, Server, and virtual AMD PCNet cards.

USB devices

VirtualBox allows you to connect USB devices such as flash drives, external hard drives, and other peripherals connected via the USB interface to virtual machines. Support for USB 1.1, 2.0, and 3.0 devices ensures that users can enjoy a high level of compatibility and performance.

Graphics and sound cards

VirtualBox supports virtual graphics cards that offer both DirectX and OpenGL support on certain guest operating systems, improving the performance of graphical applications and games. In addition, VirtualBox supports virtual sound cards, allowing you to play and record audio through virtual machines.

Drivers and integration tools

The Guest additions package of VirtualBox contains drivers and integration tools that improve the performance and user experience of guest operating systems. These tools help with better graphics performance, seamless mouse cursor integration, shared folder management, and clipboard sharing between host and guest operating systems.

 

Licensing

VirtualBox is free and open source software that is provided under two different licenses: the GNU General Public License (GPL) version 2, and a separate commercial license that includes additional features provided by Oracle.

GNU General Public License (GPL) version 2

The base version of VirtualBox is available under the GNU GPL v2, which allows users to freely download, use, modify, and distribute the software according to the terms of that license. This license is ideal for educational institutions, software developers and system administrators looking for an open source and cost-effective virtualization solution.

Commercial license and VirtualBox Extension Pack

Oracle also offers a commercial license for VirtualBox, which is required to use the additional features that are part of the free VirtualBox Extension Pack. These additional features include support for USB 2.0 and USB 3.0 devices, VirtualBox RDP (Remote Desktop Protocol), NVMe, PXE boot via NIC, and Intel VT-x or AMD-V supported virtual encryption of machines. The commercial license is particularly relevant for companies and organizations looking for these advanced features.

Licensing Considerations

When using VirtualBox, it is important to understand the licensing terms and when a commercial license is required. For example, if a company uses VirtualBox in a commercial environment and uses the additional features of the Extension Pack, it may be necessary to obtain a commercial license. It is always recommended that users check the latest licensing information on the official Oracle website to ensure proper and legal use of the software.

Community support and development

VirtualBox's extensive and active community provides support and guidance for users, as well as an opportunity for developers to contribute to the development of the project. Oracle regularly updates VirtualBox, ensuring compatibility with new operating systems and hardware developments, and fixing security issues and bugs.

 

 

Summary

VirtualBox is a powerful and flexible virtualization software that allows users to run multiple operating systems simultaneously within a single physical computer in the form of isolated virtual machines. Developed and maintained by Oracle Corporation, VirtualBox is widely used in education, development, and system administration tasks due to its versatility, performance, and ease of use.

VirtualBox is an ideal choice for software developers, system administrators, and educational institutions looking for a reliable, cost-effective, and versatile virtualization solution. Ease of use, broad operating system support, and flexible configuration options make VirtualBox an outstanding tool among virtualization software.