Vous êtes sur la page 1sur 22

Faculte des Sciences

Departement dInformatique

La Virtualisation

Francois Santy

Projet de Recherche et Communication Scientifique


Annee academique 2009 - 2010

Table des mati`eres


1

Introduction

Definition

Les domaines de la virtualisation


3.1 La virtualisation dapplications
3.2 La virtualisation de reseaux . .
3.3 La virtualisation de stockage .
3.4 La virtualisation de serveurs . .

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

2
2
3
3
5

Les avantages de la virtualisation

Les inconvenients de la virtualisation

Les principes de la virtualisation


6.1 Vocabulaire . . . . . . . . . . . .
6.2 Prerequis . . . . . . . . . . . . .
6.3 Theor`emes . . . . . . . . . . . .
6.4 Composants dun hyperviseur

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

8
9
9
10
11

Les probl`emes lies a` la virtualisation

11

La virtualisation materielle

13

Les differents types de virtualisation


9.1 Machine virtuelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.2 Para-virtualisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.3 Virtualisation au niveau du syst`eme dexploitation . . . . . . . . . . . . . . . .

14
14
16
16

10 Conclusion

18

A Les 18 instructions problematiques de x86

20

INTRODUCTION

Introduction

La virtualisation est un outil qui change radicalement lapproche de linformatique en


repoussant les limites de nos ordinateurs. Il sagit dune technologie a` la portee de tous, du
particulier qui souhaite executer en toute securite une distribution Linux sur sa plate-forme
Windows, aux grandes entreprises qui souhaitent rentabiliser davantage leur infrastructure
informatique.
Dans ce document, nous commencerons par presenter bri`evement les differents domaines
de la virtualisation, pour nous concentrer ensuite plus particuli`erement sur la virtualisation
des serveurs.
Apr`es avoir presente lhistorique de cette technologie nous explorerons les avantages et
les inconvenients quelle presente.
Nous nous attarderons ensuite sur la theorie de Popek et Goldberg, deux chercheurs
americains 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 malheureusement pas compl`etement cette theorie, et que cela pose de nombreux probl`emes en
terme dimplementation des syst`emes de virtualisation.
Nous montrerons par apr`es quil est possible de resoudre ces probl`emes au moyen de
technologies materielles daide a` la virtualisation.
Nous terminerons notre analyse par une rapide presentation des grandes classes de
strategies de virtualisation.

1 / 20

LES DOMAINES DE LA VIRTUALISATION

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 concepts
or technologies such as hardware and software partitioning, time-sharing, partial or
complete machine simulation, emulation, quality of service, and many others. [14]
Virtualization is the creation of a virtual (rather than actual) version of something, such as an operating system, a server, a storage device or network resources. [1]

Nous voyons que la virtualisation repose sur trois e lements importants :


1. Labstraction des ressources informatiques ;
2. La repartition des ressources par lintermediaire de differents outils, de mani`ere a` ce
que celles-ci puissent e tre utilisees par plusieurs environnements virtuels ;
3. La creation denvironnements virtuels.
Ces trois concepts fondamentaux nous am`enent a` donner la definition suivante de la
virtualisation :
La virtualisation est un processus qui va permettre de masquer les caracteristiques
physiques dune ressource informatique de mani`ere a` simplifier les interactions entre cette
ressource et dautres syst`emes, dautres applications et les utilisateurs. Elle va permettre
de percevoir une ressource physique comme plusieurs ressources logiques et, inversement,
de percevoir plusieurs ressources physiques comme une seule ressource logique.

Les domaines de la virtualisation

3.1

La virtualisation dapplications

La virtualisation dapplication est une technologie logicielle qui va permettre dameliorer


la portabilite et la compatibilite des applications en les isolant du syst`eme dexploitation sur
lequel elles sont executees. Elle consiste a` encapsuler lapplication et son contexte dexecution
syst`eme dans un environnement cloisonne. La virtualisation dapplication va necessiter lajout dune couche logicielle supplementaire entre un programme donne et le syst`eme dexploitation ; son but est dintercepter toutes les operations dacc`es ou de modification de
fichiers ou de la base de registre1 afin de les rediriger de mani`ere totalement transparente
vers une localisation virtuelle (generalement un fichier). Puisque cette operation est transparente, lapplication na pas notion de son e tat virtuel. Le terme virtualisation dapplication
est trompeur puisquil ne sagit pas de virtualiser lapplication mais plutot
le contexte au
sein duquel elle sexecute (registres du processeur, syst`eme de fichiers,...).

F. 1 Virtualisation dapplications
1

La base de registre est utilisee par les syst`emes Windows qui y renseignent les donnees de configuration du
syst`eme dexploitation et des autres logiciels installes

2 / 20

LES DOMAINES DE LA VIRTUALISATION

La virtualisation dapplications a de nombreux avantages : elle permet dexecuter des


applications qui ont e te developpees pour dautres environnements dexecution (p. ex. Wine
permet dexecuter des applications Windows sur une plateforme Linux) ; elle prot`ege le
syst`eme dexploitation hote
en sassurant que lapplication virtualisee ne viendra pas interagir avec les fichiers de configuration du syst`eme ; elle e vite de faire appel a` une machine
virtuelle qui consomme plus de ressources ; elle autorise lexecution de code incorrect (p. ex.
une application pourrait vouloir e crire un fichier dans un repertoire syst`eme dont elle ne
poss`ede que les droits en lecture).

3.2

La virtualisation de reseaux

De mani`ere generale, la virtualisation des reseaux consiste a` partager une meme infrastructure physique (debit des liens, ressources CPU des routeurs,...) au profit de plusieurs
reseaux virtuels isoles. Un VLAN (Virtual Local Area Network) est un reseau local regroupant
un ensemble de machines de facon logique et non physique. Puisquun VLAN est une entite
logique, sa creation et sa configuration sont realisees de mani`ere 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 commutateur (switch). Ainsi, chaque port du commutateur est associe a` un reseau virtuel,
independamment de la machine qui y est physiquement raccordee. Le principal inconvenient dun VLAN de niveau 1 est sa rigidite : si une station se raccorde physiquement au reseau par lintermediaire dun autre port du commutateur, alors il est
necessaire de reconfigurer ce commutateur afin de reintegrer la station dans le bon
reseau virtuel.
Les reseaux virtuels de niveau 2, appeles reseaux virtuels par adresse MAC (MAC
address-based VLAN) : ils consistent a` definir un reseau virtuel sur base des adresses
MAC des stations. Une adresse MAC est un identifiant unique implemente dans chaque
adaptateur reseau. Ce type de VLAN est beaucoup plus souple que le precedent car il
est independant de la localisation de la machine.
Les reseaux virtuels de niveau 3. On distingue principalement deux types de VLAN
de 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 type
de reseau virtuel est tr`es flexible puisque les commutateurs adaptent automatiquement leur configuration lorsquune station est deplacee. En revanche, une leg`ere
degradation des performances peut se faire resentir puisque les segments doivent
e tre analyses plus minutieusement.
Les reseaux virtuels par protocole (Protocol-based VLAN). Dans ce cas, les reseaux
virtuels sont cree s sur base des protocoles utilises (TCP/IP, IPX,...) et les stations sont
regroupees en reseaux virtuels suivant le protocole quelles utilisent.
Les avantages quoffrent les reseaux virtuels sont les suivants : une reduction du traffic de
diffusion (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 meilleure flexibilite puisquune modification de la structure des reseaux peut e tre realisee
en 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 la


realite physique de lespace de stockage. Son but est de faire abstraction des peripheriques
de stockage utilises et des interfaces qui leur sont associes (SATA, SCSI,...) afin de limiter
limpact des modifications structurelles de larchitecture de stockage.

3 / 20

LES DOMAINES DE LA VIRTUALISATION

F. 2 Reseaux virtuels
Ce type de virtualisation fait appel a` une application dadministration de volumes
logiques (Logical Volume Manager, LVM). Il sagit dune couche logicielle qui va permettre de
regrouper plusieurs espaces de stockage, appeles volumes physiques, pour ensuite decouper
cet espace global suivant la demande en partitions virtuelles appelees volumes logiques. Ce
processus de virtualisation peut e tre vu comme une extension du mod`ele de partitionnement
classique des disques dur.
La virtualisation de stockage permet :
dadjoindre un peripherique de stockage supplementaire sans interruption des services ;
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 allouees
sur le disque logique. Inversement, un serveur necessitant moins despace de stockage
pourra liberer cet espace et le rendre disponible pour dautres serveurs.

F. 3 Virtualisation de stockage
4 / 20

3.4

LES AVANTAGES DE LA VIRTUALISATION

La virtualisation de serveurs

La virtualisation des serveurs consiste a` masquer les ressources du serveur, c.-`a-d. le nombre et les caracteristiques de chaque machine physique, de chaque processeur et de chaque
syst`eme 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 de
plusieurs machines distinctes) en plusieurs environnements virtuels isoles les uns des autres.
Ces environnements isoles sont parfois appeles serveurs prives virtuels, hotes, instances, containeurs ou emulations.
La virtualisation de serveurs sinscrit dans une tendance globale qui tend a` promouvoir la virtualisation au sein des entreprises en faisant notamment appel a` la virtualisation
de stockage et a` la virtualisation de reseaux. Cette tendance est une composante dans le
developpement de syst`emes autonomes. Un syst`eme est dit autonome si il est capable de
sauto-gerer sur base de lactivite quil percoit, sans aucune intervention externe, et en conservant les details de son implementation invisibles pour lutilisateur.
La suite de ce document concerne plus particuli`erement la virtualisation des serveurs.

Les avantages de la virtualisation

Au cours des derni`eres annees, la virtualisation semble setre imposee comme un e lement
incontournable au sein des entreprises et ce sont principalement les serveurs qui sont au
centre de toutes les attentions. La virtualisation presente les avantages suivants :
1. Une optimisation de linfrastructure. La virtualisation permet doptimiser la charge
de travail des serveurs physiques. En effet, il y a quelques annees, la relation une application un serveur e tait encore largement repandue. Cependant, comme le montre
le schema 4, cette relation introduit un gaspillage important des ressources puisquon
estime que la charge moyenne dun serveur se situe entre 5% et 15% [4]. Lidee est alors

F. 5 Rendement dun serveur en


presence de virtualisation

F. 4 Rendement dun serveur en


labsence 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 une
seule application sur le serveur physique, on va installer sur celui-ci plusieurs serveurs
virtuels executant chacun une application bien precise, et cest le logiciel de virtualisation qui se charge de repartir e quitablement les ressources entre les differentes
instances. De cette mani`ere, comme le montre le schema 5, on optimise le rendement
de chacun des serveurs physiques.
2. Une reduction de linfrastructure physique et des e conomies denergies. Les centres
de donnees sont dimportants consommateurs de ressources. VMware affirme quun
serveur au repos consomme jusqu`a 30% du pic de consommation e lectrique et selon

5 / 20

LES AVANTAGES DE LA VIRTUALISATION

Intel, 36,4% de lenergie est utilisee par les composants physiques des serveurs (processeurs, memoire,...) tandis que les 63,6% restants sont consommes par les e quipements
de climatisation. Ces chiffres sont interpelants et la virtualisation de linfrastructure
dune entreprise doit devenir un de ses projets prioritaires. Puisque plusieurs applications peuvent a` present cohabiter de mani`ere efficace sur un meme syst`eme, les
entreprises vont pouvoir reduire le nombre de machines de leur centre de donnees
en investissant a` nouveau dans dimportants mainframes avec lesquels reapparat le
mod`ele de centralisation de la puissance de calcul. Par consequent, les entreprises
font des e conomies en terme despace mais aussi en terme de frais de ventilation et
dalimentation. La reduction des couts
dalimentation et de refroidissement sinscrit

F. 6 Centre de calcul distribue

F. 7 Centre de calcul centralise

e galement dans une tendance generale a` la promotion du respect de lenvironnement.


Selon Gartner, une entreprise americaine de conseil et de recherche dans le domaine des
techniques avancees, lindustrie informatique serait responsable de 2% des e missions
mondiales de CO2. La virtualisation aurait permis deconomiser 5 milliards de kWh
denergie e lectrique (source :VMware).
3. Une reprise automatique lors des incidents. La virtualisation permet dameliorer la
prevention et la gestion des pannes ainsi que le plan de reprise de lactivite du syst`eme.
En effet, les e quipements virtuels e tant constitues dun ensemble de fichiers, il est tr`es
simple de les sauvegarder. Si un probl`eme survient sur une machine physique, les
fichiers qui ont e te sauvegardes auparavant pourront rapidement e tre restaures sur une
autre machine physique, en attendant que la machine virtuelle initiale soit redemarree.
4. Une optimisation de la securite des donnees. Par la centralisation des ressources applicatives au sein du centre de donnees, la virtualisation contribue a` securiser lacc`es
et lusage des donnees de lentreprise. Il est en effet beaucoup plus simple de controler

lacc`es aux donnees lorsquelles sont regroupees en un lieu que lorsquelles sont
reparties sur lensemble des sites de lentreprise, comme cest le cas dans un mod`ele
dinformatique distribue. Il est neanmoins indispensable de disposer dun syst`eme
de synchronisation qui permettra de sauvegarder lensemble des informations sur un
site exterieur. De cette mani`ere, on limite les risques lies a` la destruction du centre de
donnee initial.
5. Une facilite de migration. La virtualisation apporte la possiblite de migrer facilement
un environnement virtuel dune machine physique vers une autre, facilitant ainsi la
mise a` jour du centre de donnee ou le remplacement de materiel defectueux.
De nombreux outils daide a` la migration ont e te developpes. Ils peuvent e tre regroupes
en 3 grandes categories : P2V (Physical to Virtual), V2P (Virtual to Physical) et V2V (Virtual
6 / 20

LES INCONVENIENTS
DE LA VIRTUALISATION

to Virtual). Les outils P2V sont generalement utilises dans les projets de virtualisation
dune infrastructure informatique. Ils consistent a` convertir les serveurs physiques en
serveurs virtuels. Les outils V2P, qui permettent de convertir des serveurs virtuels
en serveurs physiques, sont peu demandes mais une telle fonctionnalite rassure les
entreprises qui souhaitent utiliser de la virtualisation ; elle leur permet, si elles le
desirent, de faire marche arri`ere. Enfin, les outils V2V, qui permettent de convertir
des serveurs virtuels dun format dans un autre, sont principalement utilises au sein
dentreprises qui utilisent des gestionnaires de syst`emes virtuels differents.
6. Flexibilite et compatibilite. La virtualisation est un outil efficace en terme de flexibilite
et de compatibilite. En effet, elle supprime toute dependance entre une application
donnee et et laspect materiel de la machine sur laquelle elle est executee. Il devient alors
possible dexecuter sur un syst`eme une application qui a e te developpee a` destination
dun autre syst`eme.
7. Un cloisonnement. Le developpement dune application saccompagne necessairement
de phases de tests au cours desquelles le programmeur sassure du bon fonctionnement
et de la stabilite de son logiciel. Neanmoins, il est parfois risque dexecuter une application lorsque lon nest pas certain du resultat qui sera produit. Pour reduire les
risques lies a` des applications peu fiables, la virtualisation peut e tre utilisee pour creer
des environnements isoles et securises qui vont servir de plateformes dessai. Il devient
d`es lors possible diterer un grand nombre de fois un processus de test sans craindre
de destabiliser la machine physique sur laquelle sexecute lapplication.

Les inconvenients de la virtualisation


1. Un point de defaillance unique. Il sagit probablement du plus gros desavantage de la
virtualisation. Puisque plusieurs environnements virtuels sexecutent sur une unique
machine physique, si cette machine tombe en panne, alors les services fournis par les
environnements virtuels sont interrompus.
2. Un recours a` des machines puissantes. La virtualisation permet de realiser des e conomies
puisque moins de machines physiques sont necessaires. Neanmoins, les outils de virtualisations sont des applications tr`es gourmandes en ressources et necessitent des
machines puissantes. Il est e videmment possible dutiliser la virtualisation sur des
machines plus modestes, mais un manque de memoire ou de capacite CPU peut faire
chuter les performances de mani`ere dramatique.
3. Une degradation des performances. Bien quelle soit implementee sur des machines
puissantes, la virtualisation peut reduire les performances des applications. Suivant le
type de virtualisation envisage, cette perte de performances peut ou non e tre significative. Ce probl`eme est dautant plus embarassant quil est difficile destimer a` lavance
limpact quaura la virtualisation sur une application donnee. Dans certains cas, la
degradation 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 syst`eme. La couche de virtualisation vient sajouter aux autres et apporte potentiellement avec elle un ensemble de
nouveaux probl`emes. La difficulte de cette couche additionnelle reside dans le fait
que, si quelque chose ne fonctionne pas correctement, la localisation du probl`eme peut
demander des efforts considerables.
5. Une impossibilite de virtualisation. Bien que, dans la plupart des cas, il nest pas
possible de predire si une application se comportera normalement une fois virtualisee,
il existe des applications qui sont connues pour rencontrer des difficultes lors de
leur virtualisation. Les bases de donnees sont un exemple de telles applications. En
effet, les bases de donnees ont recours a` de nombreux acc`es disques et le delai dacc`es
supplementaire introduit par la virtualisation peut dans certain cas rendre lapplication
inutilisable.
7 / 20

LES PRINCIPES DE LA VIRTUALISATION

6. Un deploiement massif de serveurs. Il ne sagit pas reellement dun desavantage de


la virtualisation en tant que tel, mais dun desavantage de la facilite de mise en place
dun nouvel environnement virtuel. En effet, certains administrateurs estiment quil
est plus securisant de deployer un serveur dans un nouvel environnement virtuel, isole
des autres, plutot
quau sein dun syst`eme dexploitation qui execute simultanement
dautres applications. Cependant, ladministration et les couts
dune telle operation
ajoutent une charge supplementaire quil est difficile destimer a` lavance.
7. Un probl`eme de standardisation. La virtualisation est une technologie largement
repandue mais elle ne fait lobjet daucun protocole de normalisation. Il nexiste par
consequent aucun outil standard aux differentes formes de virtualisation.

Les principes de la virtualisation

Gerald J. Popek et Robert P. Goldberg sont deux chercheurs en informatique qui, en


1974, ont pose les bases de la virtualisation. Leur article [11], publie dans le Communications
of the ACM (Association for Computing Machinery) de juillet 1974, discute les possibilites de
virtualisation des architecture de troisi`eme generation. A lheure actuelle, on distingue cinq
generations darchitectures :
1. La premi`ere generation, de 1940 a` 1956 : les tubes sous vide. Les premiers ordinateurs utilisaient des tubes sous vide pour realiser des calculs numeriques et stockaient
les resultats dans de la memoire primaire materialisee sous la forme de tambours
magnetiques (magnetic drums). Les operations dentrees (inputs) se faisaient a` laide
de cartes perforees et les operations de sorties (outputs) e taient realises sous forme
dimpressions.
2. La deuxi`eme generation, de 1956 a` 1963 : les transistors. Inventes en 1947 par les
Bell Laboratories, ce nest qu`a partir des annees 1950 quils se deploient et viennent
remplacer les tubes sous vide. Les transistors sont devenus un composant cle dans
la fabrication de tout circuit digital et disposent de nombreux avantages par rapport
aux tubes sous vide : ils sont plus petit, consomment moins denergie et sont moins
sujets aux pannes. Les operations dentrees/sorties sont similaires aux ordinateurs de
premi`ere generation.
3. La troisi`eme generation, de 1964 a` 1971 : les circuits integres. Le developpement des
circuits integres sest impose comme la raison detre des architectures de troisi`eme
generation. Les transistors sont miniaturises et places sur des puces en silicium, appele
semiconducteur, ce qui a pour effet daccrotre considerablement la vitesse et lefficacite
des ordinateurs de lepoque. Les ordinateurs de troisi`eme generation revolutionnent
e galement les interactions avec lutilisateur. Les cartes perforees sont remplacees par
un clavier et les moniteurs prennent la place des impressions. De plus, lutilisation
dun syst`eme dexploitation permet de gerer lexecution de plusieurs programmes
simultanement.
4. La quatri`eme generation, de 1971 a` aujourdhui : les microprocesseurs. Des milliers de
circuits integres sont assembles sur une seule puce en silicium pour donner naissance
a` lunite centrale de traitement (Central Processing Unit, CPU) qui e quipe a` lheure
actuelle tous les ordinateurs. Ce qui, dans les annees 1960, necessitait une pi`ece enti`ere
tient a` present dans la paume de la main. Cette quatri`eme generation dordinateur
a e galement vu apparatre les interfaces graphiques et la souris qui ont facilite les
interactions avec lutilisateur.
5. La cinqui`eme generation : lintelligence artificielle. Bien quelle soit toujours en cours
de developpement, certaines applications des ordinateurs de cinqui`eme generation,
comme la reconnaissance vocale, sont dej`a largement repandues. Le developpement
de cette technologie a pour but de rendre le comportement des ordinateur similaire a`
celui des humains.

8 / 20

6.1

LES PRINCIPES DE LA VIRTUALISATION

Vocabulaire

Avant de poursuivre notre analyse, il est necessaire de definir deux termes qui seront
largement 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 machines
virtuelles. Popek et Goldberg ont e tabli trois contraintes que doivent respecter les
controleurs
de machines virtuelles pour pouvoir e tre consideres en tant que tels :

1. Crit`ere dequivalence :
Any program run under the VMM should exhibit an effect identical with that
demonstrated if the program had been run on the original machine directly, with
the possible exception of differences caused by the availability of system resources
and differences caused by timing dependencies.
Ce crit`ere impose que tout programme doit montrer un comportement similaire, quil soit execute au travers dun syst`eme de virtualisation ou bien directement sur la machine physique, a` lexception dune e ventuelle indisponibilite des
ressources ou de contraintes temporelles. Les contraintes temporelles sont dues
a` la couche logicielle de virtualisation qui intervient et a` lexistence dautres machines virtuelles.
2. Crit`ere defficacite :
The second characteristic of a virtual machine monitor is efficiency. It demands
that a statistically dominant subset of the virtual processors instructions be
executed directly by the real processor, with no software intervention by the
VMM.
Cette contrainte exige quune majorite des instructions du processeur virtuel
soient directement executees par le processeur physique et ce, sans intervention
du syst`eme de virtualisation. La virtualisation materielle (voir 8) permet de mieux
repondre a` cette contrainte. Ce crit`ere exclut les syst`emes purement logiciels
(simulations) ainsi que lemulation.
3. Crit`ere de controle
des ressources :
The VMM is said to have complete control of these resources if it is not possible for
a program running under it in the created environment to access any resource
not explicitly allocated and it is possible under certain circumstances for the
VMM to regain control of resources already allocated.
Ce crit`ere impose au syst`eme de virtualisation davoir un controle
total des
ressources. Un programme virtualise ne doit pas avoir la possibilite dacceder a`
une ressources autrement quau travers du syst`eme de virtualisation et ce dernier
se reserve le droit de reprendre le controle
dune ressource a` nimporte quel moment. Le terme ressource se ref`ere a` la memoire et aux autres peripheriques, pas
uniquement au processeur.

6.2

Prerequis

Les prerequis e nonces par Popek et Goldberg sont un ensemble de conditions necessaires
assurant a` une architecture materielle de supporter efficacement le processus de virtualisation.
Le probl`eme est de determiner les caracteristiques que doit posseder le jeu dinstructions
dun processeur afin de repondre de mani`ere efficace aux contraintes e voquees en 6.1. Le
jeu dinstructions (Instruction Set Architecture, ISA) est lensemble des instructions quun
processeur est en mesure dexecuter. Pour e noncer leurs theor`emes, Popek et Goldberg ont
classe les instructions de lISA en 3 groupes :
9 / 20

LES PRINCIPES DE LA VIRTUALISATION

F. 8 Le schema dhyperviseur et de machine virtuelle presente dans larticle de Popek et


Goldberg de 1974 [11]
Les instructions privilegiees : pour les executer, le processeur doit e tre dans un mode
particulier, le mode privilegie. Si le processeur ne se trouve pas dans cet e tat, une
interruption est declenchee et linstruction est piegee (trapped). Linterruption consiste
en un changement de contexte au cours duquel le syst`eme (que ce soit lOS hote
ou
lhyperviseur) decide de la suite a` donner a` cette instruction.
Les instructions sensibles a` la configuration : ce sont les instructions qui ont la possibilite dinterroger ou de modifier la configuration du syst`eme comme par exemple le
mode du processeur ou la quantite de memoire allouee a` un processus particulier.
Les instructions sensibles au comportement : il sagit des instructions dont le comportement ou le resultat va dependre de letat ou la disponibilite des ressources (si le
processeur se trouve en mode privilegie ou non,...).

6.3

Theor`emes
Les resultats de lanalyse de Popek et Golberg peuvent senoncer suivant 2 theor`emes :
Theor`eme 1
For any conventional third generation computer, a VMM may be constructed if
the set of sensitive instructions for that computer is a subset of the set of privileged
instructions.
De mani`ere intuitive, le theor`eme affirme que pour construire un hyperviseur pour une
architecture particuli`ere, il est necessaire que les instructions qui pourraient compromettre le bon fonctionnement de cet hyperviseur (instructions sensibles a` la configuration) soient piegees et que le controle
soit donne a` lhyperviseur. Ceci garantit le crit`ere
de controle
des ressources. Les instrutions non privilegiees, quant a` elles, doivent e tre
executees sans intervention de lhyperviseur afin de garantir le crit`ere defficacite.
Remarquons que si les instructions sensibles a` la configurations ne font pas partie des instructions privilegiees, alors, en vertu du crit`ere defficacite, elles seront
executees sans intervention de lhyperviseur et par consequent, le crit`ere de controle

des ressources nest pas respecte.


Une demonstration plus rigoureuse de ce theor`eme est presentee dans larticle original
de Popek et Goldberg [11].
Theor`eme 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

`
A
` LA VIRTUALISATION
LES PROBLEMES
LIES

Le second theor`eme porte sur la possibilite de faire de la virtualisation recursive, cest


a` dire dexecuter une ou plusieurs machines virtuelles au sein dune machine virtuelle.
Ce theor`eme affirme que ce processus est realisable pour autant que larchitecture
materielle reponde au premier theor`eme et quun hyperviseur puisse e tre developpe
pour cette architecture.

6.4

Composants dun hyperviseur

Lhyperviseur, ou programme de controle,


est un logiciel constitue dun ensemble de
modules. Les modules dun hyperviseur peuvent e tre regroupes en trois categories :
1. Le regulateur (dispatcher) : il peut e tre considere comme le module de controle
de plus
haut niveau de lhyperviseur. Son role
est de donner le controle
a` un des modules de
la deuxi`eme ou de la troisi`eme categorie.
2. Lallocateur : son role
est de determiner quelle(s) ressource(s) doivent e tre allouees
aux applications virtualisees. Il est e galement du ressort de lallocateur de ne pas
donner une meme ressource simultanement a` deux environnements virtuels distincts.
Le regulateur fera appel a` lallocateur chaque fois quun environnement virtuel tentera
dexecuter une instruction privilegiee qui aurait comme repercution de modifier les
ressources allouees a` cet environnement virtuel.
3. Des interpreteurs : a` chacune des instructions privilegiees (`a lexception de celles qui
sont prises en charge par lallocateur), on va associer une routine dinterpretation. Le
role
de ces routines est de simuler le resultat des instructions privilegiees qui sont
piegees.

F. 9 Modules dun hyperviseur

Les probl`emes lies a` la virtualisation

Les probl`emes actuels de la virtualisation sont principalement lies a` lomnipresence de


larchitecture x86 au sein des ordinateurs. Bien que largement repandu, le jeu dinstructions qui la compose nest pas exempt de defauts. Si cette architecture se prete mal a` la
virtualisation, cest a` cause de 18 instructions dites critiques. Ces instructions critiques sont
des instructions sensibles a` la configuration mais qui ne font pas partie des instructions
privilegiees (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 plusieurs
categories (ou niveaux dabstraction) appelees anneaux. Un processeur qui implemente larchitecture x86 dispose de quatre anneaux ou` chaque anneau correspond a` un certain niveau
de privil`eges. Si nous appelons D(i) le niveau de privil`ege accorde aux applications qui
sexecutent sur lanneau i, nous pouvons definir la relation suivante sur les anneaux :
11 / 20

`
A
` LA VIRTUALISATION
LES PROBLEMES
LIES

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

Les instructions critiques necessitent en theorie de sexecuter au niveau de privil`ege le plus


e leve, c.-`a-d. a` lanneau 0. Le probl`eme de 18 de ces instructions critiques, listees dans lannexe A, est quelles peuvent e galement sexecuter aux anneaux 1, 2 et 3. Cela constitue un reel
probl`eme pour les logiciels de virtualisation. En effet, il ne faut en aucun cas quun syst`eme
virtuel ait la possibilite de modifier les ressources physiques de la machine. Il est donc du
ressort de lhyperviseur dintercepter ces instructions critiques de mani`ere a` simuler leur
comportement.
Du point de vue des instructions privilegiees, aucun probl`eme ne se pose : ces instructions
vont e tre piegees (puisque le syst`eme virtuel est execute a` lanneau 3) et lhyperviseur pourra
les 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 privil`ege tr`es e leve),
lhyperviseur doit e tre en mesure de les detecter de mani`ere a` pouvoir les interpreter. Il en
resulte e videmment une surcharge de calcul importante ainsi quune grande complexite de
lhyperviseur.
Dautre part, les syst`emes dexploitation sont concus pour e tre execute au niveau de
privil`eges 0, puisquils sont senses disposer dun controle
total des ressources. Or, lorsquils
sont virtualises, les syst`emes dexploitatation ne sont plus executes sur lanneau 0, mais
sur lanneau 3. Lhyperviseur doit donc e tre en mesure de leurrer le syst`eme dexploitation
virtualise afin que celui-ci ne se rende pas compte quil sexecute avec un faible niveau de
privil`eges.
Au-del`a des probl`emes lies a` larchitecture du processeur, la virtualisation se heurte
e galement a` des probl`emes dadressage memoire. En effet, le syst`eme virtualise suppose
quil a acc`es a` toute la memoire, ce qui est faux puisquil la partage avec dautres environnements virtuels et avec lhyperviseur. Celui-ci doit donc e galement sassurer que chaque
environnement virtuel nacc`ede pas a` un espace dadressage memoire qui ne lui appartient
pas et effectuer la traduction dynamique dadresses virtuelles en adresses physiques.
Enfin, les dispositifs dentrees/sorties constituent a` lheure actuelle un probl`eme majeur dans la plupart des logiciels de virtualisation. Sil est plutot
facile dajouter des unites
de calcul sur un serveur physique afin dameliorer les performances des environnements
virtuels, il nest pas possible daugmenter le debit dacc`es aux disques par exemple2 . De
plus, contrairement au CPU, une grande partie des peripheriques sont e mules, ce qui signifie que chaque instruction dacc`es au pilote dun peripherique virtuel doit e tre traduite
2

Il faudrait pour cela envisager de remplacer tout le materiel de stockage existant par du materiel plus
performant

12 / 20

LA VIRTUALISATION MATERIELLE

en une instruction dacc`es a` un peripherique physique, ce qui fait lourdement chuter les
performances.

La virtualisation materielle

Introduite pour la premi`ere fois par IBM sur ses syst`emes 370, la virtualisation materielle
est une approche de la virtualisation qui vise a` ameliorer les performances des environnements virtuels en faisant appel aux capacites materielles des composants de la machine
physique, et plus particuli`erement du processeur. Ce chapitre mettra donc laccent sur les
technologies materielles de virtualisation implementees au sein des processeurs.
La necessite de developper des solutions de virtualisation assistees par le processeur a
fait son apparition avec la proliferation des syst`emes a` base darchitecture x86. Comme nous
lavons vu au point 7, cette architecture se prete tr`es mal a` la virtualisation et celle-ci necessite
un travail considerable de la part de lhyperviseur. A laide de la virtualisation materielle,
lhyperviseur est en mesure de virtualiser correctement lensemble des instructions de larchitecture x86, y compris les 18 instructions critiques qui posent probl`eme.
Les deux principaux fabricants de processeurs sur le marche, Intel et AMD, ont rapidement compris linteret de ces solutions et, en 2006, ils ont chacun inaugures une nouvelle
gamme de processeurs incluant une technologie daide materielle a` la virtualisation. Cette
technologie est connue sous le nom de Intel VT-x (anciennement Vanderpool) et AMD-V (anciennement Pacifia). Globalement, les technologies des deux concurrents sont semblables et
nous ne les differencierons pas.
Dun point de vue pratique, ces processeurs incluent un nouveau mode dexecution appele Extension de Machine Virtuelle (Virtual Machine Extension, VMX). Puisque lhyperviseur
et lenvironnement virtuel ne peuvent pas se trouver au meme niveau de privil`eges (voir
section 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 trouverait
sous 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 au
sein dun niveau de privil`eges unique). Puisque lhyperviseur doit gerer la repartition des
ressources, il sexecute au niveau racine tandis que les environnements virtuels sexecutent
au niveau normal.
Pour entrer dans le mode dexecution virtuel, le processus execute une instruction particuli`ere (VMXON chez Intel) et, symetriquement, pour quitter le mode virtuel, le processus
execute linstruction inverse (VMXOFF chez Intel). Lorsque lhyperviseur est lance, il peut
passer du mode racine au mode normal (et donc, donner le controle
a` un environnement
virtuel) a` laide dune autre instruction (appelee VMLAUNCH chez Intel) et, symetriquement,
lhyperviseur reprendra le controle
et passera au niveau racine au moyen de linstruction
inverse (VMRESUME chez Intel).
Les technologies de virtualisation materielle dIntel et AMD implementent e galement des
instructions qui permettent daccelerer les sauvegardes et restaurations de contexte. En effet,
lorsquun hyperviseur veut donner le controle
a` un autre environnement virtuel, il doit dune
part sauvegarder le contexte dexecution de lenvironnement virtuel actuellement actif et,
dautre part, restaurer le contexte dexecution de lenvironnement virtuel a` qui il sapprete a`
donner le controle.
Ainsi, a` chaque environnement virtuel est associe un segment en memoire
de quelques kBytes qui contient les donnees importantes du contexte dexecution de cet environnement. Il est lu a` chaque activation dun environnement virtuel et ree crit a` chaque
sortie 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 Controle
de la Machine Virtuelle, (Virtual Machine Control Structure, VMCS).
3

il est parfois aussi appele anneau -1

13 / 20

LES DIFFERENTS
TYPES DE VIRTUALISATION

F. 10 Virtual Machine Extension

Les differents types de virtualisation

Il existe trois approches populaires de virtualisation de serveurs : le mod`ele de machines


virtuelles, le mod`ele de para-virtualisation et la virtualisation au niveau du syst`eme dexploitation.

9.1

Machine virtuelle

Egalement
connue sous le nom de virtualisation compl`ete, cette strategie de virtualisation
consiste 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 syst`eme virtualise souhaite
executer ;
2. lexecution directe des instructions relatives aux applications utilisateurs.
La traduction binaire ne consiste pas a` traduire les instructions dun jeu dinstructions particulier 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 est
place dans le cache de traduction. La traduction binaire dune instruction issue dun environnement virtuel pourrait par exemple consister a` remplacer une instruction de manipulation
du materiel physique en une instruction de manipulation du materiel virtuel associe a` cet environnement, ou a` remplacer une instruction privilegiee par une instruction non privilegiee
(de mani`ere a` ce quelle soit piegee par lOS hote).
La traduction binaire repose donc sur un

travail danalyse des instructions executees par le noyau du syst`eme invite. Cette traduction
peut saverer indispensable pour assurer le maintien de la stabilite du syst`eme dans sa globalite5 .
4
5

Parfois, la traduction consiste simplement a` recopier linstruction de depart


Le syst`eme hote
ainsi que les autres environnements virtuels

14 / 20

LES DIFFERENTS
TYPES DE VIRTUALISATION

F. 11 Intel VT-x

F. 12 Virtualisation compl`ete : a` gauche, lhyperviseur g`ere lui meme le hardware sousjacent ; a` droite, lhyperviseur transmet les requetes aux syst`eme dexploitation hote

Les instructions utilisateurs sont quant a` elles executees directement car lhyperviseur
fait la supposition quelles ne sont pas dangeureuses pour le syst`eme6 . Elle sexecutent donc
comme sil nexistait aucune couche de virtualisation.
Il existe deux types de machines virtuelles : celles ou` lhyperviseur est une application
installee sur un syst`eme dexploitation hote,
et celles ou` lhyperviseur est installe en lieu et
place du syst`eme dexploitation hote.

Avantages :
permet de faire fonctionner plusieurs syst`emes differents sur la meme machine physique ;
bonnes performances et stabilite.
Inconvenients : consommation importantes des ressources (la consommation est fonction
du nombre de machines virtuelles).
Exemples : Microsoft Virtual PC, Microsoft Virtual Server, VirtualBox, VMware Workstation.
Selon VMware, la virtualisation compl`ete est actuellement la strategie de virtualisation
la plus largement repandue et la plus fiable.
6

Elles seront de toute facon piegees une fois traitees par le syst`eme hote

15 / 20

9.2

LES DIFFERENTS
TYPES DE VIRTUALISATION

Para-virtualisation

La para-virtualisation consiste pour le syst`eme dexploitation virtualise a` communiquer


plus efficacement avec lhyperviseur de mani`ere a` accrotre les performances du syst`eme.
Cette strategie de virtualisation est e galement connue sous le nom de virtualisation assistee par
le syst`eme dexploitation (invite). La para-virtualisation implique une modification du noyau du
syst`eme dexploitation virtualise afin de remplacer les instructions non virtualisables par des
hyper-appels (hypercalls) qui vont communiquer directement avec la couche virtuelle de lhyperviseur. Lhyperviseur fournit e galement un ensemble dinterfaces dhyper-appels pour
dautres operations critiques du noyau telles que les operations de gestion de la memoire,
des interruptions,...
La para-virtualisation est differente de la virtualisation compl`ete ou` le syst`eme virtualise
nest pas conscient de son e tat et les instructions critiques sont piegees et traduites. Le principal atout de la para-virtualisatio reside dans ses faibles couts
de virtualisation7 , mais ses
performances par rapport a` la virtualisation compl`ete dependent fortement de la charge de
travail de la machine physique.
Puisque la para-virtualisation ne supporte pas les syst`emes non modifies (et, par consequent,
les syst`emes proprietaires tels que Microsoft Windows), sa portabilite et sa compatibilite sont
reduites. La para-virtualisation introduit e galement des probl`emes de maintenance et de support au sein denvironnements de developpement puisquelle necessite des modifications
du noyau du syst`eme.
Avantages : performances accrues et stabilite.
Inconvenients :
Necessite une adaptation du noyau des syst`emes invites ;
Usage limite aux syst`emes libres (consequence du point precedent).
Exemples : Xen,Microsoft Hyper-V.

9.3

Virtualisation au niveau du syst`eme dexploitation

La virtualisation au niveau du syst`eme dexploitation est une strategie qui consiste a`


realiser le processus de virtualisation au niveau du noyau du syst`eme hote
(ce mod`ele ne
fait donc pas intervenir de couche virtuelle supplementaire). Cette forme de virtualisation
consiste a` creer des environnements virtuels (appeles conteneurs) qui vont chacun dupliquer certains composants du syst`eme dexploitation hote.
Les capacites de virtualisation

font d`es lors partie integrante du syst`eme hote


et non plus de lhyperviseur. La principale
contrainte de ce mod`ele de virtualisation reside dans le fait que les syst`emes invites doivent
imperativement e tre du meme type que le syst`eme hote
8.
Dans le mod`eles des machines virtuelles, chaque syst`eme virtualise communique avec
le materiel au travers dune couche de virtualisation. Plus le nombre de machines virtuelles
est important et plus le syst`eme est ralentit (il faut en effet traduire un grand nombre
doperations virtuelles). Par contre, la virtualisation au niveau du syst`eme dexploitation autorise les environnements virtuels a` communiquer directement avec le syst`eme dexploitation
hote,
comme sil nexistait aucune couche de virtualisation, ce qui ameliore les performances.
Comme les partitions de virtualisation au niveau du syst`eme dexploitation sont generalement
bien plus petites que les partitions des machines virtuelles, il est possible dexecuter un grand
nombre denvironnements virtuels en parall`ele.
Avantages :
permet de faire fonctionner plusieurs instances du meme syst`eme de facon e tanche.
7

Une grande partie du travail de virtualisation a e te realise en modifiant le noyau du syst`eme invite
On ne duplique plus virtuellement le materiel sous-jacent mais bien des composants logiciels du syst`eme
dexploitation hote
; il nest donc pas possible dexecuter des applications qui necessiteraient un environnement
dexecution different
8

16 / 20

LES DIFFERENTS
TYPES DE VIRTUALISATION

F. 13 Virtualisation compl`ete
performances proches du mode natif.
Inconvenients : ne permet de faire fonctionner quun seul type de syst`eme.
Exemples : Linux VServer,Virtuozzo.

17 / 20

10

10

CONCLUSION

Conclusion

Nous avons vu que la virtualisation est une technologie aujourdhui largement repandue
au sein des entreprises. Elle peut prendre de nombreuses formes et est presente a` tous les
niveaux. Bien que ces solutions presentent un certain nombre dinconvenients, les avantages
quelles apportent peuvent saverer determinants dans la politique dacquisition, de structuration et de gestion des ressources informatiques.
Basee sur le travail de deux chercheurs americains qui ont, dans un document publie il
y a bientot
40 ans, impose au jeu dinstructions des processeurs un certain nombre de contraintes afin de pouvoir supporter la virtualisation, celle-ci pose aujourdhui de nombreux
probl`emes. En effet, le jeu dinstructions de larchitecture la plus repandue actuellement ne
respecte pas ces contraintes. Ceci a pour consequence de complexifier le travail des hyperviseurs et il en resulte une degradation des performances des logiciels de virtualisation.
Le besoin de pallier ces probl`emes sest vite fait ressentir et cest ainsi que sest developpe
un grand nombre de solutions daide a` la virtualisation directement incluses au sein du
materiel qui constitue nos ordinateurs.
Aujourdhui, meme sil existe beaucoup de logiciels de virtualisation, ceux-ci peuvent
e tre regroupes en trois grandes classes : la virtualisation compl`ete, la para-virtualisation et
la virtualisation au niveau du syst`eme dexploitation.
Pour terminer, quel est lavenir de la virtualisation ? Lavenir de la virtualisation depend
dun grand nombre de facteurs. Tout dabord, il est necessaire de reconsiderer notre vision
de la technologie afin de profiter pleinement des avantages lies a` la virtualisation. Linformatique est une science en constante e volution et il est imperatif de remettre en question un
grand nombre de principes qui sont aujourdhui largement repandus. Intel et AMD, bien
quils soient sur la bonne voie, ont encore des efforts a` faire pour ameliorer le support materiel
de la virtualisation inclu dans leur processeurs, de mani`ere a` supporter plus efficacement
les differentes technologies presentes sur le marche. Les constructeurs de peripheriques
dentrees/sorties doivent e tablir de nouvelles normes pour permettre une simplification des
interactions entre les environnements virtuels et les fichiers. Enfin, les developpeurs sont
tenus de standardiser les differentes technologies de virtualisation utilisees a` lheure actuelle
afin de garantir des solutions plus accessibles dans le futur.

18 / 20

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.

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

Vous aimerez peut-être aussi