VirtualBox

source: vbox/trunk/doc/manual/en_US/dita/topics/ts_host-processes.dita@ 108750

Last change on this file since 108750 was 108297, checked in by vboxsync, 3 months ago

Docs: bugref:10705. The following commits from doc's team git repo has been applied:

38ede4e3c915bbab9000b1b990e187daa07b4f61 Created 7.2 books from the 7.1 content with new part numbers, variables and removed non-7.2 content.
0951cfa5daf57ec2a81e36d335f14d8b4f2acd87 Merge branch 'Finalise_seamless_windows' into 'main'
b9e418eb08b28c6353e3f4534c7e360269cf5eef Included Klaus' feedback on known issues, moved some.
373130ebe466a21f4271e2ac36f11709c3697093 Initial edits to troubleshooting topics
a7459a9a24b73b4d268a751fba85e595ad6f35db Restructured and updated troubleshooting section
e3f67c800044e585a4428a4fc76016980269301b Added comments for future work
dcc46e566f3d269e5994d83cc5421532421fa639 Initial restructuring to move topics into suitable sections
e7b6f99bf86526813fcbe96903cf0c2652952eb0 removed Guest Control known issue. Info now in CLI topics
0209a6a155f460eaba79bcf0d0f34d8460413868 Reworded clipboard intro to be clear it requires GUI, made config a separate chapter
94f883f2b38dc281e759878880280370aa517d5c Included feedback from Brent on troubleshooting
ac1c0c919eeb58b1db478ca66e825ea89eb7a1a8 Removed preface, consolidated intro topics
7117e423ecdc1841b2bbca1aafda1c43ae38f7ea More restructuring and removing duplication
c8728eee82bd4081ab6f0500b32068c8f6749bc2 Updated intro and more restructuring
25389ab0df09df59f8f5f517f15590a917bb66a1 Added link to support and licensing
981ba048798bf7985f2c230fe97172d587e25fd6 7.2 updates for 3d acceleration
e95113d1da7ccf299642cd3368804e319e2bf3ca Updated diagram in intro, and filename
5c4555249e12738e55e9b8a0710f83ee7d4a9e61 New filenames, ids for intro
abf8d5092aea7f1fd4e9b7dbab578d615579eb4e Updated diagram to higher res

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 9.2 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="ts_host-processes">
4 <title><ph conkeyref="vbox-conkeyref-phrases/product-name"/> Host Processes</title>
5 <body>
6 <p>
7 <ph conkeyref="vbox-conkeyref-phrases/product-name"/> was designed to be modular and flexible. When the <ph conkeyref="vbox-conkeyref-phrases/product-name"/> graphical user interface (GUI) is opened and a VM is started, at least the following three processes are running:</p>
8 <ul>
9 <li>
10 <p><userinput>VBoxSVC</userinput>, the <ph conkeyref="vbox-conkeyref-phrases/product-name"/> service process which always runs in the background. This process is started automatically by the first <ph conkeyref="vbox-conkeyref-phrases/product-name"/> client process and exits a short time after the last client exits.</p>
11 <note>
12 <p> When we refer to <i>clients</i> here, we mean the local clients of a particular <userinput>VBoxSVC</userinput> server process, not clients in a network. <ph conkeyref="vbox-conkeyref-phrases/product-name"/> 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. </p>
13 </note>
14 <p>The first <ph conkeyref="vbox-conkeyref-phrases/product-name"/> service can be <ph conkeyref="vbox-conkeyref-phrases/vbox-mgr"/>, <userinput>VBoxManage</userinput>, <userinput>VBoxHeadless</userinput>, the web service amongst others. The service is responsible for bookkeeping, maintaining the state of all VMs, and for providing communication between <ph conkeyref="vbox-conkeyref-phrases/product-name"/> components. This communication is implemented using COM/XPCOM. Whenever an <ph conkeyref="vbox-conkeyref-phrases/product-name"/> process is started, it requests access to the COM server and Windows automatically starts the process. You should never start the process directly.</p>
15 <p>When the last process disconnects from the COM server, it will stop itself after a few seconds. The <ph conkeyref="vbox-conkeyref-phrases/product-name"/> configuration XML files are maintained and owned by the COM server and the files are locked whenever the server runs.</p>
16 <p>In some cases, such as when a virtual machine is closed unexpectedly, the COM server will not notice that the client is disconnected and stay active for a longer period of 10 minutes or so, keeping the configuration files locked. In other rare cases the COM server might experience an internal error and subsequently other processes fail to initialize it. In these situations, use the Windows task manager to stop the process <filepath>VBoxSVC.exe</filepath>.</p>
17 </li>
18 <li>
19 <p> The GUI process, <userinput>VirtualBoxVM</userinput>, a client application based on the cross-platform Qt library. When started without the <codeph>--startvm</codeph> option, this application acts as <ph conkeyref="vbox-conkeyref-phrases/vbox-mgr"/>, displaying the VMs and their settings. It then communicates settings and state changes to <userinput>VBoxSVC</userinput> and also reflects changes effected through other means, such as the <userinput>VBoxManage</userinput> command. </p>
20 </li>
21 <li>
22 <p> If the <userinput>VirtualBoxVM</userinput> client application is started with the <codeph>--startvm</codeph> 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.</p>
23 </li>
24 </ul>
25 <p> Any <ph conkeyref="vbox-conkeyref-phrases/product-name"/> front end, or 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. </p>
26 <p> The <ph conkeyref="vbox-conkeyref-phrases/product-name"/> GUI application, called <ph conkeyref="vbox-conkeyref-phrases/vbox-mgr"/>, is only one of several available front ends, or clients. The complete list shipped with <ph conkeyref="vbox-conkeyref-phrases/product-name"/> is as follows: </p>
27 <ul>
28 <li>
29 <p><userinput>VirtualBoxVM</userinput>: The Qt front end implementing <ph conkeyref="vbox-conkeyref-phrases/vbox-mgr"/> and running VMs. </p>
30 </li>
31 <li>
32 <p><userinput>VBoxManage</userinput>: A less user-friendly but more powerful alternative. See <xref href="vboxmanage.dita">VBoxManage</xref>. </p>
33 </li>
34 <li>
35 <p><userinput>VBoxHeadless</userinput>: A VM front end which does not directly provide any video output and keyboard or mouse input, but enables redirection through the VirtualBox Remote Desktop Extension. See <xref href="headless-mode.dita"/>. </p>
36 </li>
37 <li>
38 <p><userinput>vboxwebsrv</userinput>: The <ph conkeyref="vbox-conkeyref-phrases/product-name"/> web service process which enables control of an <ph conkeyref="vbox-conkeyref-phrases/product-name"/> host remotely. This is described in detail in the <ph conkeyref="vbox-conkeyref-phrases/product-name"/> Software Development Kit (SDK) reference. See <xref href="VirtualBoxAPI.dita"/>. </p>
39 </li>
40 <li>
41 <p> The <ph conkeyref="vbox-conkeyref-phrases/product-name"/> Python shell: A Python alternative to <userinput>VBoxManage</userinput>. This is also described in the SDK reference. </p>
42 </li>
43 </ul>
44 <p> Internally, <ph conkeyref="vbox-conkeyref-phrases/product-name"/> consists of many components. You may encounter these when analyzing <ph conkeyref="vbox-conkeyref-phrases/product-name"/> internal error messages or log files. These include the following: </p>
45 <ul>
46 <li>
47 <p> IPRT: A portable runtime library which abstracts file access, threading, and string manipulation. Whenever <ph conkeyref="vbox-conkeyref-phrases/product-name"/> accesses host operating features, it does so through this library for cross-platform portability. </p>
48 </li>
49 <li>
50 <p> VMM (Virtual Machine Monitor): The heart of the hypervisor. </p>
51 </li>
52 <li>
53 <p> EM (Execution Manager): Controls execution of guest code. </p>
54 </li>
55 <li>
56 <p> TRPM (Trap Manager): Intercepts and processes guest traps and exceptions. </p>
57 </li>
58 <li>
59 <p> HM (Hardware Acceleration Manager): Provides support for VT-x and AMD-V. </p>
60 </li>
61 <li>
62 <p> GIM (Guest Interface Manager): Provides support for various paravirtualization interfaces to the guest. </p>
63 </li>
64 <li>
65 <p> 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 <ph conkeyref="vbox-conkeyref-phrases/product-name"/> without having to change <ph conkeyref="vbox-conkeyref-phrases/product-name"/> itself. </p>
66 </li>
67 <li>
68 <p> PGM (Page Manager): A component that controls guest paging. </p>
69 </li>
70 <li>
71 <p> TM (Time Manager): Handles timers and all aspects of time inside guests. </p>
72 </li>
73 <li>
74 <p> CFGM (Configuration Manager): Provides a tree structure which holds configuration settings for the VM and all emulated devices. </p>
75 </li>
76 <li>
77 <p> SSM (Saved State Manager): Saves and loads VM state. </p>
78 </li>
79 <li>
80 <p> 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. </p>
81 </li>
82 <li>
83 <p> DBGF (Debug Facility): A built-in VM debugger. </p>
84 </li>
85 <li>
86 <p>
87 <ph conkeyref="vbox-conkeyref-phrases/product-name"/> 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. </p>
88 </li>
89 <li>
90 <p> Guest Additions for various guest operating systems. This is code that is installed from within a virtual machine. See <xref href="guestadditions.dita">Guest Additions</xref>. </p>
91 </li>
92 <li>
93 <p> The "Main" component is special. It ties all the above bits together and is the only public API that <ph conkeyref="vbox-conkeyref-phrases/product-name"/> 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 <ph conkeyref="vbox-conkeyref-phrases/product-name"/> Main API can rely on the fact that it is always well-tested and that all capabilities of <ph conkeyref="vbox-conkeyref-phrases/product-name"/> are fully exposed. It is this API that is described in the <ph conkeyref="vbox-conkeyref-phrases/product-name"/> SDK. See <xref href="VirtualBoxAPI.dita#VirtualBoxAPI"/>. </p>
94 </li>
95 </ul>
96 </body>
97</topic>
Note: See TracBrowser for help on using the repository browser.

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