VirtualBox

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

Last change on this file since 46232 was 44638, checked in by vboxsync, 12 years ago

doc: major update to French user manual - thank you Jean-Philippe Mengual!

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