VBox
Related Pages
Here is a list of all related documentation pages:
[detail level 123]
 VBox Coding GuidelinesThe VBox Coding guidelines are followed by all of VBox with the exception of qemu
 VBox Makefile GuidelinesThese guidelines apply to all the Makefile.kmk files in the tree
 Simple SCSI interface for BIOS access.This is a simple interface to access SCSI devices from the BIOS which is shared between the BusLogic and the LsiLogic SCSI host adapters to simplify the BIOS part
 VMCore FormatThe VirtualBox VMCore Format: [ ELF 64 Header] – Only 1
 DBGFModule - Module & Segment ManagementA module is our representation of an executable binary
 VMM - The Virtual Machine MonitorThe VMM component is two things at the moment, it's a component doing a few management and routing tasks, and it's the whole virtual machine monitor thing
 CFGM - The Configuration ManagerThe configuration manager is a directory containing the VM configuration at run time
 CPUM - CPU Monitor / ManagerThe CPU Monitor / Manager keeps track of all the CPU registers
 CSAM - Code Scanning Analysis ManagerThe CSAM is responsible for scanning and marking guest OS kernel code paths to making safe raw-mode execution possible
 DBGF - The Debugger FacilityThe purpose of the DBGF is to provide an interface for debuggers to manipulate the VMM without having to mess up the source code for each of them
 EM - The Execution Monitor / ManagerThe Execution Monitor/Manager is responsible for running the VM, scheduling the right kind of execution (Raw-mode, Hardware Assisted, Recompiled or Interpreted), and keeping the CPU states in sync
 GIM - The Guest Interface ManagerThe Guest Interface Manager abstracts an interface provider through which guests may interact with the hypervisor
 GMM - The Global Memory ManagerAs the name indicates, this component is responsible for global memory management
 GVMM - The Global VM ManagerThe Global VM Manager lives in ring-0
 HM - Hardware Assisted Virtualization ManagerThe HM manages guest execution using the VT-x and AMD-V CPU hardware extensions
 IEM - Interpreted Execution ManagerThe interpreted exeuction manager (IEM) is for executing short guest code sequences that are causing too many exits / virtualization traps
 IOM - The Input / Output MonitorThe input/output monitor will handle I/O exceptions routing them to the appropriate device
 MM - The Memory ManagerThe memory manager is in charge of the following memory:
 PATM - Patch ManagerThe patch manager (PATM) patches privileged guest code to allow it to execute directly in raw-mode
 PDM - The Pluggable Device & Driver ManagerThe PDM handles devices and their drivers in a flexible and dynamic manner
 PDM Block Cache - The I/O cacheThis component implements an I/O cache based on the 2Q cache algorithm
 PGM - The Page Manager and Monitor
 PGM Shadow Page PoolMotivations:

  1. Relationship between shadow page tables and physical guest pages
 PGM Physical Guest Memory ManagementObjectives:
 REM - Recompiled Execution Manager.The recompiled exeuction manager (REM) serves the final fallback for guest execution, after HM / raw-mode and IEM have given up
 SELM - The Selector ManagerSELM takes care of GDT, LDT and TSS shadowing in raw-mode, and the injection of a few hyper selector for the raw-mode context
 SSM - The Saved State ManagerThe Saved State Manager (SSM) implements facilities for saving and loading a VM state in a structural manner using callbacks for named data units
 STAM - The Statistics ManagerThe purpose for the statistics manager is to present the rest of the system with a somewhat uniform way of accessing VMM statistics
 TM - The Time ManagerThe Time Manager abstracts the CPU clocks and manages timers used by the VMM, device and drivers
 TRPM - The Trap MonitorThe Trap Monitor (TRPM) is responsible for all trap and interrupt handling in the VMM
 VM APIThis is the encapsulating bit
 VMM Coding GuidelinesThe guidelines extends the VBox coding guidelines (VBox Coding Guidelines) and consists of a compulsory part and an optional part
 Raw-mode Code ExecutionThis chapter describes the virtualization technique which we call raw-mode and how VirtualBox makes use of it and implements it
 DBGFAddrSpace - Address Space ManagementWhat's an address space? It's mainly a convenient way of stuffing module segments and ad-hoc symbols together
 DBGFType - Type ManagementThe type management system is intended to ease retrieval of values from structures in the guest OS without having to take care of the size of pointers
 DBGC - The Debug ConsoleThe debugger console is an early attempt to make some interactive debugging facilities for the VirtualBox VMM
 USB Keyboard Device Emulation.This module implements a standard USB keyboard which uses the boot interface
 DMA Overview and notesModern PCs typically emulate AT-compatible DMA
 CMOS Assignments (BIOS)The BIOS uses a CMOS to store configuration data
 NVMe - Non Volatile Memory express Host Controller Interface Emulation.
 AHCI - Advanced Host Controller Interface Emulation.This component implements an AHCI serial ATA controller
 xHCI - eXtensible Host Controller Interface Emulation.This component implements an xHCI USB controller
 VUSB - Virtual USB
 VUSB - Virtual USB CoreThe virtual USB core is controlled by the roothub and the underlying HCI emulator, it is responsible for device addressing, managing configurations, interfaces and endpoints, assembling and splitting multi-part control messages and in general acts as a middle layer between the USB device emulation code and USB HCI emulation code
 OHCI - Open Host Controller Interface Emulation.This component implements an OHCI USB controller
 EHCI - Enhanced Host Controller Interface Emulation.This component implements an EHCI USB controller
 The VMM Device.The VMM device is a custom hardware device emulation for communicating with the guest additions
 Main APIFirst of all, check out the "Technical background" chapter in the manual, pay attention to the "VirtualBox executables and components" chapter
 EventsTheory of operations
 Async Remote USBUSB backend functions are called in EMT so care must be taken to prevent delays in the functions execution
 Drag and drop HGCM ServiceTODO
 Guest Property HGCM ServiceThis HGCM service allows the guest to set and query values in a property store on the host
 The Shared Clipboard Host ServiceThe shared clipboard host service provides a proxy between the host's clipboard and a similar proxy running on a guest
 Shared Folders Host ServiceShared Folders map a host file system to guest logical filesystem
 OpenGL - Cocoa Window System HelperHow this works: In general it is not so easy like on the other platforms, cause Cocoa doesn't support any clipping of already painted stuff
 VirtualBox VM Process HardeningThe VM process hardening is to prevent malicious software from using VirtualBox as a vehicle to obtain kernel level access
 SUP - The Support LibraryThe support library is responsible for providing facilities to load VMM Host Ring-0 code, to call Host VMM Ring-0 code from Ring-3 Host code, to pin down physical memory, and more
 VBoxNetFlt - Network Interface FilterThis is a kernel module that attaches to a real interface on the host and filters and injects packets
 VBoxNetAdp - Network AdapterThis is a kernel module that creates a virtual interface that can be attached to an internal network
 VBoxPci - host PCI supportThis is a kernel module that works as host proxy between guest and PCI hardware
 VBoxGuestVBoxGuest is the device driver for VMMDev
 VBoxServiceVBoxService is a root daemon for implementing guest additions features
 VBoxService - The Time Sync ServiceThe time sync subservice synchronizes the guest OS walltime with the host
 VBoxService - VM InformationThe VM Information subservice provides heaps of useful information about the VM via guest properties
 VBoxService - VM StatisticsThe VM statistics subservice helps out the performance collector API on the host side by providing metrics from inside the guest
 VBoxService - Guest ControlThe Guest Control subservice helps implementing the IGuest APIs
 VBoxService - Page SharingThe Page Sharing subservice is responsible for finding memory mappings suitable page fusions
 VBoxService - Memory BallooningThe Memory Ballooning subservice works with VBoxGuest, PGM and GMM to dynamically reallocate memory between VMs
 VBoxService - CPU Hot-PluggingThe CPU Hot-Plugging subservice helps execute and coordinate CPU hot-plugging between the guest OS and the VMM
 VBoxService - Shared Folder AutomounterThe Shared Folder Automounter subservice mounts shared folders upon request from the host
 VBoxService - Clipboard (OS/2)The Clipboard subservice provides clipboard sharing for OS/2 guests only
 VBoxNetDHCPWrite a few words..
 QCOW Storage BackendThe QCOW backend implements support for the qemu copy on write format (short QCOW)
 Validation Kit Coding GuidelinesThe guidelines extends the VBox coding guidelines (VBox Coding Guidelines) and currently only defines python prefixes and linting
 BS3Kit - Boot Sector Kit \#3The BS3Kit is a framework for bare metal floppy/usb image tests
 VBoxREM Hacks on AMD64There are problems with building BoxREM both on WIN64 and 64-bit linux
 VM Configuration Values
 Todo List
 Global Configuration Values
 Deprecated List