Téléchargez l'application
Tom's Hardware sur l'App Store
Toute l'actu informatique de référence sur votre iPhone
Oui Non

Les défis de la virtualisation

par

Un processeur n’est capable d’exécuter qu’un nombre réduit d’instructions élémentaires. Cet ensemble, appelé ISA (Instruction Set Architecture), est codé dans le processeur et n’est pas modifiable. Il définit les capacités d’un processeur, dont l’architecture matérielle est ensuite optimisée pour exécuter les instructions de l’ISA le plus efficacement possible. Plusieurs ISA existent. Le plus connu dans le monde PC est le x86, utilisé depuis l’origine par les processeurs Intel et repris par les puces d’AMD. On peut aussi citer le PowerPC, l'ARM, le MIPS, etc.

Très répandu, voire même omniprésent, le x86 n’est pour autant pas exempt de défauts. Mais comme il est hors de question de le remplacer, il fallait trouver des solutions de contournement. C’est ce qu’ont développé Intel et AMD avec respectivement VT-x et AMD-V.

Si le x86 se prête mal à la virtualisation c’est à cause de 17 instructions critiques, mais non privilégiées. Si vous n’avez rien compris à la phrase précédente lisez ce qui suit :

Toutes les instructions de l’ISA x86 ne sont pas sur un pied d’égalité. Parmi elles, certaines peuvent modifier la configuration des ressources du processeur ; elles sont dites critiques. Pour protéger la stabilité de la machine, ces instructions ne peuvent pas être exécutées par tous les logiciels. Du point de vue du CPU, les logiciels appartiennent à 4 catégories, ou niveaux d’abstraction : les anneaux 0, 1, 2, 3. Chaque anneau définit un niveau de privilège décroissant. Les instructions les plus critiques réclament les privilèges les plus élevés, d’ordre 0. Malheureusement, sur un processeur x86, 17 de ces instructions critiques peuvent être exécutées même par des logiciels de rang 1, 2, ou 3.

A chacun ses privilègesStructure en anneaux

Cela constitue un gros problème pour les logiciels de virtualisation. Un système d’exploitation est en effet prévu pour fonctionner en anneau 0 et utiliser des instructions critiques afin de répartir les ressources du processeur entre les différentes applications. Mais lorsqu’il est en situation d’invité, sur une machine virtuelle, le même OS ne doit pas pouvoir modifier les ressources matérielles, sous peine de faire planter tout le système. Seul l’hyperviseur doit avoir ces droits. Il faut donc que toutes les instructions critiques soient interceptées.

C’est très facile pour toutes les instructions privilégiées. L’OS est alors exécuté en ring 3, comme les applications, et toutes les requêtes d’instructions privilégiées déclenchent une erreur qui est traitée par le VMM. C’est beaucoup plus compliqué pour les 17 instructions dangereuses et non privilégiées. Celles-ci ne déclenchant pas d’erreur automatique, elles doivent être détectées au coup par coup par le VMM, puis réinterprétées. Il en résulte une surcharge en calcul importante, et une grande complexité du logiciel hyperviseur.

Les autres coupables

Au-delà des défauts du x86, la virtualisation du matériel pose d’autres soucis. Par exemple, l’OS invité suppose qu’il a accès à la totalité de la mémoire de la machine. Or ce n’est pas le cas puisqu’il la partage avec les autres OS et le VMM. Ce dernier doit donc surveiller et intercepter les tentatives d’accès de l’OS invité à des adresses mémoires non disponibles, et les détourner. Autre exemple, le fait que l’OS invité fonctionne au même niveau (anneau 3) que les applications invitées met en danger sa stabilité. Enfin, l’OS invité ne doit jamais découvrir qu’il tourne en réalité en anneau 3, sous peine de plantage. Le VMM doit donc là encore intercepter les instructions susceptibles de révéler l’état des privilèges de l’invité.

Dernier souci, la gestion des périphériques : générant des accès en mémoire et des interruptions, les périphériques doivent être gérés par le VMM qui doit ensuite les émuler pour chaque OS invité. Une source supplémentaire de ralentissement, et surtout une perte énorme en termes de fonctionnalités.

Partager:
8
Commentaires
Lire plus
X
Valider

Commentaires
Lire les commentaires sur le forum
anonymous 15/02/2010 10:21
Masquer
-1+

Quels ont les softs de virtualisation qui supporte vt-d ? Vmware ? (quels version de vmware) ...

fricadelle59 15/02/2010 10:56
Masquer
-0+

Petite question :

à l'heure ou le hackintosh est devenu un viol de la propriété intellectuelle d'apple comment devons nous considérer la virtualisation?

Ce système ne profiterait donc qu'à apple ? Puisqu'il est possible d'installer windows sur un mac mais pas l'inverse... (pas de mac os x sur un pc)

Que devons nous attendre de cette avancée technologique puisqu'il ne nous ai pas permis d'installer mac os sur un pc...

Surtout que cela profiterait à bons nombres de professionnels ou même particuliers qui voudraient travailler sur mac os (adobe cs4 entre autres...)
et utiliser windows au loisirs.

Andrew Marek 15/02/2010 11:10
Masquer
-0+

Dans mon cas, la virtualisation me permet surtout d'avoir un environnement Windows avec des applis spécifiques qui tournent tout le temps, sans avoir à laisser mon PC (300W de conso) allumé !
Pour cela j'utilise mon Home Server VHS-4 Ve-hotech (45W de conso) qui intègre QEMU/KVM (+ accélération matériel), trés facile d'utilisation et performant, une fois qu'on y a goûté, on ne s'en passe plus ;)

Big Monstro 15/02/2010 12:22
Masquer
-1+

Intéressant ce dossier, même si j'ai remarqué qu'il s'agit surtout d'une mise à jour d'un dossier antérieur. Le sujet m'intéresse car j'ai de plus en plus souvent recours à la virtualisation malgré que je ne dispose pas encore de processeur capable de l'accélérer (j'ai des pentium 4 dépourvu de VT-x).

D'après l'article, si je passe d'un Pentium 4 à un Core i7, je n'aurais pas à choisir entre différents modèles puisque tous les Core i7 accélèrent la virtualisation, ce qui n'est pas le cas de tous les Core 2 : c'est bon à savoir

Big Monstro 15/02/2010 12:39
Masquer
-0+

Juste une remarque à faire concernant le dossier :

Citation :Dans la pratique, et même si les gains ne sont pas toujours aussi important qu'attendus, VT-x et AMD-V sont maintenant des prérequis pour installer des programmes de virtualisation (comme avec Windows 7) et les (rares) processeurs ne disposant pas encore de ces technologies sont peu à peu mis à l'écart de la virtualisation

Même si Windows Virtual PC, Microsoft Hyper-V et Parallels Workstation exigent effectivement des processeurs qui supportent les fonctions Intel VT-X ou AMD-V, il faut remarquer que les dernières versions de VmWare Workstation (logiciel qui reste la référence dans le domaine) et de Sun VirtualBox (une alternative gratuite) peuvent toujours fonctionner sans problème sur des processeurs plus anciens.

Quant à Windows 7, si Windows Virtual PC ne marche pas, il est toujours possible d'utiliser la version conçue pour Windows Vista.

Avec Microsoft Virtual PC 2007, vous ne pourrez pas bénéficier du XP Mode mais vous pourrez virtualiser sur une machine plus ancienne sous Windows 7. VmWare Workstation 7 et Sun VirtualBox 3.1.4 fonctionnent aussi très bien sous Windows 7 avec un proco ne supportant pas Intel VT-x ou AMD-V.

back6 16/02/2010 08:47
Masquer
-0+

Dire que la virtualisation perce en 2006 pour faire tourner Windows sur mac, c'est quand meme restrictif. La virtualisation a surtout pris de l'importance dans les datacenter. Pour moi, les choses ont vraiment commencée avec vmware esx server, mais dans certains lieux, le mouvement avait commence avant.

dandu 16/02/2010 09:52
Masquer
-0+

Citation :Quels ont les softs de virtualisation qui supporte vt-d ? Vmware ? (quels version de vmware) ...


Essentiellement les versions "pro" des programmes, simplement parce que VT-d reste rare. 9a devrait être de plus en plus courant dans le futur, surtout avec les Core ix qui le prennent en charge. Mais ça reste — de par les limitations — dédiés au monde professionnel.

anonymous 22/03/2010 23:58
Masquer
-0+

@fricadelle59

On ne peut pas installer Mac OS sur un pc pour la simple et bonne raison que les drivers mac sont développé uniquement pour le matos qu'ils mettent dans leurs machine. On ne trouvera pas de drivers Mac pour une Radeon 5970 par exemple. Autrement dit si tu achètes un pc avec les mêmes composants qu'un mac tu pourrais installer Mac OS en théorie.

Les offres du moment

Newsletters


OK