VirtualBox

source: vbox/trunk/doc/manual/fr_FR/user_Technical.xml@ 54933

Last change on this file since 54933 was 52034, checked in by vboxsync, 10 years ago

doc/manual: updated the French translation. Thank you Jean-Philippe Mengual.

File size: 49.6 KB
Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
3"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd">
4<chapter id="TechnicalBackground">
5 <title>Sous-bassements techniques</title>
6
7 <para>Le contenu de ce chapitre n'est pas indispensable pour utiliser
8 VirtualBox avec succès. Nous indiquons ce qui suit à titre informatif pour
9 ceux qui sont plus familiers de la technologie et de l'architecture informatique
10 et qui veulent en savoir davantage sur la manière dont fonctionne VirtualBox "sous
11 le capot".</para>
12
13 <sect1 id="vboxconfigdata">
14 <title>Où VirtualBox stocke ses fichiers</title>
15
16 <para>Dans VirtualBox, une machine virtuelle et ses paramètres sont
17 décrits dans un fichier de paramètres de la machine virtuelle, au format
18 XML. De plus, la plupart des machines virtuelles ont un ou plusieurs
19 disques durs qui leur sont en général présentés par des images de disque
20 (comme au format VDI). L'endroit où sont stockés tous ces fichiers
21 dépend de la version de VirtualBox qui a créé la machine.</para>
22
23 <sect2>
24 <title>Machines créées par VirtualBox version 4.0 ou supérieur</title>
25
26 <para>À partir de la version 4.0, par défaut, chaque machine virtuelle
27 dispose d'un répertoire sur votre ordinateur hôte (où tous les fichiers
28 de cette machine sont stockés -- le fichier des paramètres XML (avec une
29 extension de fichier <computeroutput>.vbox</computeroutput>) et ses
30 images de disque.</para>
31
32 <para>Par défaut, ce "dossier machine" se trouve dans un dossier ordinaire
33 appelé "VirtualBox VMs", créé par VirtualBox dans le dossier personnel
34 de l'utilisateur du système actuel. L'emplacement de ce répertoire personnel
35 dépend des conventions du système d'exploitation hôte&#xA0;:</para>
36
37 <itemizedlist>
38 <listitem>
39 <para>Sur Windows, il s'agit de
40 <computeroutput>%HOMEDRIVE%%HOMEPATH%</computeroutput>; en général
41 quelque chose comme <computeroutput>C:\Documents and
42 Settings\NomUtilisateur\</computeroutput>.</para>
43 </listitem>
44
45 <listitem>
46 <para>Sur Mac OS X, il s'agit de
47 <computeroutput>/Users/nomutilisateur</computeroutput>.</para>
48 </listitem>
49
50 <listitem>
51 <para>Sur Linux et Solaris, il s'agit de
52 <computeroutput>/home/nomutilisateur</computeroutput>.</para>
53 </listitem>
54 </itemizedlist>
55
56 <para>Par simplicité, nous abrègerons cela ci-dessous par
57 <computeroutput>$HOME</computeroutput>. En utilisant cette convention, le
58 dossier ordinaire de toutes les machines virtuelles est
59 <computeroutput>$HOME/VirtualBox VMs</computeroutput>.</para>
60
61 <para>Par exemple, quand vous créez une machine virtuelle qui s'appelle
62 "VM Exemple", vous verrez que VirtualBox crée<orderedlist>
63 <listitem>
64 <para>le dossier <computeroutput>$HOME/VirtualBox VMs/VM Exemple/</computeroutput>
65 et, dans ce dossier,</para>
66 </listitem>
67
68 <listitem>
69 <para>le fichier des paramètres <computeroutput>VM Exemple.vbox</computeroutput> et</para>
70 </listitem>
71
72 <listitem>
73 <para>l'image de disque virtuel <computeroutput>VM Example.vdi</computeroutput>.</para>
74 </listitem>
75 </orderedlist></para>
76
77 <para>C'est le rangement par défaut si vous utilisez l'assistant "Créer
78 une nouvelle machine virtuelle" comme décrit au <xref linkend="gui-createvm" />. Une fois que
79 vous commencez à travailler avec la VM, des fichiers supplémentaires
80 apparaîtront&#xA0;: vous trouverez des fichiers journaux dans un
81 sous-dossier qui s'appelle
82 <computeroutput>Logs</computeroutput>, et une fois que vous aurez pris
83 des instantanés, ils apparaîtront dans un sous-dossier
84 <computeroutput>Snapshots</computeroutput>. Pour chaque VM, vous pouvez
85 modifier l'emplacement de son dossier d'instantanés dans les paramètres
86 de la VM.</para>
87
88 <para>Vous pouvez changer le dossier machine par défaut en sélectionnant
89 "Préférences" du menu "Fichier" de la fenêtre principale de VirtualBox.
90 Puis, dans la fenêtre qui apparaît, cliquez sur l'onglet "Général". Sinon,
91 utilisez <computeroutput>VBoxManage setproperty
92 machinefolder</computeroutput>&#xA0;;; voir le <xref
93 linkend="vboxmanage-setproperty" />.</para>
94 </sect2>
95
96 <sect2>
97 <title>Machines créées par des versions de VirtualBox antérieures à 4.0</title>
98
99 <para>Si vous avez mis à jour vers VirtualBox 4.0 en partant d'une ancienne
100 version de VirtualBox, vous aurez probablement vos fichiers de paramètres
101 et les disques selon l'organisation du système de fichiers d'alors.</para>
102
103 <para>Avant la version 4.0, VirtualBox séparait les fichiers de
104 paramètrage de la machine des images de disque virtuel. Les fichiers de
105 paramétrage de la machine avaient une extension
106 <computeroutput>.xml</computeroutput> et se trouvaient dans un dossier
107 appelé "Machines" dans le répertoire de configuration global de VirtualBox
108 (voir la prochaine section). Donc, par exemple, sur Linux, il s'agissait
109 du répertoire caché <computeroutput>$HOME/.VirtualBox/Machines</computeroutput>.
110 Le dossier par défaut des disques durs s'appelait "HardDisks" et se trouvait
111 également dans le dossier <computeroutput>.VirtualBox</computeroutput>.
112 L'utilisateur pouvait changer les deux endroits dans les préférences
113 globales (le concept de "dossier par défaut des disques durs" a été
114 abandonné avec VirtualBox 4.0, vu que les images de disque se trouvent
115 désormais par défaut dans le dossier de chaque machine.)</para>
116
117 <para>L'ancienne organisation avait plusieurs gros inconvénients.<orderedlist>
118 <listitem>
119 <para>Il était très difficile de déplacer une machine virtuelle
120 d'un hôte à l'autre car les fichiers concernés ne se trouvaient pas
121 dans le même dossier. De plus, les médias virtuels de toutes les
122 machines étaient enregistrés avec un registre global dans le
123 fichier des paramètres transversaux de VirtualBox.
124 (<computeroutput>$HOME/.VirtualBox/VirtualBox.xml</computeroutput>).</para>
125
126 <para>Pour déplacer une machine sur un autre hôte, il n'était donc
127 pas suffisant de déplacer le fichier des paramètres XML et les images
128 de disque (qui se trouvaient à des endroits différents), mais
129 il fallait en plus copier méticuleusement les entrées du disque
130 dur à partir du XML du registre de médias global, ce qui était
131 presque impossible si la machine avait des instantanés et, donc, des
132 images de différenciation.</para>
133 </listitem>
134
135 <listitem>
136 <para>Le stockage des images de disque virtuel, qui peuvent beaucoup
137 grossir, sous le répertoire caché
138 <computeroutput>.VirtualBox</computeroutput> (au moins sur les hôtes
139 Linux et Solaris) amenait de nombreux utilisateurs à se demander
140 ce qu'était devenu leur espace disque.</para>
141 </listitem>
142 </orderedlist></para>
143
144 <para>Si les nouvelles VMs créées avec VirtualBox 4.0 ou supérieur
145 respectent la nouvelle organisation, pour une compatibilité maximum, les
146 anciennes VMs <emphasis>ne sont pas</emphasis> converties en nouvelle
147 organisation. Sans cela, les paramètres de la machine seraient immanquablement
148 cassés si l'utilisateur rétrogradait de la 4.0 à une version plus ancienne
149 de VirtualBox.</para>
150 </sect2>
151
152 <sect2>
153 <title>Données globales de configuration</title>
154
155 <para>Outre les fichiers des machines virtuelles, VirtualBox gère des
156 données globales de configuration. Sur Linux et Solaris, depuis VirtualBox 4.3
157 elles se trouvent dans le répertoire caché <computeroutput>$HOME/.config/VirtualBox</computeroutput>
158 même si <computeroutput>$HOME/.VirtualBox</computeroutput> sera utilisé
159 s'il existe pour rester compatible avec les anciennes versions&#xA0;; sur
160 un Mac, elles se trouvent
161 dans <computeroutput>$HOME/Library/VirtualBox</computeroutput>.</para>
162
163 <para>VirtualBox crée automatiquement ce répertoire de configuration si
164 nécessaire. Vous pouvez éventuellement fournir un répertoire de configuration
165 alternatif en réglant la variable d'environnement
166 <computeroutput><literal>VBOX_USER_HOME</literal></computeroutput> ou,
167 en plus, sur Linux ou Solaris, en utilisant la variable standard
168 <computeroutput><literal>XDG_CONFIG_HOME</literal></computeroutput> (car le
169 fichier des paramètres globaux de <computeroutput>VirtualBox.xml</computeroutput>
170 pointe vers tous les autres fichiers de configuration, ce qui permet
171 de naviguer entre plusieurs configurations de VirtualBox.</para>
172
173 <para>VirtualBox stocke essentiellement dans ce répertoire son fichier
174 de paramètres globaux, un autre fichier XML appelé
175 <computeroutput>VirtualBox.xml</computeroutput>. Cela comprend des
176 options de configuration globales et la liste des machines virtuelles
177 enregistrées avec des pointeurs vers leurs fichiers de paramètres XML.
178 (Ni l'emplacement du fichier ni son répertoire n'ont changé avec
179 VirtualBox 4.0.)</para>
180
181 <para>Avant VirtualBox 4.0, tous les médias virtuels (fichiers images
182 de disque) étaient également stockés dans un registre global de ce
183 fichier de paramètres. Par compatibilité, ce registre de médias existe
184 toujours si vous mettez à jour VirtualBox et s'il y a des médias
185 issus de machines créées avec une version inférieure à 4.0. Si vous
186 n'avez pas de telles machines, il n'y aura pas de registre de médias
187 global&#xA0;; avec VirtualBox 4.0, chaque fichier XML d'une machine a
188 son propre registre de médias.</para>
189
190 <para>De même, avant VirtualBox 4.0, le dossier "Machines" par défaut
191 et le dossier "HardDisks" par défaut se trouvaient dans le répertoire de
192 configuration de VirtualBox (par exemple, <computeroutput>$HOME/.VirtualBox/Machines</computeroutput>
193 sur Linux). Si vous mettez à jour à partir d'une version de VirtualBox
194 inférieure à la 4.0, les fichiers de ce répertoire ne sont pas déplacés
195 automatiquement afin de ne pas casser la rétro compatibilité.</para>
196 </sect2>
197
198 <sect2>
199 <title>Résumé des modifications de la configuration de 4.0</title>
200
201 <table>
202 <title>Changements de configuration en 4.0 et ultérieure</title>
203
204 <para>La table suivante donne un bref apperçu des changements de configuration
205 entre les versions anciennes et la 4.0 ou ultérieure&#xA0;:</para>
206
207 <tgroup cols="3">
208 <tbody>
209 <row>
210 <entry></entry>
211
212 <entry><emphasis role="bold">Avant 4.0</emphasis></entry>
213
214 <entry><emphasis role="bold">4.0 ou supérieur</emphasis></entry>
215 </row>
216
217 <row>
218 <entry>Dossier par défaut des machines</entry>
219
220 <entry><computeroutput>$HOME/.VirtualBox/Machines</computeroutput></entry>
221
222 <entry><computeroutput>$HOME/VirtualBox
223 VMs</computeroutput></entry>
224 </row>
225
226 <row>
227 <entry>Emplacement des images de disque</entry>
228
229 <entry><computeroutput>$HOME/.VirtualBox/HardDisks</computeroutput></entry>
230
231 <entry>Dans chaque dossier de machine</entry>
232 </row>
233
234 <row>
235 <entry>Extension des fichiers de paramètres de la machine</entry>
236
237 <entry><computeroutput>.xml</computeroutput></entry>
238
239 <entry><computeroutput>.vbox</computeroutput></entry>
240 </row>
241
242 <row>
243 <entry>Registre de médias</entry>
244
245 <entry>Fichier <computeroutput>VirtualBox.xml</computeroutput>
246 global</entry>
247
248 <entry>Chaque fichier des paramètres d'une machine</entry>
249 </row>
250
251 <row>
252 <entry>Enregistrement des médias</entry>
253
254 <entry>Ouverture/fermeture explicite obligatoire</entry>
255
256 <entry>Automatique après la connexion</entry>
257 </row>
258 </tbody>
259 </tgroup>
260 </table>
261 </sect2>
262
263 <sect2>
264 <title>Fichiers XML de VirtualBox</title>
265
266 <para>VirtualBox utilise l'XML tant pour les fichiers des paramètres
267 de la machine que pour le fichier de configuration global,
268 <computeroutput>VirtualBox.xml</computeroutput>.</para>
269
270 <para>Tous les fichiers XML de VirtualBox sont versionnés. Quand un nouveau
271 fichier de paramètres est créé (par exemple parce qu'on crée une nouvelle
272 machine virtuelle), VirtualBox utilise automatiquement le format des
273 paramètres de la version actuelle de VirtualBox. Il se peut que ces
274 fichiers ne soient pas lus si vous rétrogradez à une version plus
275 ancienne de VirtualBox. Cependant, quand VirtualBox rencontre un fichier
276 de paramètres d'une ancienne version (comme après une mise à jour de
277 VirtualBox), il essaie autant que possible de garder le format des
278 paramètres. Il ne mettra à jour en silence les fichiers des paramètres
279 que si les paramètres actuels ne peuvent pas être exprimés dans l'ancien
280 format, par exemple parce que vous avez activé une fonction qui n'était
281 pas présente dans l'ancienne version de VirtualBox.<footnote>
282 <para>Par exemple, avant VirtualBox 3.1, il était possible d'activer
283 /désactiver qu'un seul lecteur DVD dans une machine virtuelle.
284 S'il a été activé, cela serait toujours possible sur le deuxième
285 maître du contrôleur IDE. Avec VirtualBox 3.1, on peut connecter
286 des lecteurs DVD à un slot de son choix sur un contrôleur de son choix,
287 donc ils pourraient être sur le deuxième esclave d'un contrôleur IDE
288 ou sur un slot SATA. Si vous avez un fichier de paramètres d'une
289 machine d'une ancienne version et si vous mettez à jour
290 VirtualBox vers la 3.1 et si vous déplacez le lecteur DVD de sa
291 position par défaut, on ne peut pas l'exprimer dans l'ancien format
292 des paramètres&#xA0;; le fichier XML de la machine serait écrit dans
293 le nouveau format et une copie de sauvegarde de l'ancien format serait
294 gardée.</para>
295 </footnote> Dans ces cas-là, VirtualBox sauvegarde le fichier des anciens
296 paramètres dans le répertoire de configuration de la machine virtuelle.
297 Si vous avez besoin de revenir à une ancienne version de VirtualBox,
298 vous devrez recopier à la main ces fichiers de sauvegarde.</para>
299
300 <para>Nous ne documentons volontairement pas les spécifications des fichiers
301 XML de VirtualBox car nous nous réservons le droit de les modifier à l'avenir.
302 Nous vous suggérons donc fortement de ne pas éditer ces fichiers à la main.
303 VirtualBox offre un accès complet à ses données de configuration par son
304 outil en ligne de commande <computeroutput>VBoxManage</computeroutput>
305 (voir le <xref linkend="vboxmanage" />) et son API (voir le <xref
306 linkend="VirtualBoxAPI" />).</para>
307 </sect2>
308 </sect1>
309
310 <sect1 id="technical-components">
311 <title>Exécutables et composants de VirtualBox</title>
312
313 <para>VirtualBox a été conçu pour être modulaire et flexible. Quand on ouvre
314 l'interface graphique (GUI) de VirtualBox et qu'on démarre une VM,
315 au moins trois processus fonctionnent&#xA0;:<orderedlist>
316 <listitem>
317 <para><computeroutput>VBoxSVC</computeroutput>, le processus du service
318 de VirtualBox qui fonctionne toujours en tâche de fond. Ce processus
319 est lancé automatiquement par le processus du premier client
320 VirtualBox (la GUI, <computeroutput>VBoxManage</computeroutput>,
321 <computeroutput>VBoxHeadless</computeroutput>, le service web ou
322 autre) et il s'arrête peu de temps après que le dernier client a
323 quitté. Le service est responsable d'archiver, maintenir l'état de
324 toutes les VMs et de la communication entre les composants de VirtualBox.
325 Cette communication est implémentée via COM/XPCOM.<note>
326 <para>Quand nous parlons de "clients" ici, nous voulons dire
327 les clients locaux d'un processus serveur
328 <computeroutput>VBoxSVC</computeroutput> en particulier, pas les
329 clients sur un réseau. VirtualBox utilise son propre concept
330 client/serveur pour permettre à ses processus de coopérer, mais
331 tous ces processus tournent sous le même compte utilisateur du
332 système d'exploitation hôte, et c'est entièrement transparent
333 pour l'utilisateur.</para>
334 </note></para>
335 </listitem>
336
337 <listitem>
338 <para>Le processus de la GUI,, <computeroutput>VirtualBox</computeroutput>,
339 une application client basée sur la bibliothèque multiplateformes
340 Qt. Lancée sans l'option <computeroutput>--startvm</computeroutput>,
341 cette application agit comme un gestionnaire de VirtualBox, en
342 affichant les VMs et leurs paramètres. Elle communique alors les
343 paramètres et les changements d'état à <computeroutput>VBoxSVC</computeroutput>
344 et elle répercute les changements subis par d'autres moyens comme
345 <computeroutput>VBoxManage</computeroutput>.</para>
346 </listitem>
347
348 <listitem>
349 <para>Si on lance l'application client <computeroutput>VirtualBox</computeroutput>
350 avec l'argument <computeroutput>--startvm</computeroutput>, elle
351 charge la bibliothèque VMM qui inclut l'hyperviseur proprement dit
352 et qui lance une machine virtuelle et offre une entrée et une sortie
353 à l'invité.</para>
354 </listitem>
355 </orderedlist></para>
356
357 <para>Toutes les interfaces de VirtualBox (client) communiqueront avec le
358 processus du service et elles peuvent contrôler et répercuter l'état actuel.
359 Par exemple, tant le selecteur de VM que la fenêtre de VM ou VBoxManage peuvent
360 être utilisés pour mettre en pause la VM en fonction, les autres composants
361 reflèteront toujours le changement d'état.</para>
362
363 <para>La GUI de VirtualBox n'est qu'une des nombreuses interfaces (client)
364 disponibles. La liste complète comprise dans VirtualBox est&#xA0;:<orderedlist>
365 <listitem>
366 <para><computeroutput>VirtualBox</computeroutput>, l'interface Qt
367 implémentant le gestionnaire et les VMs en fonction&#xA0;;</para>
368 </listitem>
369
370 <listitem>
371 <para><computeroutput>VBoxManage</computeroutput>, une alternative
372 moins conviviale mais plus puissante, décrite au <xref
373 linkend="vboxmanage" />.</para>
374 </listitem>
375
376 <listitem>
377 <para><computeroutput>VBoxSDL</computeroutput>, une interface graphique
378 simple basée sur la bibliothèque SDL&#xA0;; voir <xref
379 linkend="vboxsdl" />.</para>
380 </listitem>
381
382 <listitem>
383 <para><computeroutput>VBoxHeadless</computeroutput>, une interface de
384 VM qui ne fournit pas directement de sortie graphique et d'entrée
385 clavier/souris,
386 mais qui permet une redirection par VirtualBox Remote Desktop Extension;
387 voir <xref linkend="vboxheadless" />.</para>
388 </listitem>
389
390 <listitem>
391 <para><computeroutput>vboxwebsrv</computeroutput>, le processus du
392 service web de VirtualBox qui permet de contrôler un hôte VirtualBox à
393 distance. Ceci est décrit en détails dans le manuel de référence
394 du VirtualBox Software Development Kit (SDK)&#xA0;; merci de voir le
395 <xref linkend="VirtualBoxAPI" /> pour des détails.</para>
396 </listitem>
397
398 <listitem>
399 <para>Le shell Python de VirtualBox, une alternative en Python à
400 VBoxManage. Elle est aussi décrite dans le manuel de référence du SDK.</para>
401 </listitem>
402 </orderedlist></para>
403
404 <para>En interne, VirtualBox comprend beaucoup plus d'interfaces
405 séparées. Vous pourriez les rencontrer en analysant les messages d'erreur
406 internes ou les fichiers journaux. Parmi elles, on compte&#xA0;:</para>
407
408 <itemizedlist>
409 <listitem>
410 <para>IPRT, une bibliothèque d'exécution portable qui forme une couche
411 d'abstraction d'accès aux fichiers, du filage (threading), la manipulation
412 de chaînes, etc. Chaque fois que VirtualBox accède aux fonctions du
413 système hôte, il le fait via cette bibliothèque pour une portabilité
414 multiplateformes.</para>
415 </listitem>
416
417 <listitem>
418 <para>VMM (Virtual Machine Monitor), le c&#x153;ur de l'hyperviseur.</para>
419 </listitem>
420
421 <listitem>
422 <para>EM (Execution Manager), contrôle l'exécution d'un code invité.</para>
423 </listitem>
424
425 <listitem>
426 <para>REM (Recompiled Execution Monitor), fournit une émulation logicielle
427 des instructions du processeur.</para>
428 </listitem>
429
430 <listitem>
431 <para>TRPM (Trap Manager), intercepte et traite les traps et les
432 exceptions de l'invité.</para>
433 </listitem>
434
435 <listitem>
436 <para>HWACCM (Hardware Acceleration Manager), offre un support pour
437 VT-x et AMD-V.</para>
438 </listitem>
439
440 <listitem>
441 <para>PDM (Pluggable Device Manager), une interface abstraite entre le
442 VMM et les périphériques émulés qui sépare les implémentations du
443 périphérique de l'intérieur du VMM et qui facilite l'ajout de nouveaux
444 périphériques émulés. Par PDM, des développeurs tiers peuvent ajouter
445 de nouveaux périphériques virtuels à VirtualBox, sans devoir modifier
446 VirtualBox lui-même.</para>
447 </listitem>
448
449 <listitem>
450 <para>PGM (Page Manager), un composant contrôlant la pagination de
451 l'invité.</para>
452 </listitem>
453
454 <listitem>
455 <para>PATM (Patch Manager), corrige le code de l'invité pour améliorer
456 et accélérer la virtualisation logicielle.</para>
457 </listitem>
458
459 <listitem>
460 <para>TM (Time Manager), gère les horloges et tous les aspects de l'heure
461 des invités.</para>
462 </listitem>
463
464 <listitem>
465 <para>CFGM (Configuration Manager), fournit une structure arborescente
466 qui garde les paramètres de configuration de la VM et tous les périphériques
467 émulés.</para>
468 </listitem>
469
470 <listitem>
471 <para>SSM (Saved State Manager), enregistre et charge l'état d'une VM.</para>
472 </listitem>
473
474 <listitem>
475 <para>VUSB (Virtual USB), une couche USB qui sépare les contrôleurs USB
476 émulés des contrôleurs de l'hôte et des périphériques USB&#xA0;; ceci
477 active également l'USB distant.</para>
478 </listitem>
479
480 <listitem>
481 <para>DBGF (Debug Facility), un débogueur de VM intégré.</para>
482 </listitem>
483
484 <listitem>
485 <para>VirtualBox émule un certain nombre de périphériques pour offrir
486 l'environnement matériel dont ont besoin divers invités. La plupart de
487 ces périphériques standards se trouvent dans beaucoup de machines
488 compatibles PC et sont largement supportés par les systèmes d'exploitation
489 invités. Pour les périphériques réseaux et de stockage en particulier,
490 il existe plusieurs options pour que les périphériques émulés accèdent
491 au matériel sous-jacent. Ces périphériques sont gérés par
492 PDM.</para>
493 </listitem>
494
495 <listitem>
496 <para>Les suppléments invité pour divers systèmes d'exploitation invités.
497 Il s'agit de code installé dans les machines virtuelles&#xA0;; voir <xref
498 linkend="guestadditions" />.</para>
499 </listitem>
500
501 <listitem>
502 <para>Le composant "Main" est spécial&#xA0;: il lie tous les modules
503 ci-dessus et c'est la seule API publique fournie par VirtualBox. Tous
504 les processus clients listés ci-dessus n'utilisent que cettte API et
505 n'accèdent jamais directement aux composants de l'hyperviseur. Il s'en
506 suit que des applications tierces utilisant l'API principale de VirtualBox
507 peuvent s'appuyer sur le fait qu'elle est toujours bien testée et que
508 toutes les possibilités de VirtualBox sont complètement présentées. C'est
509 cette API qui est décrite dans le manuel de référence du SDK de
510 VirtualBox indiqué ci-dessus (de nouveau, voir le <xref linkend="VirtualBoxAPI" />).</para>
511 </listitem>
512 </itemizedlist>
513 </sect1>
514
515 <sect1 id="hwvirt">
516 <title>Virtualisation matérielle vs. logicielle</title>
517
518 <para>VirtualBox permet aux logiciels de la machine virtuelle de s'exécuter
519 directement sur le processeur de l'hôte, mais il utilise une gamme de
520 techniques complexes pour intercepter les opérations interférant avec votre
521 hôte. Chaque fois que l'invité essaie de faire quelque chose de potentiellement
522 dangereux pour votre ordinateur et ses données, VirtualBox s'interpose et
523 rentre en action. En particulier, pour beaucoup de matériel auquel croit
524 avoir accès l'invité, VirtualBox simule un certain environnement "virtuel"
525 selon la façon dont vous avez configuré une machine virtuelle. Par exemple,
526 quand l'invité cherche à accéder à un disque dur, VirtualBox redirige ces
527 requêtes vers ce que vous avez configuré comme étant le disque dur virtuel
528 de la machine virtuelle -- en principe, un fichier image sur votre hôte.</para>
529
530 <para>Malheureusement, la plateforme x86 n'a jamais été conçue pour
531 être virtualisée. La détection des
532 situations où VirtualBox doit contrôler le code invité qui s'exécute, comme
533 décrit ci-dessus, est difficile. Il existe deux façons de faire cela&#xA0;:<itemizedlist>
534 <listitem>
535 <para>Depuis 2006, les processeurs Intel et AMD supportent ce qu'on
536 appelle la <emphasis role="bold">"virtualisation matérielle"</emphasis>.
537 Cela signifie que ces processeurs peuvent aider VirtualBox à intercepter
538 des opérations potentiellement dangereuses que pourrait essayer de
539 faire le système d'exploitation invité et ils facilitent la présentation
540 de matériel virtuel à une machine virtuelle.</para>
541
542 <para>Ces fonctionnalités du matériel diffèrent entre les processeurs
543 Intel et AMD. Intel a appelé sa techno <emphasis
544 role="bold">VT-x</emphasis>&#xA0;;; AMD a nommé la leur <emphasis
545 role="bold">AMD-V</emphasis>. Le support d'Intel et d'AMD de la
546 virtualisation est très différent dans le détail, mais pas si différent
547 dans le principe.<note>
548 <para>Sur de nombreux systèmes, les fonctions de virtualisation
549 matérielle doivent être préalablement activées dans le BIOS avant
550 de pouvoir être utilisées par VirtualBox.</para>
551 </note></para>
552 </listitem>
553
554 <listitem>
555 <para>Contrairement aux autres logiciels de virtualisation, pour
556 de nombreux scénari d'utilisation, VirtualBox <emphasis>n'exige pas</emphasis>
557 que les fonctions de virtualisation matérielle soient présentes.
558 Par des techniques sophistiquées, VirtualBox virtualise beaucoup
559 de systèmes d'exploitation invités complets de manière
560 <emphasis role="bold">logicielle</emphasis>. Cela signifie que vous
561 pouvez lancer des machines virtuelles même sur d'anciens processeurs
562 qui ne supportent pas la virtualisation matérielle.</para>
563 </listitem>
564 </itemizedlist></para>
565
566 <para>Même si VirtualBox n'exige pas toujours la virtualisation matérielle,
567 son activation est <emphasis>nécessaire</emphasis> dans les scénari suivants&#xA0;:<itemizedlist>
568 <listitem>
569 <para>Certains systèmes d'exploitation, rares, comme OS/2, utilisent
570 des instructions processeur très ésotériques qui ne sont pas supportées
571 par notre virtualisation logicielle. Pour les machines virtuelles
572 configurées pour contenir un tel système d'exploitation, la
573 virtualisation matérielle est activée automatiquement.</para>
574 </listitem>
575
576 <listitem>
577 <para>Le support des invités 64 bits de VirtualBox (ajouté avec la
578 version 2.0) et le multiprocessing (SMP, ajouté avec la version 3.0)
579 exigent tous deux l'activation de la virtualisation matérielle (ce n'est
580 tout de même pas une grosse limite vu l'immense majorité des processeurs
581 64 bits et multi c&#x153;urs actuels incluant lavirtualisation matérielle&#xA0;;
582 les exceptions à cette règle étant par exemple les anciens processeurs
583 Intel Celeron et AMD Opteron.)</para>
584 </listitem>
585 </itemizedlist></para>
586
587 <warning>
588 <para>Ne lancez pas d'autres hyperviseurs (produits de virtualisation
589 open-source ou propriétaires) en même temps que VirtualBox&#xA0;! Si
590 plusieurs hyperviseurs peuvent, en principe, être <emphasis>installés</emphasis>
591 en parallèle, n'essayez pas de <emphasis>lancer</emphasis> plusieurs
592 machines virtuelles à partir d'hyperviseurs concurrents en même temps.
593 VirtualBox ne peut pas savoir ce qu'un autre hyperviseur essaie de faire
594 sur un même hôte, et surtout si plusieurs produits essaient d'utiliser la
595 virtualisation matérielle, les fonctions telles que VT-x, cela peut planter
596 tout l'hôte. De plus, dans VirtualBox, vous pouvez mélanger la virtualisation
597 logicielle et matérielle quand vous lancez plusieurs VMs. Dans certains cas,
598 une petite perte de performances sera inévitable si vous mélangez des
599 VMs avec virtualisation VT-x et logicielle. Nous recommandons de ne pas
600 mélanger les modes de virtualisation si la performance maximum et
601 une faible surcharge (overhead) sont essentiels. Cela <emphasis>ne s'applique pas</emphasis>
602 à AMD-V.</para>
603 </warning>
604 </sect1>
605
606 <sect1>
607 <title>Détails sur la virtualisation logicielle</title>
608
609 <para>L'implémentation de la virtualisation sur les processeurs x86 sans
610 le support de la virtualisation matérielle est une tâche extraordinairement
611 complexe car l'architecture du processeur n'a pas été conçue pour être
612 virtualisée. On peut résoudre en général les problèmes, mais au prix de
613 performances réduites. Ainsi, il existe un conflit constant entre les
614 performances de virtualisation et la précision.</para>
615
616 <para>Le jeu d'instructions x86 a été conçu au départ dans les années 1970 et
617 subi des modifications significatives avec l'ajout d'un mode protégé dans
618 les années 1980s avec l'architecture du processeur 286, puis à nouveau avec
619 l'Intel 386 et l'architecture 32 bits. Alors que le 386 avait un
620 support de virtualisation vraiment limité pour les opérations en mode réel,
621 (le mode V86, utilisé par la "DOS Box" de Windows 3.x et d'OS/2 2.x), aucun
622 port n'existait pour virtualiser toute l'architecture.</para>
623
624 <para>En théorie, la virtualisation logicielle n'est pas complexe en soi.
625 Outre les quatre niveaux de privilèges ("rings") fournis par le matériel
626 (dont en général on n'utilise que deux&#xA0;: ring 0 pour le mode noyau et ring 3
627 pour le mode utilisateur), il faut faire la différence entre le "contexte
628 hôte" et le "contexte invité".</para>
629
630 <para>Dans le "contexte hôte", tout est comme s'il n'y avait pas d'hyperviseur
631 actif. Cela pourrait être le mode actif si une autre application de votre
632 hôte consomme du temps processeur&#xA0;; dans ce cas, il existe un mode
633 ring 3 hôte et un mode ring 0 hôte. L'hyperviseur n'est pas impliqué.</para>
634
635 <para>Par contre, dans le "contexte invité", une machine virtuelle est active.
636 Tant que le code invité s'exécute en ring 3, ce n'est pas très problématique
637 vu qu'un hyperviseur peut paramétrer les tableaux des pages correctement et
638 exécuter ce code de manière native sur le processeur. Les problèmes arrivent
639 sur la manière d'intercepter ce que fait le noyau de l'invité.</para>
640
641 <para>Il y a plusieurs solutions possibles à ces problèmes. Une approche
642 est l'émulation logicielle totale, ce qui implique généralement une recompilation.
643 A savoir que tout le code qui doit être exécuté par l'invité est analysé,
644 transformé sous une forme qui n'autorisera pas l'invité à modifier et à
645 voir l'état réel du processeur, lequel l'exécutera simplement. Ce processus
646 est bien sûr très complexe et coûteux en termes de performances. (VirtualBox
647 contient un recompilateur basé sur QEMU qu'on peut utiliser pour une
648 émulation logicielle pure, mais le recompilateur n'est activé que dans
649 des situations particulières, décrites ci-dessous.)</para>
650
651 <para>Une autre solution possible est la paravirtualisation, où seuls les
652 OS invités spécialement modifiés sont autorisés à s'exécuter. De cette manière,
653 la plupart des accès matériels sont rendus abstraits et toutes les fonctions
654 qui accèderaient normalement au matériel ou à l'état privilégié du processeur
655 se basent plutôt sur l'hyperviseur. La paravirtualisation peut donner
656 de bonnes fonctionnalités et de bonnes performances sur des processeurs
657 x86 standards, mais cela ne peut marcher que si l'OS invité peut être
658 modifié, ce qui n'est évidemment pas toujours le cas.</para>
659
660 <para>VirtualBox choisit une approche différente. Quand on démarre une
661 machine virtuelle par son pilote noyau du support ring-0, VirtualBox a
662 réglé le système hôte pour qu'il puisse lancer nativement la plupart du
663 code invité, mais il s'insère lui-même "en bas" de l'image. Il peut alors
664 supposer le contrôle lorsque c'est nécessaire -- si une instruction privilégiée
665 est exécutée, l'invité plante (traps) (en particulier car un accès au registre
666 E/S a été tenté et un périphérique doit être virtualisé) ou car des interruptions se produisent. VirtualBox peut
667 alors gérer cela et soit acheminer une requête vers un périphérique virtuel,
668 soit, si possible, déléguer la gestion de tels éléments à l'OS hôte ou
669 invité. Dans le contexte invité, VirtualBox peut être donc dans un des trois
670 états&#xA0;:</para>
671
672 <para><itemizedlist>
673 <listitem>
674 <para>Le code invité ring 3 s'exécute sans modifications, à pleine
675 vitesse, autant que possible. Le nombre d'erreurs sera généralement
676 faible (sauf si l'invité autorise l'E/S du port depuis ring 3,
677 chose que nous ne pouvons pas faire car nous ne voulons pas que
678 l'invité puisse accéder aux ports réels). On parle aussi de "mode brut",
679 car le code ring-3 de l'invité s'exécute sans modifications.</para>
680 </listitem>
681
682 <listitem>
683 <para>Pour le code invité en ring 0, VirtualBox utilise une astuce
684 savoureuse&#xA0;: il reconfigure l'invité pour que son code ring-0
685 se lance plutôt en ring 1 (ce qui n'est en principe pas utilisé sur les
686 systèmes d'exploitation x86). Il s'en suit que lorsque le code ring-0
687 de l'invité (qui s'exécute en fait en ring 1) tel que le pilote d'un
688 périphérique invité, essaie d'écrire sur un registre E/S ou d'exécuter
689 une instruction non privilégiée, l'hyperviseur de VirtualBox en ring
690 0 "réel" peut prendre le dessus.</para>
691 </listitem>
692
693 <listitem>
694 <para>L'hyperviseur (VMM) peut être actif. Chaque fois qu'une erreur
695 survient, VirtualBox regarde l'instruction problématique et il peut
696 la reléguer à un périphérique virtuel, à l'OS hôte, à l'invité ou
697 il peut le lancer dans le recompilateur.</para>
698
699 <para>En particulier, on utilise le recompilateur quand le code invité
700 désactive les interruptions et VirtualBox ne peut pas savoir quand
701 on y reviendra (dans ces situations, VirtualBox analyse en fait le
702 code invité en utilisant son propre désassembleur). De plus, certaines
703 instructions privilégiées telles que LIDT doivent être gérées à part.
704 Enfin, tout le code en mode réel ou protégé (comme le code du BIOS,
705 un invité DOS ou un démarrage de système d'exploitation) se lance
706 complètement dans un recompilateur.</para>
707 </listitem>
708 </itemizedlist></para>
709
710 <para>Malheureusement, cela ne fonctionne que dans une certaine mesure.
711 Entre autres, les situations suivantes nécessitent une gestion spéciale&#xA0;:</para>
712
713 <para><orderedlist>
714 <listitem>
715 <para>L'exécution de code ring 0 en ring 1 provoque beaucoup d'erreurs
716 d'instructions supplémentaires car ring 1 n'est pas autorisé à exécuter
717 des instructions privilégiées (dont le ring-0 de l'invité en contient
718 beaucoup). Avec chacune de ces erreurs, le VMM doit s'arrêter et
719 émuler le code pour obtenir le comportement désiré. Si cela fonctionne,
720 l'émulation de milliers d'erreurs est très coûteuse et très pénalisante
721 en performances de l'invité virtualisé.</para>
722 </listitem>
723
724 <listitem>
725 <para>Il existe des défauts dans l'implémentation de ring 1 de
726 l'architecture x86 qui n'ont jamais été corrigés. Certaines instructions
727 qui <emphasis>planteraient</emphasis> même en ring 1 ne le font pas.
728 Cela concerne par exemple les paires d'instructions LGDT/SGDT, LIDT/SIDT,
729 ou POPF/PUSHF. Alors que l'opération "load" est privilégiée et peut
730 donc planter, l'instruction "store" réussit toujours. Si l'invité est
731 autorisé à les exécuter, il verra l'état réel du PC et pas celui
732 virtualisé. L'instruction CPUID a également le même problème.</para>
733 </listitem>
734
735 <listitem>
736 <para>Un hyperviseur a en général besoin de réserver certaines parties
737 de l'espace d'adresse de l'invité (tant l'espace d'adresse liénaire
738 que les sélecteurs) pour son propre usage. Ce n'est pas complètement
739 transparent pour l'OS invité et cela peut provoquer des conflits.</para>
740 </listitem>
741
742 <listitem>
743 <para>L'instruction SYSENTER (utilisée pour les appels système) exécutée
744 par une application en fonction dans un OS invité transite toujours
745 par le ring 0. Mais c'est là où l'hyperviseur se lance et pas l'OS
746 invité. Dans ce cas, l'hyperviseur doit bloquer et émuler l'instruction
747 même quand ce n'est pas souhaitable.</para>
748 </listitem>
749
750 <listitem>
751 <para>Les registres de segments du processeur contiennent un cache
752 de descripteur "caché" inaccessible de manière logicielle. L'hyperviseur
753 ne peut pas lire, enregistrer ou restaurer cet état, mais l'OS invité
754 peut l'utiliser.</para>
755 </listitem>
756
757 <listitem>
758 <para>Certaines ressources doivent (et peuvent) être neutralisées par
759 l'hyperviseur, mais l'accès est si fréquent que cela crée une perte
760 significative de performance. Un exemple réside dans le registre
761 TPR (Task Priority) en mode 32 bits. Les accès à ce registre doivent
762 être bloqués par l'hyperviseur, mais certains systèmes d'exploitation
763 invités (en particulier Windows et Solaris) écrivent très souvent
764 dans ce registre, ce qui porte une atteinte certaine aux performances
765 de virtualisation.</para>
766 </listitem>
767 </orderedlist></para>
768
769 <para>Pour corriger ces problèmes de performances et de sécurité, VirtualBox
770 contient un gestionnaire d'analyse et de scan de code
771 (Code Scanning and Analysis Manager (CSAM)), qui désassemble le code invité,
772 et un gestionnaire de correctifs (Patch Manager (PATM)), qui peut le remplacer
773 pendant l'exécution.</para>
774
775 <para>Avant d'exécuter du code ring 0, CSAM le scanne de manière récursive
776 pour trouver des instructions problématiques. PATM le corrige <emphasis>in-situ
777 </emphasis>, c'est-à-dire qu'il remplace l'instruction par un passage à la
778 mémoire de l'hyperviseur, où un générateur intégré a mis une implémentation
779 plus convenable. En réalité, c'est une tâche très complexe car il existe
780 de nombreuses situations compliquées à trouver et à gérer correctement. Donc,
781 vu son actuelle complexité, on pourrait dire que PATM est un recompilateur
782 avancé <emphasis>in-situ</emphasis>.</para>
783
784 <para>De plus, à chaque fois qu'une erreur survient, VirtualBox analyse
785 le code problématique pour déterminer s'il est possible de le corriger afin
786 de l'empêcher de provoquer davantage de futures erreurs. Cette approche
787 fonctionne bien en pratique et améliore de façon drastique les performances
788 de la virtualisation logicielle.</para>
789 </sect1>
790
791 <sect1>
792 <title>Détails sur la virtualisation matérielle</title>
793
794 <para>Avec VT-x d'Intel, il existe deux modes opératoires du processeur&#xA0;:
795 le mode racine VMM et le mode non-racine.<itemizedlist>
796 <listitem>
797 <para>En mode racine, le processeur se comporte beaucoup comme les
798 anciennes générations de processeurs sans le support VT-x. Il y a quatre
799 niveaux de privilèges ("rings") et le même jeu d'instructions est
800 supporté avec, en plus, des instructions spécifiques de virtualisation.
801 Le mode racine est ce que le système d'exploitation hôte utilise sans
802 virtualisation, et il est aussi utilisé par l'hyperviseur quand la
803 virtualisation est active.</para>
804 </listitem>
805
806 <listitem>
807 <para>En mode non-racine, le fonctionnement du processeur est très
808 différent. Il y a toujours quatre niveaux de privilèges et le même
809 jeu d'instructions, mais une nouvelle structure, qui s'appelle VMCS
810 (Virtual Machine Control Structure), contrôle désormais le fonctionnement
811 du processeur et elle détermine la manière dont se comportent certaines
812 instructions. Le mode non-racine est celui dans lequel les systèmes invités
813 fonctionnent.</para>
814 </listitem>
815 </itemizedlist></para>
816
817 <para>Le passage du mode racine au mode non racine s'appelle "l'entrée VM",
818 celui en sens inverse s'appelle "Quitter VM". Le VMCS inclut une zone d'état
819 invité et hôte sauvegardée/restaurée à chaque entrée et sortie en VM.
820 Surtout, les VMMS contrôlent les opérations de l'invité qui feront quitter
821 la VM.</para>
822
823 <para>Les VMCS permettent un contrôle très fin via ce que les invités
824 peuvent et ne peuvent pas faire. Par exemple, un hyperviseur peut autoriser
825 un invité à écrire certains bits dans des registres de contrôle protégés,
826 mais pas dans d'autres. Cela permet une virtualisation efficace dans des cas
827 où les invités peuvent être autorisés à écrire des bits de contrôle sans
828 gêner l'hyperviseur, tout en les empêchant de modifier les bits de contrôle
829 dont l'hyperviseur a besoin pour avoir un contrôle total. Le VMMS fournit
830 aussi un contrôle via l'affichage d'interruptions et les exceptions.</para>
831
832 <para>Chaque fois qu'une instruction ou un événement fait quitter une VM,
833 le VMCS contient des informations sur les raisons de la sortie, ainsi que,
834 souvent, des détails environnants. Par exemple, si une écriture dans le
835 registre CR0 fait quitter, l'instruction en cause est enregistrée, ainsi
836 que le fait qu'un accès en écriture sur le registre de contrôle a provoqué
837 la sortie, ainsi que les informations sur le registre source et destination.
838 L'hyperviseur peut ainsi gérer efficacement la condition sans avoir besoin
839 de techniques avancées telles que CSAM et PATM décrits ci-dessus.</para>
840
841 <para>VT-x évite intrinsèquement plusieurs problèmes qui se posent avec la
842 virtualisation logicielle. L'invité a son propre espace d'adresse distinct,
843 qu'il ne partage pas avec l'hyperviseur, ce qui élimine les plantages
844 potentiels. De plus, le code du noyau de l'OS invité se lance avec le
845 privilège ring 0 en mode non racine VMX, rendant inopérants les problèmes
846 d'exécution de code en ring 0 sur des niveaux moins privilégiés. Par exemple,
847 l'instruction SYSENTER peut faire une transition vers le ring 0 sans problèmes.
848 Naturellement, même en ring 0 en mode non-racine VMX, tous les accès E/S par
849 le code invité amène toujours la VM à quitter, permettant l'émulation
850 de périphérique.</para>
851
852 <para>La plus grosse différence entre VT-x et AMD-V est qu'AMD-V fournit
853 un environnement de virtualisation plus complet. VT-x exige que le code
854 non-racine VMX s'exécute en mode pagination activée, ce qui rejette la
855 virtualisation matérielle de logiciels dont le code est en mode réel et en
856 mode protégé non paginé. Cela n'inclut en général que les firmwares et les
857 chargeurs d'OS, néanmoins cela complique l'implémentation d'un hyperviseur
858 avec VT-x. AMD-V n'a pas cette restriction.</para>
859
860 <para>Bien entendu, la virtualisation matérielle n'est pas parfaite. Par
861 rapport à la virtualisation logicielle, la surcharge (overherad) des sorties des VMs est
862 relativement élevée. Cela pose des problèmes aux périphériques dont l'émulation
863 requiet un grand nombre de captures (traps). Par exemple, avec le périphérique
864 VGA en mode 16 couleurs, mon seulement tous les accès au port en E/S, mais
865 aussi tous les accès à la mémoire tampon (framebuffer) doivent être
866 capturés.</para>
867 </sect1>
868
869 <sect1 id="imbriquéepaging">
870 <title>Pagination imbriquée (imbriquée) et VPIDs</title>
871
872 <para>En plus de la virtualisation matérielle "brute", votre processeur peut
873 supporter aussi des techniques sophistiquées supplémentaires&#xA0;:<footnote>
874 <para>VirtualBox 2.0 a ajouté le support de la pagination imbriquée d'AMD&#xA0;;
875 le support de l'EPT et des VPIDs d'Intel a été ajouté à la version 2.1.</para>
876 </footnote><itemizedlist>
877 <listitem>
878 <para>Une fonctionnalité récente, qui s'appelle la
879 <emphasis role="bold">"pagination imbriquée"</emphasis> implémente la
880 gestion de la mémoire dans le matériel, ce qui peut beaucoup accélérer
881 la virtualisation matérielle puisque ces tâches n'ont plus besoin d'être
882 accomplies par le logiciel de virtualisation.</para>
883
884 <para>Avec la pagination imbriquée, le matériel fournit un autre niveau
885 d'indirection en passant du linéaire aux adresses physiques. Les
886 tables de page fonctionnent comme avant mais les adresses linéaires
887 sont désormais d'abord traduites en adresses physiques de "l'invité"
888 et pas directement en adresses physiques. Il existe maintenant un
889 nouveau jeu de registres de pagination sous le mécanisme de pagination
890 traditionnel et qui traduit les adresses physiques invitées en adresses
891 physiques de l'hôte, qui sont utilisées pour accéder à la mémoire.</para>
892
893 <para>La pagination imbriquée élimine la charge causée par les sorties de
894 VM et les accès aux tables de pages. Par définition, avec les tables
895 de pages imbriquées, l'invité peut gérer la pagination sans que l'hyperviseur
896 n'intervienne. La pagination imbriquée améliore ainsi substantiellement
897 les performances de virtualisation.</para>
898
899 <para>Sur les processeurs AMD, la pagination imbriquée est disponible
900 depuis l'architecture Barcelona (K10) -- on l'appelle maintenant la
901 "rapid virtualization indexing" (RVI). Intel a ajouté le support de
902 la pagination imbriquée, qu'ils appellent la "extended page tables" (EPT),
903 à leurs processeurs Core i7 (Nehalem).</para>
904
905 <para>Si la pagination imbriquée est activée, l'hyperviseur de VirtualBox
906 peut également utiliser <emphasis role="bold">grandes pages</emphasis>,
907 pour réduire l'utilisation du TLB et la charge. Cela peut provoquer
908 une amélioration jusqu'à 5% des performances. Pour activer cette
909 fonctionnalité pour une VM, vous avez besoin d'utiliser la commande
910 <computeroutput>VBoxManage modifyvm
911 </computeroutput><computeroutput>--largepages</computeroutput>&#xA0;;
912 voir <xref linkend="vboxmanage-modifyvm" />.</para>
913 </listitem>
914
915 <listitem>
916 <para>Sur les processeurs Intel, une autre fonction matérielle, qui
917 s'appelle <emphasis role="bold">"Virtual Processor Identifiers" (VPIDs)</emphasis>,
918 peut beaucoup accélérer le changement de contexte en réduisant le
919 besoin coûteux de mémoriser les Translation Lookaside Buffers
920 (TLBs) du processeur.</para>
921
922 <para>Pour activer ces fonctions pour une VM, vous devez utiliser
923 les commandes <computeroutput>VBoxManage modifyvm --vtxvpid</computeroutput> et
924 <computeroutput>--largepages</computeroutput>&#xA0;; voir <xref
925 linkend="vboxmanage-modifyvm" />.</para>
926 </listitem>
927 </itemizedlist></para>
928 </sect1>
929</chapter>
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