virtualisation_ULB_2009_2010

Embed Size (px)

Citation preview

  • 8/6/2019 virtualisation_ULB_2009_2010

    1/22

    Faculte des Sciences

    Departement dInformatique

    La Virtualisation

    Francois Santy

    Projet de Recherche et Communication Scientifique

    Annee academique 2009 - 2010

  • 8/6/2019 virtualisation_ULB_2009_2010

    2/22

    Table des matieres

    1 Introduction 1

    2 Definition 2

    3 Les domaines de la virtualisation 23.1 La virtualisation dapplications . . . . . . . . . . . . . . . . . . . . . . . . . . . 23.2 La virtualisation de reseaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33.3 La virtualisation de stockage . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33.4 La virtualisation de serveurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

    4 Les avantages de la virtualisation 5

    5 Les inconvenients de la virtualisation 7

    6 Les principes de la virtualisation 86.1 Vocabulaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

    6.2 Prerequis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96.3 Theoremes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106.4 Composants dun hyperviseur . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

    7 Les problemes lies a la virtualisation 11

    8 La virtualisation materielle 13

    9 Les differents types de virtualisation 149.1 Machine virtuelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149.2 Para-virtualisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169.3 Virtualisation au niveau du systeme dexploitation . . . . . . . . . . . . . . . . 16

    10 Conclusion 18

    A Les 18 instructions problematiques de x86 20

  • 8/6/2019 virtualisation_ULB_2009_2010

    3/22

    1 INTRODUCTION

    1 Introduction

    La virtualisation est un outil qui change radicalement lapproche de linformatique enrepoussant les limites de nos ordinateurs. Il sagit dune technologie a la portee de tous, duparticulier qui souhaite executer en toute securite une distribution Linux sur sa plate-forme

    Windows, aux grandes entreprises qui souhaitent rentabiliser davantage leur infrastructureinformatique.

    Dansce document, nous commencerons parpresenter brievement lesdifferents domainesde la virtualisation, pour nous concentrer ensuite plus particulierement sur la virtualisationdes serveurs.

    Apres avoir presente lhistorique de cette technologie nous explorerons les avantages etles inconvenients quelle presente.

    Nous nous attarderons ensuite sur la theorie de Popek et Goldberg, deux chercheursamericains qui se sont rapidement interesses a la virtualisation et en ont pose les bases.

    Nous nous rendrons compte par la suite que les ordinateurs actuels ne respectent mal-heureusement pas completement cette theorie, et que cela pose de nombreux problemes enterme dimplementation des systemes de virtualisation.

    Nous montrerons par apres quil est possible de resoudre ces problemes au moyen detechnologies materielles daide a la virtualisation.

    Nous terminerons notre analyse par une rapide presentation des grandes classes destrategies de virtualisation.

    1 /20

  • 8/6/2019 virtualisation_ULB_2009_2010

    4/22

    3 LES DOMAINES DE LA VIRTUALISATION

    2 Definition

    Virtualization is a term that refers to the abstraction of computer resources.

    [...] virtualization is a framework or methodology of dividing the resources of

    a computer into multiple execution environments, by applying one or more conceptsor technologies such as hardware and software partitioning, time-sharing, partial orcomplete machine simulation, emulation, quality of service, and many others. [14]

    Virtualization is the creation of a virtual (rather than actual) version of some-thing, such as an operating system, a server, a storage device or network resources. [1]

    Nous voyons que la virtualisation repose sur trois elements importants :

    1. Labstraction des ressources informatiques ;

    2. La repartition des ressources par lintermediaire de differents outils, de maniere a ceque celles-ci puissent etre utilisees par plusieurs environnements virtuels ;

    3. La creation denvironnements virtuels.

    Ces trois concepts fondamentaux nous amenent a donner la definition suivante de lavirtualisation :

    La virtualisation est un processus qui va permettre de masquer les caracteristiquesphysiques dune ressource informatique de maniere a simplifier les interactions entre cetteressource et dautres systemes, dautres applications et les utilisateurs. Elle va permettrede percevoir une ressource physique comme plusieurs ressources logiques et, inversement,de percevoir plusieurs ressources physiques comme une seule ressource logique.

    3 Les domaines de la virtualisation

    3.1 La virtualisation dapplications

    La virtualisation dapplication est une technologie logicielle qui va permettre dameliorerla portabilite et la compatibilite des applications en les isolant du systeme dexploitation surlequel elles sont executees. Elle consiste a encapsuler lapplicationet son contexte dexecutionsysteme dans un environnement cloisonne. La virtualisation dapplication va necessiter la-

    jout dune couche logicielle supplementaire entre un programme donne et le systeme d-exploitation ; son but est dintercepter toutes les operations dacces ou de modification defichiers ou de la base de registre1 afin de les rediriger de maniere totalement transparentevers une localisation virtuelle (generalement un fichier). Puisque cette operation est trans-parente, lapplication na pas notion de son etat virtuel. Le terme virtualisation dapplicationest trompeur puisquil ne sagit pas de virtualiser lapplication mais plut ot le contexte ausein duquel elle sexecute (registres du processeur, systeme de fichiers,...).

    F. 1 Virtualisation dapplications

    1La base de registre est utilisee par les systemes Windows qui y renseignent les donnees de configuration dusysteme dexploitation et des autres logiciels installes

    2 /20

  • 8/6/2019 virtualisation_ULB_2009_2010

    5/22

    3 LES DOMAINES DE LA VIRTUALISATION

    La virtualisation dapplications a de nombreux avantages : elle permet dexecuter desapplications qui ont ete developpees pour dautres environnements dexecution (p. ex. Winepermet dexecuter des applications Windows sur une plateforme Linux) ; elle protege lesysteme dexploitation hote en sassurant que lapplication virtualisee ne viendra pas inter-agir avec les fichiers de configuration du systeme; elle evite de faire appel a une machinevirtuelle qui consomme plus de ressources ; elle autorise lexecution de code incorrect (p. ex.une application pourrait vouloir ecrire un fichier dans un repertoire systeme dont elle nepossede que les droits en lecture).

    3.2 La virtualisation de reseaux

    De maniere generale, la virtualisation des reseaux consiste a partager une meme infras-tructure physique (debit des liens, ressources CPU des routeurs,...) au profit de plusieursreseaux virtuels isoles. Un VLAN (Virtual Local Area Network) est un reseau local regroupantun ensemble de machines de facon logique et non physique. Puisquun VLAN est une entitelogique, sa creation et sa configuration sont realisees de maniere logicielle et non materielle.On distingue plusieurs types de reseaux virtuels :

    Les reseaux virtuels de niveau 1, appeles reseaux virtuels par port (port-based VLAN) :ils definissent un reseau virtuel en fonction des ports de raccordement sur le com-mutateur (switch). Ainsi, chaque port du commutateur est associe a un reseau virtuel,independamment de la machine qui y est physiquement raccordee. Le principal in-convenient dun VLAN de niveau 1 est sa rigidite : si une station se raccorde physique-ment au reseau par lintermediaire dun autre port du commutateur, alors il estnecessaire de reconfigurer ce commutateur afin de reintegrer la station dans le bonreseau virtuel.

    Les reseaux virtuels de niveau 2, appeles reseaux virtuels par adresse MAC (MACaddress-based VLAN) : ils consistent a definir un reseau virtuel sur base des adressesMAC desstations. Uneadresse MAC estun identifiant uniqueimplementedanschaqueadaptateur reseau. Ce type de VLAN est beaucoup plus souple que le precedent car ilest independant de la localisation de la machine.

    Les reseaux virtuels de niveau 3. On distingue principalement deux types de VLANde niveau 3 : Les reseaux virtuels par adresse de sous-reseau (Network address-based VLAN) : ils

    determinent les reseaus virtuels sur base de ladresse IP source des segments. Ce typede reseau virtuel est tres flexible puisque les commutateurs adaptent automatique-ment leur configuration lorsquune station est deplacee. En revanche, une legeredegradation des performances peut se faire resentir puisque les segments doiventetre analyses plus minutieusement.

    Les reseaux virtuels par protocole (Protocol-based VLAN). Dans ce cas, les reseauxvirtuels sont crees sur base des protocoles utilises (TCP/IP, IPX,...) et les stations sontregroupees en reseaux virtuels suivant le protocole quelles utilisent.

    Les avantages quoff

    rent les reseaux virtuels sont les suivants : une reduction du traffi

    c dediffusion (broadcast) puisque celui-ci est a present contenu au sein de chaque reseau virtuel ;une securite accrue puisque linformation est encapsulee dans une couche supplementaire ;une meilleureflexibilite puisquune modification de la structure desreseauxpeut etrerealiseeen modifiant la configuration du commutateur.

    3.3 La virtualisation de stockage

    La virtualisation de stockage est un procede qui va separer la representation logique et larealite physique de lespace de stockage. Son but est de faire abstraction des peripheriquesde stockage utilises et des interfaces qui leur sont associes (SATA, SCSI,...) afin de limiterlimpact des modifications structurelles de larchitecture de stockage.

    3 /20

  • 8/6/2019 virtualisation_ULB_2009_2010

    6/22

    3 LES DOMAINES DE LA VIRTUALISATION

    F. 2 Reseaux virtuels

    Ce type de virtualisation fait appel a une application dadministration de volumeslogiques (Logical Volume Manager, LVM). Il sagit dune couche logicielle qui va permettre deregrouper plusieurs espaces de stockage, appeles volumes physiques, pour ensuite decoupercet espace global suivant la demande en partitions virtuelles appelees volumes logiques. Ceprocessus de virtualisation peut etre vu comme une extension du modele de partitionnementclassique des disques dur.

    La virtualisation de stockage permet : dadjoindre un peripherique de stockage supplementaire sans interruption des ser-

    vices ; de regrouper des unites de disques durs de differentes vitesses, de differentes tailles et

    de differents constructeurs ; de reallouer dynamiquement de lespace de stockage. Ainsi, un serveur necessitant

    un espace de stockage supplementaire pourra rechercher des ressources non alloueessur le disque logique. Inversement, un serveur necessitant moins despace de stockagepourra liberer cet espace et le rendre disponible pour dautres serveurs.

    F. 3 Virtualisation de stockage

    4 /20

  • 8/6/2019 virtualisation_ULB_2009_2010

    7/22

    4 LES AVANTAGES DE LA VIRTUALISATION

    3.4 La virtualisation de serveurs

    La virtualisation des serveurs consiste a masquer les ressources du serveur, c.-a-d. le nom-bre et les caracteristiques de chaque machine physique, de chaque processeur et de chaquesysteme dexploitation pour les utilisateurs de ce serveur. Ladministrateur du serveur va

    utiliser un logiciel grace auquel il va diviser un serveur physique (constitue ou non deplusieurs machines distinctes) en plusieurs environnements virtuels isoles les uns des autres.Ces environnements isoles sont parfois appeles serveurs prives virtuels, hotes, instances, con-taineurs ou emulations.

    La virtualisation de serveurs sinscrit dans une tendance globale qui tend a promou-voir la virtualisation au sein des entreprises en faisant notamment appel a la virtualisationde stockage et a la virtualisation de reseaux. Cette tendance est une composante dans ledeveloppement de systemes autonomes. Un systeme est dit autonome si il est capable desauto-gerer sur base de lactivite quil percoit, sans aucune intervention externe, et en con-servant les details de son implementation invisibles pour lutilisateur.

    La suite de ce document concerne plus particulierement la virtualisation des serveurs.

    4 Les avantages de la virtualisation

    Au cours des dernieres annees, la virtualisation semble setre imposee comme un elementincontournable au sein des entreprises et ce sont principalement les serveurs qui sont aucentre de toutes les attentions. La virtualisation presente les avantages suivants :

    1. Une optimisation de linfrastructure. La virtualisation permet doptimiser la chargede travail des serveurs physiques. En effet, il y a quelques annees, la relation une ap-

    plication un serveur etait encore largement repandue. Cependant, comme le montrele schema 4, cette relation introduit un gaspillage important des ressources puisquonestime que la charge moyenne dun serveur se situe entre 5% et 15% [4]. Lidee est alors

    F. 4 Rendement dun serveur enlabsence de virtualisation

    F. 5 Rendement dun serveur enpresence de virtualisation

    de recuperer ces ressources disponibles afin den faire beneficier dautres applications.La virtualisation va apporter une solution efficace : plutot que de faire tourner uneseule application sur le serveur physique, on va installer sur celui-ci plusieurs serveursvirtuels executant chacun une application bien precise, et cest le logiciel de virtu-alisation qui se charge de repartir equitablement les ressources entre les differentesinstances. De cette maniere, comme le montre le schema 5, on optimise le rendementde chacun des serveurs physiques.

    2. Une reduction de linfrastructure physique et des economies denergies. Les centresde donnees sont dimportants consommateurs de ressources. VMware affirme quun

    serveur au repos consomme jusqua 30% du pic de consommation electrique et selon

    5 /20

  • 8/6/2019 virtualisation_ULB_2009_2010

    8/22

    4 LES AVANTAGES DE LA VIRTUALISATION

    Intel, 36,4% de lenergie est utilisee par les composants physiques des serveurs (pro-cesseurs, memoire,...)tandisque les 63,6% restants sont consommesparles equipementsde climatisation. Ces chiffres sont interpelants et la virtualisation de linfrastructuredune entreprise doit devenir un de ses projets prioritaires. Puisque plusieurs appli-cations peuvent a present cohabiter de maniere efficace sur un meme systeme, lesentreprises vont pouvoir reduire le nombre de machines de leur centre de donneesen investissant a nouveau dans dimportants mainframes avec lesquels reapparat lemodele de centralisation de la puissance de calcul. Par consequent, les entreprisesfont des economies en terme despace mais aussi en terme de frais de ventilation etdalimentation. La reduction des couts dalimentation et de refroidissement sinscrit

    F. 6 Centre de calcul distribueF. 7 Centre de calcul cen-tralise

    egalement dans une tendance generale a la promotion du respect de lenvironnement.Selon Gartner, une entreprise americaine de conseil et de recherche dans le domaine destechniques avancees, lindustrie informatique serait responsable de 2% des emissionsmondiales de CO2. La virtualisation aurait permis deconomiser 5 milliards de kWhdenergie electrique (source :VMware).

    3. Une reprise automatique lors des incidents. La virtualisation permet dameliorer laprevention et la gestion des pannes ainsi que le plan de reprise de lactivite du systeme.En effet, les equipements virtuels etant constitues dun ensemble de fichiers, il est tressimple de les sauvegarder. Si un probleme survient sur une machine physique, lesfichiers qui ont ete sauvegardes auparavant pourront rapidement etre restauressuruneautre machine physique, en attendant que la machine virtuelle initiale soit redemarree.

    4. Une optimisation de la securite des donnees. Par la centralisation des ressources ap-plicatives au sein du centre de donnees, la virtualisation contribue a securiser lacceset lusage des donnees de lentreprise. Il est en effet beaucoup plus simple de controlerlacces aux donnees lorsquelles sont regroupees en un lieu que lorsquelles sontreparties sur lensemble des sites de lentreprise, comme cest le cas dans un modeledinformatique distribue. Il est neanmoins indispensable de disposer dun systemede synchronisation qui permettra de sauvegarder lensemble des informations sur unsite exterieur. De cette maniere, on limite les risques lies a la destruction du centre dedonnee initial.

    5. Une facilite de migration. La virtualisation apporte la possiblite de migrer facilementun environnement virtuel dune machine physique vers une autre, facilitant ainsi lamise a jour du centre de donnee ou le remplacement de materiel defectueux.

    De nombreux outils daide a la migration ont ete developpes. Ils peuvent etreregroupesen3grandescategories : P2V (Physical to Virtual),V2P(Virtual to Physical)etV2V(Virtual

    6 /20

  • 8/6/2019 virtualisation_ULB_2009_2010

    9/22

    5 LES INCONV ENIENTS DE LA VIRTUALISATION

    to Virtual). Les outils P2V sont generalement utilises dans les projets de virtualisationdune infrastructure informatique. Ils consistent a convertir les serveurs physiques enserveurs virtuels. Les outils V2P, qui permettent de convertir des serveurs virtuelsen serveurs physiques, sont peu demandes mais une telle fonctionnalite rassure lesentreprises qui souhaitent utiliser de la virtualisation ; elle leur permet, si elles ledesirent, de faire marche arriere. Enfin, les outils V2V, qui permettent de convertirdes serveurs virtuels dun format dans un autre, sont principalement utilises au seindentreprises qui utilisent des gestionnaires de systemes virtuels differents.

    6. Flexibilite et compatibilite. La virtualisation est un outil efficace en terme de flexibiliteet de compatibilite. En effet, elle supprime toute dependance entre une applicationdonneeetetlaspectmateriel de la machine sur laquelle elle est executee. Il devient alorspossible dexecuter sur un systeme une application qui a ete developpee a destinationdun autre systeme.

    7. Un cloisonnement. Le developpement dune application saccompagne necessairementde phases de tests au cours desquelles le programmeur sassure du bon fonctionnementet de la stabilite de son logiciel. Neanmoins, il est parfois risque dexecuter une ap-

    plication lorsque lon nest pas certain du resultat qui sera produit. Pour reduire lesrisques lies a des applications peu fiables, la virtualisation peut etre utilisee pour creerdes environnements isolesetsecurises qui vont servir de plateformes dessai. Il devientdes lors possible diterer un grand nombre de fois un processus de test sans craindrede destabiliser la machine physique sur laquelle sexecute lapplication.

    5 Les inconvenients de la virtualisation

    1. Un point de defaillance unique. Il sagit probablement du plus gros desavantage de lavirtualisation. Puisque plusieurs environnements virtuels sexecutent sur une uniquemachine physique, si cette machine tombe en panne, alors les services fournis par lesenvironnements virtuels sont interrompus.

    2. Unrecours a desmachines puissantes. La virtualisation permetde realiser des economiespuisque moins de machines physiques sont necessaires. Neanmoins, les outils de vir-tualisations sont des applications tres gourmandes en ressources et necessitent desmachines puissantes. Il est evidemment possible dutiliser la virtualisation sur desmachines plus modestes, mais un manque de memoire ou de capacite CPU peut fairechuter les performances de maniere dramatique.

    3. Une degradation des performances. Bien quelle soit implementee sur des machinespuissantes, la virtualisation peut reduire les performances des applications. Suivant letype de virtualisation envisage, cette perte de performances peut ou non etre significa-tive. Ce probleme est dautant plus embarassant quil est difficile destimer a lavancelimpact quaura la virtualisation sur une application donnee. Dans certains cas, ladegradation des performances est telle quil est preferable de conserver lapplication

    dans un environnement physique.4. Une complexite accrue de lanalyse derreurs. La virtualisation dun serveur implique

    des changements importants dans linfrastructure du systeme. La couche de virtuali-sation vient sajouter aux autres et apporte potentiellement avec elle un ensemble denouveaux problemes. La difficulte de cette couche additionnelle reside dans le faitque, si quelque chose ne fonctionne pas correctement, la localisation du probleme peutdemander des efforts considerables.

    5. Une impossibilite de virtualisation. Bien que, dans la plupart des cas, il nest paspossible de predire si une application se comportera normalement une fois virtualisee,il existe des applications qui sont connues pour rencontrer des difficultes lors deleur virtualisation. Les bases de donnees sont un exemple de telles applications. Eneffet, les bases de donnees ont recours a de nombreux acces disques et le delai dacces

    supplementaire introduit par la virtualisation peut dans certain cas rendre lapplicationinutilisable.

    7 /20

  • 8/6/2019 virtualisation_ULB_2009_2010

    10/22

    6 LES PRINCIPES DE LA VIRTUALISATION

    6. Un deploiement massif de serveurs. Il ne sagit pas reellement dun desavantage dela virtualisation en tant que tel, mais dun desavantage de la facilite de mise en placedun nouvel environnement virtuel. En effet, certains administrateurs estiment quilest plus securisant de deployer un serveur dans un nouvel environnement virtuel, isoledes autres, plutot quau sein dun systeme dexploitation qui execute simultanementdautres applications. Cependant, ladministration et les couts dune telle operationajoutent une charge supplementaire quil est difficile destimer a lavance.

    7. Un probleme de standardisation. La virtualisation est une technologie largementrepandue mais elle ne fait lobjet daucun protocole de normalisation. Il nexiste parconsequent aucun outil standard aux differentes formes de virtualisation.

    6 Les principes de la virtualisation

    Gerald J. Popek et Robert P. Goldberg sont deux chercheurs en informatique qui, en1974, ont pose les bases de la virtualisation. Leur article [11], publie dans le Communicationsof the ACM (Association for Computing Machinery) de juillet 1974, discute les possibilites de

    virtualisation des architecture de troisieme generation. A lheure actuelle, on distingue cinqgenerations darchitectures :

    1. La premiere generation, de 1940 a 1956 : les tubes sous vide. Les premiers ordina-teurs utilisaient des tubes sous vide pour realiser des calculs numeriques et stockaientles resultats dans de la memoire primaire materialisee sous la forme de tamboursmagnetiques (magnetic drums). Les operations dentrees (inputs) se faisaient a laidede cartes perforees et les operations de sorties (outputs) etaient realises sous formedimpressions.

    2. La deuxieme generation, de 1956 a 1963 : les transistors. Inventes en 1947 par lesBell Laboratories, ce nest qua partir des annees 1950 quils se deploient et viennentremplacer les tubes sous vide. Les transistors sont devenus un composant cle dansla fabrication de tout circuit digital et disposent de nombreux avantages par rapport

    aux tubes sous vide : ils sont plus petit, consomment moins d energie et sont moinssujets aux pannes. Les operations dentrees/sorties sont similaires aux ordinateurs depremiere generation.

    3. La troisieme generation, de 1964 a 1971 : les circuits integres. Le developpement descircuits integres sest impose comme la raison detre des architectures de troisiemegeneration. Les transistors sont miniaturises et places sur des puces en silicium, appelesemiconducteur, ce qui a pour effet daccrotre considerablement la vitesse et lefficacitedes ordinateurs de lepoque. Les ordinateurs de troisieme generation revolutionnentegalement les interactions avec lutilisateur. Les cartes perforees sont remplacees parun clavier et les moniteurs prennent la place des impressions. De plus, lutilisationdun systeme dexploitation permet de gerer lexecution de plusieurs programmessimultanement.

    4. La quatrieme generation, de 1971 a aujourdhui : les microprocesseurs. Des milliers decircuits integres sont assembles sur une seule puce en silicium pour donner naissancea lunite centrale de traitement (Central Processing Unit, CPU) qui equipe a lheureactuelle tous les ordinateurs. Ce qui, dans les annees 1960, necessitait une piece entieretient a present dans la paume de la main. Cette quatrieme generation dordinateura egalement vu apparatre les interfaces graphiques et la souris qui ont facilite lesinteractions avec lutilisateur.

    5. La cinquieme generation : lintelligence artificielle. Bien quelle soit toujours en coursde developpement, certaines applications des ordinateurs de cinquieme generation,comme la reconnaissance vocale, sont deja largement repandues. Le developpementde cette technologie a pour but de rendre le comportement des ordinateur similaire acelui des humains.

    8 /20

  • 8/6/2019 virtualisation_ULB_2009_2010

    11/22

    6 LES PRINCIPES DE LA VIRTUALISATION

    6.1 Vocabulaire

    Avant de poursuivre notre analyse, il est necessaire de definir deux termes qui serontlargement utilises dans la suite de ce document : Une machine virtuelle (Virtual Machine, VM) : il sagit dune reproduction isolee et

    efficace dune machine physique. [11] Un hyperviseur ou controleur de machine virtuelle (Virtual Machine Monitor, VMM) :

    il sagit dun logiciel qui va creer et gerer lexecution dun certain nombre de machinesvirtuelles. Popek et Goldberg ont etabli trois contraintes que doivent respecter lescontroleurs de machines virtuelles pour pouvoir etre consideres en tant que tels :

    1. Critere dequivalence :

    Any program run under the VMM should exhibit an effect identical with thatdemonstrated if the program had been run on the original machine directly, withthe possible exception of differences caused by the availability of system resourcesand differences caused by timing dependencies.

    Ce critere impose que tout programme doit montrer un comportement simi-laire, quil soit execute au travers dun systeme de virtualisation ou bien directe-ment sur la machine physique, a lexception dune eventuelle indisponibilite desressources ou de contraintes temporelles. Les contraintes temporelles sont duesa la couche logicielle de virtualisation qui intervient et a lexistence dautres ma-chines virtuelles.

    2. Critere defficacite :

    The second characteristic of a virtual machine monitor is efficiency. It demandsthat a statistically dominant subset of the virtual processors instructions beexecuted directly by the real processor, with no software intervention by theVMM.

    Cette contrainte exige quune majorite des instructions du processeur virtuelsoient directement executees par le processeur physique et ce, sans intervention

    du systeme de virtualisation. La virtualisation materielle (voir 8) permet de mieuxrepondre a cette contrainte. Ce critere exclut les systemes purement logiciels(simulations) ainsi que lemulation.

    3. Critere de controle des ressources :

    The VMM is said to have complete control of these resources if it is not possible fora program running under it in the created environment to access any resourcenot explicitly allocated and it is possible under certain circumstances for theVMM to regain control of resources already allocated.

    Ce critere impose au systeme de virtualisation davoir un controle total desressources. Un programme virtualise ne doit pas avoir la possibilite dacceder aune ressources autrement quau travers du systeme de virtualisation et ce dernierse reserve le droit de reprendre le controle dune ressource a nimporte quel mo-

    ment. Le terme ressource se refere a la memoire et aux autres peripheriques, pasuniquement au processeur.

    6.2 Prerequis

    Les prerequis enonces par Popek et Goldberg sont un ensemble de conditions necessairesassurant a une architecture materielle de supporter efficacement le processus de virtualisa-tion.

    Le probleme est de determiner les caracteristiques que doit posseder le jeu dinstructionsdun processeur afin de repondre de maniere efficace aux contraintes evoquees en 6.1. Le

    jeu dinstructions (Instruction Set Architecture, ISA) est lensemble des instructions quun

    processeur est en mesure dexecuter. Pour enoncer leurs theoremes, Popek et Goldberg ontclasse les instructions de lISA en 3 groupes :

    9 /20

  • 8/6/2019 virtualisation_ULB_2009_2010

    12/22

    6 LES PRINCIPES DE LA VIRTUALISATION

    F. 8 Le schema dhyperviseur et de machine virtuelle presente dans larticle de Popek etGoldberg de 1974 [11]

    Les instructions privilegiees : pour les executer, le processeur doit etre dans un modeparticulier, le mode privilegie. Si le processeur ne se trouve pas dans cet etat, uneinterruption est declenchee et linstruction est piegee (trapped). Linterruption consisteen un changement de contexte au cours duquel le systeme (que ce soit lOS hote oulhyperviseur) decide de la suite a donner a cette instruction.

    Les instructions sensibles a la configuration : ce sont les instructions qui ont la possi-bilite dinterroger ou de modifier la configuration du systeme comme par exemple lemode du processeur ou la quantite de memoire allouee a un processus particulier.

    Les instructions sensibles au comportement : il sagit des instructions dont le com-portement ou le resultat va dependre de letat ou la disponibilite des ressources (si leprocesseur se trouve en mode privilegie ou non,...).

    6.3 Theoremes

    Les resultats de lanalyse de Popek et Golberg peuvent senoncer suivant 2 theoremes : Theoreme 1

    For any conventional third generation computer, a VMM may be constructed ifthe set of sensitive instructions for that computer is a subset of the set of privilegedinstructions.

    De maniere intuitive, le theoremeaffirme que pour construire un hyperviseur pour unearchitecture particuliere, il est necessaire que les instructions qui pourraient compro-mettre le bon fonctionnement de cet hyperviseur (instructions sensibles a la configura-tion) soient piegees et que le controle soit donne a lhyperviseur. Ceci garantit le critere

    de controle des ressources. Les instrutions non privilegiees, quant a elles, doivent etreexecutees sans intervention de lhyperviseur afin de garantir le critere defficacite.

    Remarquons que si les instructions sensibles a la configurations ne font pas par-tie des instructions privilegiees, alors, en vertu du critere defficacite, elles serontexecutees sans intervention de lhyperviseur et par consequent, le critere de controledes ressources nest pas respecte.

    Une demonstration plus rigoureuse de ce theoreme est presentee dans larticle originalde Popek et Goldberg [11].

    Theoreme 2

    A conventional third generation computer is recursively virtualizable if 1) it is

    virtualizable and 2) a VMM [...] can be constructed for it.

    10 /20

  • 8/6/2019 virtualisation_ULB_2009_2010

    13/22

    7 LES PROBL `EMES LIES `A LA VIRTUALISATION

    Le second theoreme porte sur la possibilite de faire de la virtualisation recursive, cesta dire dexecuter une ou plusieurs machines virtuelles au sein dune machine virtuelle.Ce theoreme affirme que ce processus est realisable pour autant que larchitecturematerielle reponde au premier theoreme et quun hyperviseur puisse etre developpepour cette architecture.

    6.4 Composants dun hyperviseur

    Lhyperviseur, ou programme de controle, est un logiciel constitue dun ensemble demodules. Les modules dun hyperviseur peuvent etre regroupes en trois categories :

    1. Le regulateur (dispatcher) : il peut etre considere comme le module de controle de plushaut niveau de lhyperviseur. Son role est de donner le controle a un des modules dela deuxieme ou de la troisieme categorie.

    2. Lallocateur : son role est de determiner quelle(s) ressource(s) doivent etre alloueesaux applications virtualisees. Il est egalement du ressort de lallocateur de ne pasdonner une meme ressource simultanement a deux environnements virtuels distincts.

    Le regulateur fera appel a lallocateur chaque fois quun environnement virtuel tenteradexecuter une instruction privilegiee qui aurait comme repercution de modifier lesressources allouees a cet environnement virtuel.

    3. Des interpreteurs : a chacune des instructions privilegiees (a lexception de celles quisont prises en charge par lallocateur), on va associer une routine dinterpretation. Lerole de ces routines est de simuler le resultat des instructions privilegiees qui sontpiegees.

    F. 9 Modules dun hyperviseur

    7 Les problemes lies a la virtualisation

    Les problemes actuels de la virtualisation sont principalement lies a lomnipresence delarchitecture x86 au sein des ordinateurs. Bien que largement repandu, le jeu dinstruc-tions qui la compose nest pas exempt de defauts. Si cette architecture se prete mal a lavirtualisation, cest a cause de 18 instructions dites critiques. Ces instructions critiques sontdes instructions sensibles a la configuration mais qui ne font pas partie des instructionsprivilegiees (si ces notions ne sont pas claires, nous renvoyons le lecteur au point 6.2).

    Dun point de vue pratique, les instructions dun processeur sont reparties en plusieurscategories (ou niveaux dabstraction) appelees anneaux. Un processeur qui implemente lar-chitecture x86 dispose de quatre anneaux ou chaque anneau correspond a un certain niveau

    de privileges. Si nous appelons D(i) le niveau de privilege accorde aux applications quisexecutent sur lanneau i, nous pouvons definir la relation suivante sur les anneaux :

    11 /20

  • 8/6/2019 virtualisation_ULB_2009_2010

    14/22

    7 LES PROBL `EMES LIES `A LA VIRTUALISATION

    D(3) < D(2) < D(1) < D(0)

    Les instructions critiques necessitent en theorie de sexecuter au niveau de privilege le pluseleve, c.-a-d. a lanneau 0. Le probleme de 18 de ces instructions critiques, listees dans lan-nexe A, est quelles peuvent egalement sexecuter aux anneaux 1, 2 et 3. Cela constitue un reelprobleme pour les logiciels de virtualisation. En effet, il ne faut en aucun cas quun systemevirtuel ait la possibilite de modifier les ressources physiques de la machine. Il est donc duressort de lhyperviseur dintercepter ces instructions critiques de maniere a simuler leurcomportement.

    Du point de vue des instructions privilegiees, aucun probleme ne se pose : ces instructionsvont etre piegees (puisque le systeme virtuel est execute a lanneau 3) et lhyperviseur pourrales traiter. Mais pour ces 18 instructions critiques, la situation est plus complexe. Comme

    elles ne seront pas piegees (puisquelles ne necessitent pas un niveau de privilege tres eleve),lhyperviseur doit etre en mesure de les detecter de maniere a pouvoir les interpreter. Il enresulte evidemment une surcharge de calcul importante ainsi quune grande complexite delhyperviseur.

    Dautre part, les systemes dexploitation sont concus pour etre execute au niveau deprivileges 0, puisquils sont senses disposer dun controle total des ressources. Or, lorsquilssont virtualises, les systemes dexploitatation ne sont plus executes sur lanneau 0, maissur lanneau 3. Lhyperviseur doit donc etre en mesure de leurrer le systeme dexploitationvirtualise afin que celui-ci ne se rende pas compte quil sexecute avec un faible niveau deprivileges.

    Au-dela des problemes lies a larchitecture du processeur, la virtualisation se heurte

    egalement a des problemes dadressage memoire. En effet, le systeme virtualise supposequil a acces a toute la memoire, ce qui est faux puisquil la partage avec dautres environ-nements virtuels et avec lhyperviseur. Celui-ci doit donc egalement sassurer que chaqueenvironnement virtuel naccede pas a un espace dadressage memoire qui ne lui appartientpas et effectuer la traduction dynamique dadresses virtuelles en adresses physiques.

    Enfin, les dispositifs dentrees/sorties constituent a lheure actuelle un probleme ma-jeur dans la plupart des logiciels de virtualisation. Sil est plutot facile dajouter des unitesde calcul sur un serveur physique afin dameliorer les performances des environnementsvirtuels, il nest pas possible daugmenter le debit dacces aux disques par exemple2. Deplus, contrairement au CPU, une grande partie des peripheriques sont emules, ce qui sig-nifie que chaque instruction dacces au pilote dun peripherique virtuel doit etre traduite

    2Il faudrait pour cela envisager de remplacer tout le materiel de stockage existant par du materiel plusperformant

    12 /20

  • 8/6/2019 virtualisation_ULB_2009_2010

    15/22

    8 LA VIRTUALISATION MATERIELLE

    en une instruction dacces a un peripherique physique, ce qui fait lourdement chuter lesperformances.

    8 La virtualisation materielle

    Introduite pour la premiere fois par IBM sur ses systemes 370, la virtualisation materielleest une approche de la virtualisation qui vise a ameliorer les performances des environ-nements virtuels en faisant appel aux capacites materielles des composants de la machinephysique, et plus particulierement du processeur. Ce chapitre mettra donc laccent sur lestechnologies materielles de virtualisation implementees au sein des processeurs.

    La necessite de developper des solutions de virtualisation assistees par le processeur afait son apparition avec la proliferation des systemes a base darchitecture x86. Comme nouslavons vu au point 7, cette architecture se prete tres mal a la virtualisation et celle-ci necessiteun travail considerable de la part de lhyperviseur. A laide de la virtualisation materielle,lhyperviseur est en mesure de virtualiser correctement lensemble des instructions de lar-chitecture x86, y compris les 18 instructions critiques qui posent probleme.

    Les deux principaux fabricants de processeurs sur le marche, Intel et AMD, ont rapide-ment compris linteret de ces solutions et, en 2006, ils ont chacun inaugures une nouvellegamme de processeurs incluant une technologie daide materielle a la virtualisation. Cettetechnologie est connue sous le nom de Intel VT-x (anciennement Vanderpool) et AMD-V(an-ciennement Pacifia). Globalement, les technologies des deux concurrents sont semblables etnous ne les differencierons pas.

    Dun point de vue pratique, ces processeurs incluent un nouveau mode dexecution ap-pele Extension de Machine Virtuelle (Virtual Machine Extension, VMX). Puisque lhyperviseuret lenvironnement virtuel ne peuvent pas se trouver au meme niveau de privileges (voirsection 7), ce nouveau mode dexecution va ajouter cinq anneaux supplementaires regroupes

    en deux niveaux. Le premier, appele niveau racine correspond a un anneau qui se trouveraitsous lanneau 03 (le niveau racine a donc un controle absolu des ressources). Le second,appele niveau normal, correspond aux quatres anciens anneaux (ils sont donc regroupes ausein dun niveau de privileges unique). Puisque lhyperviseur doit gerer la repartition desressources, il sexecute au niveau racine tandis que les environnements virtuels sexecutentau niveau normal.Pour entrer dans le mode dexecution virtuel, le processus execute une instruction partic-

    uliere (VMXON chez Intel) et, symetriquement, pour quitter le mode virtuel, le processusexecute linstruction inverse (VMXOFF chez Intel). Lorsque lhyperviseur est lance, il peutpasser du mode racine au mode normal (et donc, donner le controle a un environnementvirtuel) a laidedune autre instruction (appelee VMLAUNCHchez Intel) et,symetriquement,lhyperviseur reprendra le controle et passera au niveau racine au moyen de linstructioninverse (VMRESUME chez Intel).

    Les technologies de virtualisation materielle dIntel et AMD implementent egalement desinstructions qui permettent daccelerer les sauvegardes et restaurations de contexte. En effet,lorsquun hyperviseur veut donner le controle a un autre environnement virtuel, il doit dunepart sauvegarder le contexte dexecution de lenvironnement virtuel actuellement actif et,dautre part, restaurer le contexte dexecution de lenvironnement virtuel a qui il sapprete adonner le controle. Ainsi, a chaque environnement virtuel est associeunsegmentenmemoirede quelques kBytes qui contient les donnees importantes du contexte dexecution de cet en-vironnement. Il est lu a chaque activation dun environnement virtuel et reecrit a chaquesortie de celui-ci. Chez AMD, ce segment sappelle Bloc de Controle de la Machine Virtuelle(Virtual Machine Control Block, VMCB) ; chez Intel, ce segment sappelle Structure de Controlede la Machine Virtuelle, (Virtual Machine Control Structure, VMCS).

    3il est parfois aussi appele anneau -1

    13 /20

  • 8/6/2019 virtualisation_ULB_2009_2010

    16/22

    9 LES DIFF ERENTS TYPES DE VIRTUALISATION

    F. 10 Virtual Machine Extension

    9 Les differents types de virtualisation

    Il existe trois approches populaires de virtualisation de serveurs : le modele de machinesvirtuelles, le modele de para-virtualisation et la virtualisation au niveau du systeme dexploitation.

    9.1 Machine virtuelle

    Egalement connue sous le nom de virtualisation complete, cette strategie de virtualisationconsiste a creer des environnements virtuels qui sont une copie dune machine physique(memoire, disques,...). Les machines virtuelles se basent sur deux principes :

    1. la traduction binaire des instructions que le noyau du systeme virtualise souhaiteexecuter ;

    2. lexecution directe des instructions relatives aux applications utilisateurs.

    La traduction binaire ne consiste pas a traduire les instructions dun jeu dinstructions par-ticulier vers un autre (p. ex. x86 RISC), mais plutot de traduire les instructions dun

    jeu dinstructions vers ce meme jeu dinstructions (p. ex. x86 x86)4. Le code traduit estplace dans le cache de traduction. La traduction binaire dune instruction issue dun environ-nement virtuel pourrait par exemple consister a remplacer une instruction de manipulationdu materiel physique en une instruction de manipulation du materiel virtuel associe aceten-vironnement, ou a remplacer une instruction privilegiee par une instruction non privilegiee(de maniere a ce quelle soit piegee par lOS hote). La traduction binaire repose donc sur untravail danalyse des instructions executees par le noyau du systeme invite. Cette traductionpeut saverer indispensable pour assurer le maintien de la stabilite du systeme dans sa glob-alite5.

    4Parfois, la traduction consiste simplement a recopier linstruction de depart5Le systeme hote ainsi que les autres environnements virtuels

    14 /20

  • 8/6/2019 virtualisation_ULB_2009_2010

    17/22

    9 LES DIFF ERENTS TYPES DE VIRTUALISATION

    F. 11 Intel VT-x

    F. 12 Virtualisation complete : a gauche, lhyperviseur gere lui meme le hardware sous-jacent ; a droite, lhyperviseur transmet les requetes aux systeme dexploitation hote

    Les instructions utilisateurs sont quant a elles executees directement car lhyperviseurfait la supposition quelles ne sont pas dangeureuses pour le systeme6. Elle sexecutent donccomme sil nexistait aucune couche de virtualisation.

    Il existe deux types de machines virtuelles : celles ou lhyperviseur est une applicationinstallee sur un systeme dexploitation hote, et celles ou lhyperviseur est installe en lieu etplace du systeme dexploitation hote.

    Avantages : permetde fairefonctionner plusieurssystemesdifferentssurlamememachine physique ; bonnes performances et stabilite.

    Inconvenients : consommation importantes des ressources (la consommation est fonctiondu nombre de machines virtuelles).Exemples : Microsoft Virtual PC, Microsoft Virtual Server, VirtualBox, VMware Workstation.

    Selon VMware, la virtualisation complete est actuellement la strategie de virtualisationla plus largement repandue et la plus fiable.

    6Elles seront de toute facon piegees une fois traitees par le systeme hote

    15 /20

  • 8/6/2019 virtualisation_ULB_2009_2010

    18/22

    9 LES DIFF ERENTS TYPES DE VIRTUALISATION

    9.2 Para-virtualisation

    La para-virtualisation consiste pour le systeme dexploitation virtualise a communiquerplus efficacement avec lhyperviseur de maniere a accrotre les performances du systeme.Cette strategie de virtualisation est egalement connue sous le nom de virtualisation assistee par

    lesysteme dexploitation (invite). La para-virtualisation implique une modification du noyau dusysteme dexploitation virtualise afin de remplacer les instructions non virtualisables par deshyper-appels (hypercalls) qui vont communiquer directement avec la couche virtuelle de lhy-perviseur. Lhyperviseur fournit egalement un ensemble dinterfaces dhyper-appels pourdautres operations critiques du noyau telles que les operations de gestion de la memoire,des interruptions,...La para-virtualisation est differente de la virtualisation complete ou le systeme virtualisenest pas conscient de son etat et les instructions critiques sont piegees et traduites. Le prin-cipal atout de la para-virtualisatio reside dans ses faibles couts de virtualisation7, mais sesperformances par rapport a la virtualisation complete dependent fortement de la charge detravail de la machine physique.

    Puisque la para-virtualisation ne supporte paslessystemes non modifies(et,parconsequent,les systemes proprietaires tels que Microsoft Windows), sa portabilite et sa compatibilite sontreduites. La para-virtualisationintroduit egalement des problemes de maintenance et de sup-port au sein denvironnements de developpement puisquelle necessite des modificationsdu noyau du systeme.

    Avantages : performances accrues et stabilite.Inconvenients : Necessite une adaptation du noyau des systemes invites ; Usage limite aux systemes libres (consequence du point precedent).

    Exemples : Xen,Microsoft Hyper-V.

    9.3 Virtualisation au niveau du systeme dexploitation

    La virtualisation au niveau du systeme dexploitation est une strategie qui consiste arealiser le processus de virtualisation au niveau du noyau du systeme hote (ce modele nefait donc pas intervenir de couche virtuelle supplementaire). Cette forme de virtualisationconsiste a creer des environnements virtuels (appeles conteneurs) qui vont chacun dupli-quer certains composants du systeme dexploitation hote. Les capacites de virtualisationfont des lors partie integrante du systeme hote et non plus de lhyperviseur. La principalecontrainte de ce modele de virtualisation reside dans le fait que les systemes invites doiventimperativement etre du meme type que le systeme hote8.

    Dans le modeles des machines virtuelles, chaque systeme virtualise communique avecle materiel au travers dune couche de virtualisation. Plus le nombre de machines virtuellesest important et plus le systeme est ralentit (il faut en effet traduire un grand nombre

    doperations virtuelles). Par contre, la virtualisation au niveau du systeme dexploitation au-toriseles environnements virtuels a communiquer directement avec le systeme dexploitationhote, comme sil nexistait aucune couche de virtualisation, ce qui ameliore les performances.

    Comme lespartitionsde virtualisation au niveaudu systemedexploitation sont generalementbien plus petites que les partitions des machines virtuelles, il est possible dexecuter un grandnombre denvironnements virtuels en parallele.

    Avantages : permet de faire fonctionner plusieurs instances du meme systeme de facon etanche.

    7Une grande partie du travail de virtualisation a ete realise en modifiant le noyau du systeme invite8On ne duplique plus virtuellement le materiel sous-jacent mais bien des composants logiciels du systeme

    dexploitation hote ; il nest donc pas possible dexecuter des applications qui necessiteraient un environnementdexecution different

    16 /20

  • 8/6/2019 virtualisation_ULB_2009_2010

    19/22

    9 LES DIFF ERENTS TYPES DE VIRTUALISATION

    F. 13 Virtualisation complete

    performances proches du mode natif.Inconvenients : ne permet de faire fonctionner quun seul type de systeme.

    Exemples : Linux VServer,Virtuozzo.

    17 /20

  • 8/6/2019 virtualisation_ULB_2009_2010

    20/22

    10 CONCLUSION

    10 Conclusion

    Nous avons vu que la virtualisation est une technologie aujourdhui largement repandueau sein des entreprises. Elle peut prendre de nombreuses formes et est presente a tous lesniveaux. Bien que ces solutions presentent un certain nombre dinconvenients, les avantages

    quelles apportent peuvent saverer determinants dans la politique dacquisition, de struc-turation et de gestion des ressources informatiques.

    Basee sur le travail de deux chercheurs americains qui ont, dans un document publie ily a bientot 40 ans, impose au jeu dinstructions des processeurs un certain nombre de con-traintes afin de pouvoir supporter la virtualisation, celle-ci pose aujourdhui de nombreuxproblemes. En effet, le jeu dinstructions de larchitecture la plus repandue actuellement nerespecte pas ces contraintes. Ceci a pour consequence de complexifier le travail des hyper-viseurs et il en resulte une degradation des performances des logiciels de virtualisation.

    Le besoin de pallier ces problemes sest vite fait ressentir et cest ainsi que sest developpeun grand nombre de solutions daide a la virtualisation directement incluses au sein dumateriel qui constitue nos ordinateurs.

    Aujourdhui, meme sil existe beaucoup de logiciels de virtualisation, ceux-ci peuventetre regroupes en trois grandes classes : la virtualisation complete, la para-virtualisation etla virtualisation au niveau du systeme dexploitation.

    Pour terminer, quel est lavenir de la virtualisation ? Lavenir de la virtualisation dependdun grand nombre de facteurs. Tout dabord, il est necessaire de reconsiderer notre visionde la technologie afin de profiter pleinement des avantages lies a la virtualisation. Linfor-matique est une science en constante evolution et il est imperatif de remettre en question ungrand nombre de principes qui sont aujourdhui largement repandus. Intel et AMD, bienquils soient sur la bonne voie, ont encoredes efforts a faire pourameliorer le support materielde la virtualisation inclu dans leur processeurs, de maniere a supporter plus efficacement

    les differentes technologies presentes sur le marche. Les constructeurs de peripheriquesdentrees/sorties doivent etablir de nouvelles normes pour permettre une simplification desinteractions entre les environnements virtuels et les fichiers. Enfin, les developpeurs sonttenus de standardiser les differentes technologies de virtualisation utilisees a lheure actuelleafin de garantir des solutions plus accessibles dans le futur.

    18 /20

  • 8/6/2019 virtualisation_ULB_2009_2010

    21/22

    References

    [1] Server Virtualization : Covrering todays Server Virtualization topics.searchservervirtualization.techtarget.com/ .

    [2] AllExperts. Serveurs et Stockage. www.zdnet.fr/actualites/it-management/0,3800005311,39711925,00.htm.

    [3] AnandTech. Hardware Virtualization : the Nuts and Bolts. www.anandtech.com/IT/showdoc.aspx?i=3263&p=1 .

    [4] Arumtec. Pourquoi virtualiser est GREEN. www.arumtec.net/fr/laboratoire-arumtec/faq/q5-pourquoi-virtualiser-est-green.

    [5] AMD Company. AMD Nested Paging. Juillet 2008.

    [6] Alain Devarieux. Virtualisation de serveurs, Solutions Open Source.

    [7] Gagnaire Laure et Lahoudere Fabien. La virtualisation. Decembre 2007.

    [8] Bernard Golden. Virtualization for Dummies.

    [9] Cynthia E. Irvine John Scott Robin. Analysis of the Intel Pentiums Ability to Support a

    Secure Virtual Machine Monitor. Aout 2000.[10] Najmi. Generations of Computer. Aout 2004.

    [11] Popek and Goldberg. Formal Requirements for Virtualizable Third Generation Architectures.Juillet 1974.

    [12] Inc. Red Hat. Virtualization Guide : Red Hat Virtualization. 2007.

    [13] Hardware Secrets. Intel Virtualization Technology (VT) Explained. www.hardwaresecrets.com/article/263/1.

    [14] Amit Singh. An introduction to virtualization. www.kernelthread.com/publications/virtualization/, Janvier 2004.

    [15] Genesis Multimedia Solutions. Virtualization Technologies. Juin 2009.

    [16] Pascal Verschaeve. Trasys - Service Presentation - Virtualization Service Offerings.

    [17] Virtualizationdefrag. The Rise of Virtual Systems and Virtualization.virtualizationdefrag.com/articles/history-of-virtualization/index.php,2009.

    [18] VMware. Understanding Full Virtualization, Paravirtualization, and Hardware Assist. 2007.

    [19] VMware. Historique de la virtualisation. www.vmware.com/fr/overview/history.html ,2008.

    [20] ZDnet. Serveurs et Stockage. www.zdnet.fr/actualites/it-management/0,3800005311,39711925,00.htm.

  • 8/6/2019 virtualisation_ULB_2009_2010

    22/22

    A Les 18 instructions problematiques de x86

    SGDT SIDT SLDT SMSW PUSHF POPF LAR LSL VERR VERW POP PUSH CALL JMP INT n RET STR MOVE