VirtualBox

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

Last change on this file since 105145 was 105134, checked in by vboxsync, 7 months ago

Docs: bugref:10705. This is a merge commit to introduce doc team's changes in the user manual dita files. The following files
are excluded from this process:

  • Files whose names satrt with "viso", "vboxmanage", "man_", "vboximg", "vboxheadless", or "user_isomakercmd-man".

And general notes about this merge are as follows:

  • For now I leave glossentry-*dita file as they are since we use different enclosing dita elements
  • in hdimagewrites.dita we have <note type="attention"> while doc team's copy has <note type="caution">. Not sure if this is significant.

For now I copy doc team's version over.

  • I have not modified our UserManual.ditamap file. This will be done in a follow up commit.

The list of commits we have merged are as follows:

r3392: 7.1 new features; add comments to some DITA topics
r3730: VBP-283: Update supported platforms; 7.0 and 7.1
r3980: 7.1: reset menu option; add note
r3992: ARM hosts; add draft topic on limitations; add container topic for ARM-based subtopics
r3993: ARM create new VM wizard: add some dummy topics
r4014: ER 34784410 DOCUMENT THE VIRTUAL MACHINE TASKBAR ICONS: port topic and icon graphics from 7.0 tree
r4026: VBP-378: status bar icons; remove any mention of task bar; ported from 7.0
r4034: Cloning a cloud VM; add draft topic
r4035: Cloning a cloud VM;typo
r4036: Cloning a cloud VM;add xref from intro topic
r4050: Reset operation; add instructions
r4051: Amend comment
r4052: Ditaval markup for images
r4056: Add ditaval markup for images
r4057: Add ditaval markup for images
r4058: Add ditaval markup for images
r4073: UI experience level: add dummy topic
r4075: Subtype: option for VM settings General tab and Create VM wizard
r4094: Cloud VM reset; add to relnotes
r4095: Reset VM; use main Machine menu, rather than right-click menu
r4099: ARM hosts; draft revisions to cover different wizard screens
r4134: Cloud VMs: file manager menu option; add comment
r4214: Settings page, Motherboard tab: Chipset option for Arm VMs; add note
r4306: Terminology checker: clear up Errors; Installation chapter
r4307: Terminology checker: clear up Errors; Config settings/GA chapters
r4308: Terminology checker: clear up Errors; Storage, networking, remote VM chapters
r4311: Terminology checker: clear up Errors: various
r4324: Prefences and settings; potential areas for change in 7.1
r4356: r160214: Monitoring cloud VM performance; add new topic
r4358: r160214: Monitoring cloud VM performance; add new topic
r4364: r160214: Monitoring cloud VM performance; redraft topic
r4374: Experience levels; update user manual topic
r4377: Experience levels; Preferences window: add note re. availability of all possible settings
r4378: Experience levels; Preferences window: add note re. availability of all possible settingsLp
r4379: Typos and add remark re. Global menu changes
r4387: Preferences, Display: some settings introduced post-7.0: font scaling and extended features
r4388: Performance monitoring: add cloud VM instances to intro para
r4389: Experience levels: selecting a level, add graphic of icon
r4391: Resource monitoring; add CLI example to show CPU usage for a cloud instance
r4395: Experience levels; apply to menu items only
r4398: Experience levels; add notes
r4401: Experience levels; remove pics of global tools menu/machine tools menu; number of menu items can vary
r4402: Experience levels; remove image files for global tools menu/machine tools menu
r4525: Experience levels: minor redraft
r4528: Typo
r4538: Experience levels: selected level applies throughout VirtualBox Manager GUI
r4543: GUI topics; add notes for required changes
r4544: VISO Creator changes
r4563: r160714: unattended guest install example; now has user-password option
r4569: Terminology: front end, not front-end
r4570: Arm wizard screens; remove, as Create VM Wizard will be very similar regardless of architecture
r4571: Arm wizard screens; remove, as Create VM Wizard will be very similar regardless of architecture
r4623: Cloud VM monitoring: Compute Instance Monitoring plugin must be enabled; add note
r4625: CPU activity icon; update, now has solid bar
r4626: GUI changes; various, from Serkan; includes new pic for soft keyboard
r4629: separate mode: add some draft topics, will need to get technical review at a later stage
r4634: GUI; various notes and updates
r4655: Typo
r4703: Arm host platform limitations; redraft and add topic to host OS section
r4724: VISO creator; add notes re. ISO import
r4725: Separate mode: edits
r4863: r161176; Python 2.x no longer supported for API
r4899: Arm host support: limitations
r4910: Create VM wizard: settings may vary x86 vs. Arm hosts
r4911: Guest OS support; add note re. supported aarch64 OSes
r4973: r161445: Remove mention of parallel port support
r5004: Cloud VM monitoring: detailed data graphs and Activity Overview
r5038: Cloud VM monitoring: export to file
r5214: r161947: Solaris non-Global zone configuration
r5215: r161947: Solaris non-Global zone configuration; typo
r5230: Glossary: fix title for I/O APIC topic
r5341: Experience levels; can be selected from welcome screen in VirtualBox Manager; need replacement pic
r5345: Experience levels; add note on Welcome screen option
r5346: Arm host limitations; unavailable System settings
r5434: r162377: shared folders; symlinks behaviour
r5565: Cloud VM list in VirtualBox Manager; show mixed VM types; screenshot from Klaus
r5627: Obfuscate UUID data in screen shot
r5628: Delete legacy cloudvm pic; use mixed VMs example
r5654: Clean up comments in source files; redraft VM activity section
r5672: 7.1 changes; add comments
r5683: 7.1 changes; add comments for Arm topics
r5687: 7.1 changes; GUI; add comments
r5703: Oracle notices; include up to date versions in preface-* topics for User Guide
r5707: r162904: Windows install directory requirements; redraft
r5781: updated GNU version from 2 to 3 as per r163272
r5812: started removal of screenshots and updating tasks VBP-807
r5818: Further updates to creating a VM VBP-807
r5822: Restructured topics and made task based VBP-807
r5824: Removed files during restructure VBP-807
r5834: Fixed formatting of note and caution VBP-807
r5836: Updated supported host OS list VBP-825
r5837: updated USB topics for VBP-823
r5842: changes as per legal request re supported guests VBP-843
r5853: Updated versions following review. VBP-825


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