Emulation, virtualisation, etc...
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.
L'é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.
Quels ont les softs de virtualisation qui supporte vt-d ? Vmware ? (quels version de vmware) ...
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.
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
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
Juste une remarque à faire concernant le dossier :
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.
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.
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.
@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.