10 Technical background 2. The GUI process, VirtualBox, a client application based on the cross-platform Qt li- brary. When started without the --startvm option, this application acts as the VirtualBox manager, displaying the VMs and their settings. It then communicates settings and state changes to VBoxSVC and also reflects changes effected through other means, e.g., VBoxManage. 3. If the VirtualBox client application is started with the --startvm argument, it loads the VMM library which includes the actual hypervisor and then runs a virtual machine and provides the input and output for the guest. Any VirtualBox front-end (client) will communicate with the service process and can both control and reflect the current state. For example, either the VM selector or the VM window or VBoxManage can be used to pause the running VM, and other components will always reflect the changed state. The VirtualBox GUI application is only one of several available front ends (clients). The com- plete list shipped with VirtualBox is: 1. VirtualBox, the Qt front end implementing the manager and running VMs 2. VBoxManage, a less user-friendly but more powerful alternative, described in chapter 8, VBoxManage, page 99. 3. VBoxSDL, a simple graphical front end based on the SDL library see chapter 9.1, VBoxSDL, the simplified VM displayer, page 134. 4. VBoxHeadless, a VM front end which does not directly provide any video output and keyboard/mouse input, but allows redirection via VirtualBox Remote Desktop Extension see chapter 7.1.2, VBoxHeadless, the remote desktop server, page 91. 5. vboxwebsrv, the VirtualBox web service process which allows for controlling a VirtualBox host remotely. This is described in detail in the VirtualBox Software Development Kit (SDK) reference please see chapter 11, VirtualBox programming interfaces, page 163 for details. 6. The VirtualBox Python shell, a Python alternative to VBoxManage. This is also described in the SDK reference. Internally, VirtualBox consists of many more or less separate components. You may encounter these when analyzing VirtualBox internal error messages or log files. These include: IPRT, a portable runtime library which abstracts file access, threading, string manipulation, etc. Whenever VirtualBox accesses host operating features, it does so through this library for cross-platform portability. VMM (Virtual Machine Monitor), the heart of the hypervisor. EM (Execution Manager), controls execution of guest code. REM (Recompiled Execution Monitor), provides software emulation of CPU instructions. TRPM (Trap Manager), intercepts and processes guest traps and exceptions. HWACCM (Hardware Acceleration Manager), provides support for VT-x and AMD-V. PDM (Pluggable Device Manager), an abstract interface between the VMM and emulated devices which separates device implementations from VMM internals and makes it easy to add new emulated devices. Through PDM, third-party developers can add new virtual devices to VirtualBox without having to change VirtualBox itself. PGM (Page Manager), a component controlling guest paging. 156
Previous Page Next Page