Académique Documents
Professionnel Documents
Culture Documents
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).
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).
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
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
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.