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

Emulation, virtualisation, etc...

par

Pour créer des machines virtuelles, différentes solutions existent :

  • l’émulation
  • la virtualisation par traduction binaire


Les deux techniques reposent sur le même concept de base : intercepter à la volée les requêtes des systèmes d’exploitation vers la machine virtuelle et les traduire pour qu’elles puissent être exécutées par la machine réelle.

Cette description succincte est suffisante pour mettre en évidence le principal problème lié à la virtualisation : la perte de performances. En effet, une instruction est remplacée par des dizaines d’autres, et le temps de calcul résultant est bien plus long.

Un émulateur de SuperNESL'émulateur est un cas spécifique : il consiste à utiliser un système d'exploitation (ou un programme) sur un système qui n'utilise pas la même architecture. Par exemple, l'émulation consiste par exemple à lancer un jeu Mégadrive (machine basée sur un processeur 68000) sur un PC classique (en x86). Les émulateurs sont généralement lents, car toutes les instructions doivent être adaptées et — outre le décodage — certaines architectures sont plus efficaces que d'autres. Globalement, la différence de puissance entre les deux machines (hôte et client) doit être importante () la faveur de l'hôte) pour une émulation efficace. Les émulateurs sont soit externes (des programmes) soit intégrés au système : les Mac récents disposent d'un émulateur de code PowerPC (performant pour la bonne et simple raison qu'une partie du code ne change pas, les appels aux fonctions du système restant identiques).

La virtualisation est un peu différente : elle se base sur des systèmes hôtes et clients basés sur la même architecture (x86, par exemple). Concrètement, les instructions sont exécutées nativement par le processeur de l'hôte, le logiciel de virtualisation se « contentant » de modifier les instructions qui pourraient affecter l'hôte (par exemple en écrivant directement dans la mémoire d'un périphérique). Les performances sont souvent proches d'une implémentation native sur des calculs classiques, une perte se faisant par contre sentir dès qu'il y a des appels au matériel (comme une carte graphique), les logiciels de virtualisation n'ayant pas réellement la possibilité d'y accéder directement.

Dans la pratique, et en laissant tomber des cas particuliers comme Rosetta sous Mac OS X, on voit bien que la virtualisation est bien plus efficace. Dans un système émulé, toutes les instructions doivent être analysées, transformées et ensuite exécutées, et le sous-système entier (accès à la mémoire, aux périphériques, etc.) aussi, alors qu'un système virtualisé se contente d'émuler une partie des périphériques et de modifier certaines instructions ainsi que l'accès à la mémoire, mais la majorité des instructions sont exécutées en l'état.

Notons enfin qu'il existe quelques solutions intermédiaires, mais elles sont rares et spécifiques : certains processeurs (Godson 3, par exemple) intègrent des fonctions qui permettent d'accélérer l'émulation du code x86, d'autres intègrent directement des composants matériels pour une émulation très efficace (cas de beaucoup de consoles), etc.

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