Vous êtes sur la page 1sur 5

Les machines virtuelles

Dfinition :

Une machine virtuelle est une illusion d'un appareil informatique cre par un logiciel d'mulation. Le logiciel d'mulation simule la prsence de ressources matrielles et logicielles telles que la mmoire, le processeur, le disque dur, voire le systme d'exploitation et les pilotes, permettant d'excuter des programmes comme si ceux-ci s'excutaient sur la machine simule y L'mulation est le fait de mettre en uvre les fonctionnalits d'un appareil en utilisant un autre appareil offrant des fonctionnalits diffrentes. Une des utilisations consiste mettre en uvre le jeu d'instructions d'un processeur en utilisant un autre processeur. Ceci permet par exemple d'utiliser un ordinateur rcent pour excuter des programmes destins un ordinateur ou une console de jeu qui n'existent plus dans le commerce. La simulation s'accompagne d'une baisse significative de la puissance de calcul: la puissance du processeur simul sera une fraction de celle du processeur simulateur

Lutilisation dune machine virtuelle : Les machines virtuelles sont utilises pour exploiter les logiciels d'une machine qui n'existe plus dans le commerce (ordinateur, console de jeu, assistant personnel, ...), pour cacher la machine simulatrice et simuler une machine fictive, telle que la machine virtuelle Java. Elles sont galement utilises pour exploiter une machine unique comme s'il y en avait plusieurs (virtualisation).

Les machines virtuelles


Avantages des machines virtuelles : En gnral, les machines virtuelles offrent quatre caractristiques importantes qui avantagent les utilisateurs :
y y

Compatibilit : les machines virtuelles sont compatibles avec tous les ordinateurs x86 standard Isolation : les machines virtuelles sont isoles les unes des autres comme si elles taient physiquement spares Encapsulation : les machines virtuelles encapsulent un environnement informatique complet Indpendance vis--vis du matriel : les machines virtuelles sexcutent indpendamment du matriel sous-jacent

y y

Compatibilit : linstar dun ordinateur physique, une machine virtuelle hberge ses propres systme dexploitation client et applications et possde tous les composants que lon trouve dans un ordinateur physique (cartemre, carte graphique, contrleur de carte rseau, etc.). En consquence, les machines virtuelles sont totalement compatibles avec tous les systmes dexploitation, applications et pilotes de priphriques de systmes x86 standard. Vous pouvez donc utiliser une machine virtuelle pour excuter les mmes logiciels que vous auriez excuts sur un ordinateur x86 physique. Isolation : Mme si les machines virtuelles peuvent partager les ressources physiques dun mme ordinateur, elles nen demeurent pas moins isoles les unes des autres comme sil sagissait de machines physiquement spares. Si par exemple, quatre machines virtuelles sont prsentes sur un mme serveur physique et si lune des machines virtuelles tombe en panne, les trois autres machines virtuelles demeurent disponibles. Lisolation est un motif important pour comprendre que les critres de disponibilit et de scurit des applications excutes dans un environnement virtuel sont bien suprieurs ceux dune excution dans un systme traditionnel, non virtualis. Encapsulation : Une machine virtuelle est avant tout un conteneur de logiciels qui allie ou encapsule au sein dun package logiciel un ensemble complet de ressources matrielles virtuelles, complt dun systme dexploitation et de toutes ses applications. Lencapsulation favorise grandement la portabilit et la facilit de gestion des machines virtuelles. Par exemple, vous pouvez dplacer et copier une machine virtuelle depuis un emplacement vers un autre linstar de nimporte quel autre fichier dun logiciel, ou enregistrer une machine virtuelle dans un support de stockage de donnes standard ; cela va de la carte mmoire flash USB entrant facilement dans une poche des rseaux de zone de stockage (SAN) dentreprise. Indpendance vis--vis matriel : Les machines virtuelles sont totalement indpendantes du matriel physique sous-jacent. Par exemple, vous pouvez trs bien configurer une machine virtuelle avec des composants virtuels (comme un processeur, une carte rseau, un contrleur SCSI) qui diffrent compltement des composants physiques prsents dans la machine sous-jacente. Des machines virtuelles prsentes sur le mme serveur physique peuvent aussi excuter des types diffrents de systmes dexploitation (Windows, Linux, etc).

Les machines virtuelles


Si couple aux proprits dencapsulation et de compatibilit, lindpendance vis--vis du matriel vous permet de dplacer librement une machine virtuelle dun type dordinateur x86 vers un autre, sans avoir modifier les pilotes de priphrique, le systme dexploitation ou les applications. Lindpendance vis-vis du matriel signifie galement que vous pouvez excuter un ensemble de systmes dexploitation et applications htrognes sur un mme ordinateur physique. Inconvnients de la virtualisation : 1- Cest une technologie, non pas un protocole normalis :
y

Mise en uvre par des technologies diffrentes non standardises. 2- Repose sur des concepts diffrents, et Technologie parfois complexe mettre en uvre 3- Performances ingales selon la technologie de virtualisation employe

y y y y

Certaines technologies noffrent pas de performances ou de stabilits suffisantes Les serveurs nont plus dE/S ddies, chaque machine virtuelle partage les E/S sur disque Baisse de performance possible valuer Ncessit dun serveur hte plus puissant 4- Pertes plus importantes en cas de panne de la machine hte plusieurs services indisponible

Ncessit de sauvegarder les machines virtuelles pour les relancer ailleurs en cas de problmes 5- Multiplication dimages systmes, savoir grer correctement les images systmes, les mettre jour

Les machines virtuelles


Larchitecture de la machine virtuelle : En dcrire qu'une partie de la JVM, savoir, le moteur d'excution, charg de traduire les bytecodes en instructions excutables par le processeur de la machine hte. Bien que ce moteur soit le c ur de la machine virtuelle La machine virtuelle Java constitue en ralit ce qu'on appelle un runtime Java. Le schma ci-dessous prsente l'architecture d'un runtime Java.

Dtaillons chacun des composants prsents dans la figure prcdente :


y

Moteur d'excution : Il s'agit du c ur de la machine virtuelle, dont nous avons dj beaucoup parl. Ce moteur constitue en fait le processeur virtuel Java, charg, rappelons-le, de convertir des bytecodes Java en des instructions excutables par le processeur du systme considr. Gestionnaires exceptions/threads/scurit : Ces gestionnaires sont chargs d'une partie du travail de la JVM. Le gestionnaire d'exceptions permet d'excuter une portion de code particulire lorsqu'il se produit une erreur durant l'excution d'un programme (Cf. chapitre IX). Le gestionnaire de threads a pour fonction de permettre l'excution de plusieurs parties de code simultanment (Cf. chap. VII). Enfin, le gestionnaire de scurit a un rle important dans la scurit de la JVM. Il veille en effet ce qu'un programme excut par le moteur ne vienne pas remettre en cause l'intgrit du systme d'exploitation. Gestionnaire mmoire : Cette partie de la JVM gre, comme son nom l'indique, les ressources mmoire. On distingue plusieurs zones (de gauche droite sur le schma) : une zone rserve au stockage d'informations sur les structures de donnes associes aux classes et aux mthodes, une zone ddie au support des fonctions natives, c'est dire en fait des fonctions non crite en bytecode Java mais dans un autre langage, et enfin une zone de mmoire gre dynamiquement. Il est important de prciser ce niveau de l'expos qu'en Java, comme nous le verrons le moment venu, on ne dsalloue jamais un tableau ou un objet prcdemment allou. Il existe en effet un processus ddi, appel garbage collector, charg de rcuprer la mmoire qui n'est plus utilise lors de l'excution d'un programme. Ce processus n'est pas appliqu aux deux premires zones de mmoire, gres par le gestionnaire de mmoire, que nous venons de dcrire. Chargeur de classes dynamique et vrificateur : Un programme Java tant compos de plusieurs classes, le chargeur de classes a pour but de copier en mmoire les classes demandes

Les machines virtuelles


lors de l'excution d'un programme (au moment de l'instanciation d'un objet, comme nous le verrons). Ce chargeur peut aussi bien aller chercher une classe livre avec l'environnement de programmation (API Java) mais aussi aller rcuprer une classe via un fichier local ou une connexion par rseau. Ce chargement s'effectuant la demande, on dit que le chargeur de classes est dynamique. Le vrificateur quant lui a un rle fondamental : vrifier qu'une classe ne contienne pas de code susceptible de planter la machine virtuelle, voire le systme hte tout entier. Nous verrons au paragraphe suivant comment il fonctionne. Les composants les plus sensibles de la Machine Virtuelle Java, dont nous venons de dcouvrir l'architecture interne, sont ceux qui assurent la scurit de celle-ci (ou plutt du systme d'exploitation hte). Examinons de plus prs le fonctionnement de ces composants. EXEMPLE : VirtualBox :

Oracle VM VirtualBox (anciennement VirtualBox) est un logiciel de virtualisation cr par InnoTek. Il est disponible en tant qu'hte sur les systmes d'exploitation : Windows, Linux 32 et 64 bits, FreeBSD 32 et 64 bits et Mac OS X. Il supporte en tant qu'invit : Windows (dont Vista et7), Linux 2.x, OS/2 Warp, OpenBSD et FreeBSD entre autres Il permet de faire fonctionner Windows, Linux, FreeBSD, solaris... sous mac intel. Il est conu avec une interface conviviale, permettant de crer plusieurs machines virtuelles grce un assitant de cration de machines virtuelles. Virtualbox propose ainsi la quasi totalit des fonctions de ses principaux concurrents commerciaux : Acclration graphique Partage de fichiers entre les systmes Reconnaissance de vos cls usb sans install les drivers Optimisation 64bits et multiprocesseur Logiciel simple et soign qui est une alternative srieuse aux logiciels de virtualisation payants.

Vous aimerez peut-être aussi