Table des matières
La société VMware Inc, fondée en 1998, propose plusieurs produits liés à la virtualisation d'architectures x86. Nous avons utilisé l'un de ces outils, appelé VMware Server, qui permet l'exploitation d'une machine serveur virtuelle.
On appelle virtualisation l'ensemble des technologies matérielles et/ou logicielles qui permettent de faire fonctionner plusieurs systèmes d'exploitation et/ou plusieurs applications sur une même machine, séparément les uns des autres, comme s'ils fonctionnaient sur des machines physiques distinctes.
Les outils de virtualisation fournissent un ou plusieurs de ces éléments :
Une couche d'abstraction matérielle et/ou logicielle ;
Un OS hôte installé directement sur le matériel ;
Un certain nombre d'OS (ou applications, ou encore ensemble d'applications) "virtualisé(s)" ;
Le partitionnement, l'isolation et/ou le partage des ressources physiques et/ou logicielles ;
Des images de machines virtuelles manipulables, c'est à dire que l'on peut effectuer des opérations telles que le démarrage, l'arrêt, le gel, le clonage, la sauvegarde et restauration, ... d'une machine virtualisée ;
Un réseau virtuel interne à la machine hôte, entre la machine hôte et la machine virtualisée.
Il existe de nombreux intérêts à la virtualisation. En voici quelques-uns, la liste étant loin d'être exhaustive :
Migrer facilement une machine virtuelle à une autre ;
Economiser de l'argent sur le matériel ;
Développer ou tester des logiciels avec possibilité de recommencer sans casser le système hôte ;
Sécuriser, isoler, tester un réseau virtuel ;
Se soustraire aux problèmes de compatibilité matérielle : chaque machine virtuelle ne voit qu'un et un seul type de matériel sous forme de pilotes génériques.
Pour bien comprendre le fonctionnement de VMware, il faut revenir sur quelques termes techniques relatifs aux architectures systèmes et aux systèmes d'exploitation.
Les processeurs compatibles Intel fonctionnent par défaut dans un mode appelé mode réel. Il est aujourd'hui désuet car on lui préfère le mode protégé qui est plus robuste face aux erreurs matérielles et de programmation.
Le mode protégé permet un fonctionnement en multitâche, la protection de la mémoire, un système de pagination de la mémoire, et le support matériel de la mémoire virtuelle. Tous les systèmes d'exploitation modernes fonctionnent dans ce mode.
Mais pour des raisons de compatibilité, un ordinateur doit se lancer en mode réel. L'une des premières choses à faire pour lui est ensuite de passer en mode protégé. Un programme peut alors s'exécuter avec différents niveaux de droits :
0 : Mode noyau, toutes les opérations sont autorisées ;
1 et 2 : Modes reservés aux pilotes de périphériques ainsi qu'à certaines bibliothèques du système ;
3 : Mode client, les instructions protégées sont interdites. C'est le niveau de tous les programmes non-systèmes ;
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 lorsque c'est nécessaire, c'est a dire quand la machine virtuelle tourne en mode noyau ou en mode réel, mais pas pour le mode client ou le mode "8086 virtuel" (émulation spécifiques aux programmes 8086). Cela permet à VMware d'être théoriquement beaucoup plus rapide que d'autres solutions multi-platformes qui émulent tout.
Lorsqu'une machine virtuelle exécute dans un mode qui nécessite une émulation, VMware traduit dynamiquement le code privilégié en un code équivalent en mode utilisateur, 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 en mode client sur la machine hôte.
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 client, VMware nécessite d'installer plusieurs pilotes de périphériques privilégiés dans le noyau du système hôte.
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 gère les périphériques.