VirtualBox

source: vbox/trunk/doc/manual/en_US/dita/topics/technical-components.dita@ 99016

Last change on this file since 99016 was 99016, checked in by vboxsync, 2 years ago

manual: Some scm corrections for dita files. bugref:10302

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id Revision
File size: 8.5 KB
Line 
1<?xml version='1.0' encoding='UTF-8'?>
2<!DOCTYPE topic PUBLIC "-//OASIS//DTD DITA Topic//EN" "topic.dtd">
3<topic xml:lang="en-us" id="technical-components">
4 <title>Oracle VM VirtualBox Executables and Components</title>
5
6 <body>
7 <p>
8 Oracle VM VirtualBox was designed to be modular and flexible. When the
9 Oracle VM VirtualBox graphical user interface (GUI) is opened and a VM
10 is started, at least the following three processes are running:
11 </p>
12 <ul>
13 <li>
14 <p><userinput>VBoxSVC</userinput>, the Oracle VM VirtualBox service process
15 which always runs in the background. This process is started
16 automatically by the first Oracle VM VirtualBox client process and
17 exits a short time after the last client exits. The first
18 Oracle VM VirtualBox service can be VirtualBox Manager,
19 <userinput>VBoxManage</userinput>,
20 <userinput>VBoxHeadless</userinput>, the web service amongst
21 others. The service is responsible for bookkeeping,
22 maintaining the state of all VMs, and for providing
23 communication between Oracle VM VirtualBox components. This
24 communication is implemented using COM/XPCOM.
25 </p>
26 <note>
27 <p>
28 When we refer to <i>clients</i> here, we mean
29 the local clients of a particular <userinput>VBoxSVC</userinput>
30 server process, not clients in a network. Oracle VM VirtualBox
31 employs its own client/server design to allow its processes
32 to cooperate, but all these processes run under the same
33 user account on the host operating system, and this is
34 totally transparent to the user.
35 </p>
36 </note>
37 </li>
38 <li>
39 <p>
40 The GUI process, <userinput>VirtualBoxVM</userinput>, a client
41 application based on the cross-platform Qt library. When
42 started without the <codeph>--startvm</codeph> option, this
43 application acts as VirtualBox Manager, displaying the VMs and their
44 settings. It then communicates settings and state changes to
45 <userinput>VBoxSVC</userinput> and also reflects changes effected
46 through other means, such as the <userinput>VBoxManage</userinput>
47 command.
48 </p>
49 </li>
50 <li>
51 <p>
52 If the <userinput>VirtualBoxVM</userinput> client application is
53 started with the <codeph>--startvm</codeph> argument, it loads
54 the VMM library which includes the actual hypervisor and then
55 runs a virtual machine and provides the input and output for
56 the guest.
57 </p>
58 </li>
59 </ul>
60 <p>
61 Any Oracle VM VirtualBox front-end, or client, will communicate with the
62 service process and can both control and reflect the current
63 state. For example, either the VM selector or the VM window or
64 VBoxManage can be used to pause the running VM, and other
65 components will always reflect the changed state.
66 </p>
67 <p>
68 The Oracle VM VirtualBox GUI application, called VirtualBox Manager, is only one
69 of several available front ends, or clients. The complete list
70 shipped with Oracle VM VirtualBox is as follows:
71 </p>
72 <ul>
73 <li>
74 <p><userinput>VirtualBoxVM</userinput>: The Qt front end implementing
75 VirtualBox Manager and running VMs.
76 </p>
77 </li>
78 <li>
79 <p><userinput>VBoxManage</userinput>: A less user-friendly but more
80 powerful alternative. See <xref href="vboxmanage.dita">VBoxManage</xref>.
81 </p>
82 </li>
83 <li>
84 <p><userinput>VBoxHeadless</userinput>: A VM front end which does not
85 directly provide any video output and keyboard or mouse input,
86 but enables redirection through the VirtualBox Remote Desktop
87 Extension. See <xref href="vboxheadless.dita"/>.
88 </p>
89 </li>
90 <li>
91 <p><userinput>vboxwebsrv</userinput>: The Oracle VM VirtualBox web service
92 process which enables control of an Oracle VM VirtualBox host
93 remotely. This is described in detail in the Oracle VM VirtualBox
94 Software Development Kit (SDK) reference. See
95 <xref href="VirtualBoxAPI.dita"/>.
96 </p>
97 </li>
98 <li>
99 <p>
100 The Oracle VM VirtualBox Python shell: A Python alternative to
101 <userinput>VBoxManage</userinput>. This is also described in the
102 SDK reference.
103 </p>
104 </li>
105 </ul>
106 <p>
107 Internally, Oracle VM VirtualBox consists of many more or less separate
108 components. You may encounter these when analyzing Oracle VM VirtualBox
109 internal error messages or log files. These include the following:
110 </p>
111 <ul>
112 <li>
113 <p>
114 IPRT: A portable runtime library which abstracts file access,
115 threading, and string manipulation. Whenever Oracle VM VirtualBox
116 accesses host operating features, it does so through this
117 library for cross-platform portability.
118 </p>
119 </li>
120 <li>
121 <p>
122 VMM (Virtual Machine Monitor): The heart of the hypervisor.
123 </p>
124 </li>
125 <li>
126 <p>
127 EM (Execution Manager): Controls execution of guest code.
128 </p>
129 </li>
130 <li>
131 <p>
132 TRPM (Trap Manager): Intercepts and processes guest traps and
133 exceptions.
134 </p>
135 </li>
136 <li>
137 <p>
138 HM (Hardware Acceleration Manager): Provides support for VT-x
139 and AMD-V.
140 </p>
141 </li>
142 <li>
143 <p>
144 GIM (Guest Interface Manager): Provides support for various
145 paravirtualization interfaces to the guest.
146 </p>
147 </li>
148 <li>
149 <p>
150 PDM (Pluggable Device Manager): An abstract interface between
151 the VMM and emulated devices which separates device
152 implementations from VMM internals and makes it easy to add
153 new emulated devices. Through PDM, third-party developers can
154 add new virtual devices to Oracle VM VirtualBox without having to
155 change Oracle VM VirtualBox itself.
156 </p>
157 </li>
158 <li>
159 <p>
160 PGM (Page Manager): A component that controls guest paging.
161 </p>
162 </li>
163 <li>
164 <p>
165 TM (Time Manager): Handles timers and all aspects of time
166 inside guests.
167 </p>
168 </li>
169 <li>
170 <p>
171 CFGM (Configuration Manager): Provides a tree structure which
172 holds configuration settings for the VM and all emulated
173 devices.
174 </p>
175 </li>
176 <li>
177 <p>
178 SSM (Saved State Manager): Saves and loads VM state.
179 </p>
180 </li>
181 <li>
182 <p>
183 VUSB (Virtual USB): A USB layer which separates emulated USB
184 controllers from the controllers on the host and from USB
185 devices. This component also enables remote USB.
186 </p>
187 </li>
188 <li>
189 <p>
190 DBGF (Debug Facility): A built-in VM debugger.
191 </p>
192 </li>
193 <li>
194 <p>
195 Oracle VM VirtualBox emulates a number of devices to provide the
196 hardware environment that various guests need. Most of these
197 are standard devices found in many PC compatible machines and
198 widely supported by guest operating systems. For network and
199 storage devices in particular, there are several options for
200 the emulated devices to access the underlying hardware. These
201 devices are managed by PDM.
202 </p>
203 </li>
204 <li>
205 <p>
206 Guest Additions for various guest operating systems. This is
207 code that is installed from within a virtual machine. See
208 <xref href="guestadditions.dita">Guest Additions</xref>.
209 </p>
210 </li>
211 <li>
212 <p>
213 The "Main" component is special. It ties all the above bits
214 together and is the only public API that Oracle VM VirtualBox
215 provides. All the client processes listed above use only this
216 API and never access the hypervisor components directly. As a
217 result, third-party applications that use the Oracle VM VirtualBox
218 Main API can rely on the fact that it is always well-tested
219 and that all capabilities of Oracle VM VirtualBox are fully exposed.
220 It is this API that is described in the Oracle VM VirtualBox SDK.
221 See <xref href="VirtualBoxAPI.dita#VirtualBoxAPI"/>.
222 </p>
223 </li>
224 </ul>
225 </body>
226
227</topic>
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette