VmWare

vmware
VMware crée un environnement clos dans lequel sont disponibles un processeur, des périphériques et un BIOS virtuels. Le microprocesseur n'est émulé que quand c'est nécessaire, c'est a dire quand la VM (machine virtuelle) tourne en mode noyau ou en mode réel, mais pas pour le mode user ou le mode "8086 virtuel". Cela permet à VMware d'être beaucoup plus rapide que des solutions multi-platforme tel que Bochs qui émulent tout. Lorsqu'une VM exécute dans un mode qui nécessite une émulation, VMware traduit dynamiquement le code privilégié en un code équivalent en mode user, le place dans un endroit libre de la mémoire, le rend invisible et inaccessible au code d'origine et l'exécute à la place. Lorsque une machine virtuelle fait appel à un périphérique, VMware intercepte la demande et la traduit pour qu'elle soit gérée par le système hôte. Bien que les machines virtuelles tournent en mode user, VMware nécessite d'installer plusieurs pilotes de periphériques privilégiés dans le noyau du système hôte, qui notamment switchent les tables GDT et IDT chaque fois qu'on passe la main à une VM.

VMware assure l'émulation de la carte vidéo, la carte réseau, le lecteur de CD-ROM, le bus USB, les ports séries et parallèle et, bien sûr, le disque dur de type SCSI ou IDE. Ce dernier étant un fichier extensible d'une taille voisine de la place occupée sur la machine virtuelle ou fixe pour davantage de performance. Ce fichier contenant le contenu du disque peut être copié sur un autre hôte et exécuté par un ordinateur. Pour l'ordinateur virtuel, tous les périphériques sont identiques, même si le système hôte est totalement différent, car c'est VMware qui caractérise les périphériques.