-
VBoxSVC, the service process
which always runs in the background. This process is started
automatically by the first client process and
exits a short time after the last client exits. The first
service can be ,
VBoxManage,
VBoxHeadless, the web service amongst
others. The service is responsible for bookkeeping,
maintaining the state of all VMs, and for providing
communication between components. This
communication is implemented using COM/XPCOM.
When we refer to clients here, we mean
the local clients of a particular VBoxSVC
server process, not clients in a network.
employs its own client/server design to allow its processes
to cooperate, but all these processes run under the same
user account on the host operating system, and this is
totally transparent to the user.
-
The GUI process, VirtualBoxVM, a client
application based on the cross-platform Qt library. When
started without the --startvm option, this
application acts as , displaying the VMs and their
settings. It then communicates settings and state changes to
VBoxSVC and also reflects changes effected
through other means, such as the VBoxManage
command.
-
If the VirtualBoxVM 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.
-
IPRT: A portable runtime library which abstracts file access,
threading, and string manipulation. Whenever
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.
-
TRPM (Trap Manager): Intercepts and processes guest traps and
exceptions.
-
HM (Hardware Acceleration Manager): Provides support for VT-x
and AMD-V.
-
GIM (Guest Interface Manager): Provides support for various
paravirtualization interfaces to the guest.
-
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 without having to
change itself.
-
PGM (Page Manager): A component that controls guest paging.
-
TM (Time Manager): Handles timers and all aspects of time
inside guests.
-
CFGM (Configuration Manager): Provides a tree structure which
holds configuration settings for the VM and all emulated
devices.
-
SSM (Saved State Manager): Saves and loads VM state.
-
VUSB (Virtual USB): A USB layer which separates emulated USB
controllers from the controllers on the host and from USB
devices. This component also enables remote USB.
-
DBGF (Debug Facility): A built-in VM debugger.
-
emulates a number of devices to provide the
hardware environment that various guests need. Most of these
are standard devices found in many PC compatible machines and
widely supported by guest operating systems. For network and
storage devices in particular, there are several options for
the emulated devices to access the underlying hardware. These
devices are managed by PDM.
-
Guest Additions for various guest operating systems. This is
code that is installed from within a virtual machine. See
Guest Additions.
-
The "Main" component is special. It ties all the above bits
together and is the only public API that
provides. All the client processes listed above use only this
API and never access the hypervisor components directly. As a
result, third-party applications that use the
Main API can rely on the fact that it is always well-tested
and that all capabilities of are fully exposed.
It is this API that is described in the SDK.
See .