Faire cohabiter plusieurs systèmes d’exploitation (OS, pour Operating System) sur une même machine n’a rien de sorcier. Il suffit en effet de les installer en mode ‘ multiboot ‘, ce qui permet de choisir au démarrage de l’ordinateur celui qui sera utilisé. Hélas, les contraintes de cette méthode sont multiples : impossibilité de passer d’un OS à l’autre sans redémarrer, nécessité d’utiliser un système de fichiers compatible avec l’ensemble des OS installés, etc.La solution ? La virtualisation. Une technique bien connue et largement exploitée dans le milieu professionnel qui consiste à simuler, par logiciel, le fonctionnement de plusieurs PC ‘ virtuels ‘ indépendants les uns des autres, sur un même PC physique qui dispose de son propre système d’exploitation (on parle de PC et d’OS hôte). Chaque PC virtuel (on parle aussi de VM, pour Virtual Machine) croit alors qu’il est le seul maître du PC sur lequel il tourne et dispose pour cela d’une configuration matérielle virtuelle qui lui est propre, définie par l’utilisateur au moment de sa création (dans la limite des ressources physiques réelles du PC). Il dispose aussi d’un environnement logiciel (système d’exploitation + logiciels) dédié, plusieurs instances d’un même OS (avec pour chacune une configuration particulière) pouvant en outre se côtoyer sur une même machine dans des PC virtuels différents. Une fois démarrée, chaque VM s’exécute au sein d’une fenêtre sur le bureau du système d’exploitation hôte (Windows, Linux ou Mac OS). Elle dispose de ses propres composants systèmes (contrôleur réseau, contrôleur disque, circuit son, circuit graphique, ports USB, etc. ) qui sont en fait simulés à partir de pilotes génériques (SVGA pour le circuit graphique, Fast Ethernet pour le réseau, IDE pour le disque…) par le logiciel de virtualisation qui assure leur bonne communication avec les éléments physiques correspondants du PC. Si une VM plante, elle ne compromet en rien le fonctionnement des autres VM actives. Pour communiquer avec les autres VM sur le PC, les autres PC du réseau local ou avec Internet, chaque VM utilise la couche réseau du PC hôte à laquelle elle peut accéder soit directement (mode bridge) soit par le biais d’un mécanisme de translation d’adresse de type Nat (le logiciel de virtualisation jouant alors le rôle de routeur pour les VM).Chaque machine virtuelle est matérialisée par trois fichiers stockés dans un dossier de l’OS hôte : l’un correspond aux paramètres de la VM, un autre à l’espace disque virtuel qui lui est attaché et un troisième est destiné à stocker l’état de la machine virtuelle au moment de sa mise en veille par l’utilisateur. Des fichiers qu’il est facile de sauvegarder sur un support externe (comme un DVD), de façon à pouvoir restaurer un environnement de travail complet par simple copie de fichiers, mais aussi de déplacer un PC virtuel d’une machine physique à une autre sans aucune modification. Peu importe que cette machine de destination soit un PC sous Windows ou Linux, un Mac sous Mac OS X ou même un serveur sous Unix, il faut juste que le logiciel de virtualisation soit disponible sous cet environnement.Le logiciel de virtualisation est pour sa part considéré par l’OS hôte comme n’importe quel autre logiciel. Il doit ainsi partager les ressources du PC physique avec les autres logiciels en cours d’exécution. C’est lui qui orchestre le fonctionnement des différentes VM dans la limite du créneau de temps processeur (CPU) qui lui a été accordé par l’OS hôte (voir infographie). S’il vient à planter, tous les PC virtuels dont il a la charge plantent donc également. Il est enfin garant de l’étanchéité et de la cohérence des processus émanant des différentes VM de façon à ce que deux processus provenant de deux VM n’entraînent pas des traitements contradictoires du point de vue du PC physique. Raison pour laquelle il procède à un filtrage systématique de toutes les instructions, ce qui induit un ralentissement des traitements. C’est justement pour accélérer ces opérations de filtrage et le fonctionnement des VM en général que les constructeurs ont ajouté de nouvelles instructions et de nouveaux registres spécialisés au sein de leurs processeurs, des technologies matérielles connues sous les noms VT chez Intel et V chez AMD. Les deux concepteurs de puces misent d’ailleurs beaucoup sur la virtualisation qui justifie pleinement le développement de leurs puces multi-c?”urs, capables d’effectuer réellement plusieurs tâches en même temps…
🔴 Pour ne manquer aucune actualité de 01net, suivez-nous sur Google Actualités et WhatsApp.