Tous les comparatifs
- la virtualisation
- memoire physique
- virtualisation intel
- memoires virtuelles
- optimiser la memoire virtuelle
- type de virtualisation
- memoire virtuelle
- realiser un memoire
- les différents types de virtualisation
- mémoire physique de l ordinateur
- bloquer acces a une page
- memoire virtualisation
- probleme memory management
- analyse physique disque dur
- memoire virtuelle non allouee
La virtualisation mémoire
Lorsqu’il est seul installé sur une machine, un OS s’occupe de l’adressage de la totalité de la mémoire vive. En d’autres termes, il décide d’en allouer une certaine quantité à chaque application, quantité qui sera comprise entre le bit d’adresse x et celui d’adresse y. Cet adressage est réalisé sur une mémoire virtuelle, dite linéaire, qui représente la totalité de la mémoire vive disponible, qu’elle soit répartie sur une ou deux barrettes, ou sur le disque dur. La correspondance entre cette mémoire linéaire et la mémoire physique est réalisée par une unité du CPU, la MMU (Memory Management Unit). La MMU maintient à jour le tableau de correspondance entre les adresses physiques et les adresses linéaires demandées par l’OS, ce qui est appelé la page de table (page table ou PT en anglais).
Sur un ordinateur où tournent plusieurs systèmes d’exploitation, chacun ne peut utiliser qu’une portion de la mémoire vive totale. Le partage est décidé par le VMM lors de la création de chaque VM. Par exemple, l’OS 1 doit utiliser les bits zéro à x, et l’OS 2 les bits x+1 à z. malheureusement, un OS débute toujours son adressage à zéro. Pour éviter les conflits entre différents OS fonctionnant simultanément, il faut donc que l’hyperviseur bloque tous les accès des OS vers la MMU et les réinterprète. Le VMM construit alors, pour chaque OS, une fausse page de table faisant correspondre les adresses linéaires réclamées par l’OS à celles qui lui sont réservées. Ce tableau de correspondance intermédiaire est appelé Shadow Page Table (SPT). Au final, un simple accès mémoire devient une opération complexe :
- sans virtualisation :
- Avec virtualisation :
- adresse linéaire invité -----------> adresse linéaire hôte
VMM SPT - adresse linéaire hôte -----------> adresse physique hôteMMU PT
Pour réduire le travail du VMM, Intel et AMD ont inventé les Extended Page Tables (EPT) et Nested Page Tables (NPT) respectivement. Il s’agit dans les deux cas d’implanter les SPT en hardware. En plus de la PT de la MMU, il y a donc une EPT ou NPT par OS invité. Ces tableaux permettent en fait de dédier une partie des adresses physiques de la mémoire à chaque OS. Ceux-ci peuvent alors accéder librement à leur propre domaine d’adresses réservé, sans provoquer l’intervention du VMM. L’ensemble des adresses mémoires physiques des OS invités est ensuite recompilé dans l’EPT. Le schéma est donc le suivant :
- adresse linéaire invité -----------> adresse physique invité
MMU PT - adresse physique invité -----------> adresse physique hôteEPT
Ces optimisations ne sont pas encore implantées (activées ?) dans les processeurs Intel ou AMD vendus aujourd’hui. Elles ne le seront que courant 2007.
La virtualisation des périphériques
Le dernier gros chantier de la virtualisation hardware est celui des périphériques. En effet, aujourd’hui, les VMM utilisent un pilote de périphérique générique pour toutes les VM quelque soit le matériel réellement installé dans l’ordinateur. Les OS invités voient des périphériques virtuels, émulés par le VMM, et toutes leurs requêtes vont au VMM qui les redirige ensuite vers le matériel. La virtualisation des périphériques (I/O virtualisation) permettrait de monter directement un périphérique sur une machine virtuelle. Là encore, on peut espérer des gains très importants en termes de rapidité d’exécution, mais on peut surtout espérer voir les fonctionnalités des machines virtuelles démultipliées : accélération graphique, sonore, reconnaissance d’un bien plus grand nombre d’appareils photo, imprimantes, clés USB… tout cela sera peut-être permis dans les VM de l’année 2008.
- Les enjeux du parallélisme [Les news : vos réactions]
- Intel, les CPU et la virtualisation [Les news : vos réactions]
- Conseils avant achats, PC multimédia [Matériel]
- pentium D 940 ou Conroe ? [Matériel]
- Pilotes WHQL de NVIDIA pour Windows 7 [Les news : vos réactions]
Posez votre question sur ce sujet à la communauté !
Sujets relatifs sur le forum
- [Topic Unique] La Config Ultime
- Les Pentium reviennent
- Symantec en rajoute sur les failles de Vista
- Un programme malveillant indécelable
- Red Hat aussi parle virtualisation
- AMD choisit le Quad Core
- Virtual PC bientôt sur MacIntel
- Microsoft Virtual Server 2005 va gérer Linux
- Le Cell se dévoile petit à petit

Manque Qemu...!
je savais pas que popek était un informaticien renommé ^^

Manque aussi VirtualBox !
Existe-t-il un comparatif des performances obtenus avec ces logiciels de virtualisation ?
Virtual PC est réputé lent, Qemu aussi. Mais et les autres ?
qemu avec l'accelerator est loin d'être lent. ça représente presque du 1:1 si l'arch hote est la même que "l'émulée".
Intéressant !
Mais quand même, Denis, on avait pas besoin du screen d'une convers' Messenger truquée pour savoir que David avait des soucis avec la grammaire...
Manque aussi linux-vserver, qui représente un autre type de virtualisation par isolation de contexte, très pratique parce que très léger (et bien maintenu et stable maintenant). On partage les ressources du noyau mais les processus tournent dans un contexte isolé (et étanche : l'invité ne peut pas ouvrir une porte sur l'hôte). A essayer sur debian ou gentoo (de préférence).
manque aussi linux 2.6.20 avec KVM
Existe-t-il un comparatif des performances obtenus avec ces logiciels de virtualisation ?
Virtual PC est réputé lent, Qemu aussi. Mais et les autres ?
kqemu n'est pas lent... la paravirtualistion est rapide en générale...
avec KVM on s'approche de la vitesse d'un systeme natif...
Existe-t-il un comparatif des performances obtenus avec ces logiciels de virtualisation ?
Virtual PC est réputé lent, Qemu aussi. Mais et les autres ?
En voici une liste http://en.wikipedia.org/wiki/Compa [...] l_machines
Intéressant !
![[:rire2]](http://img.infos-du-net.com/forum/images/perso/rire2.gif)
Mais quand même, Denis, on avait pas besoin du screen d'une convers' Messenger truquée pour savoir que David avait des soucis avec la grammaire...
les logiciels de virtualisation ne trompent rien du tout votre definition est fausse ^^
mais y a t il des solutions qui ne gèrent pas le snapshot ? c'est quand même plus simple 
Le plus simple c'est de faire une analogie:
Un simulateur de vol créer un monde virtuel dans lequel on pilote un avion
le logiciel de virtualisation créé un environement materiel virtuel dans lequel on va implanter un système d'exploitation, c'est un simulateur de pc quoi!
sauvegarder le fichier mwai mwai mwai
Qu'il manque tel ou tel émulateur celà ne semble pas très important, l'article ne voulant seulement expliquer le principe.
Aujourd'hui le virtualisation se limite à héberger un OS traditionnel "monolithique" dans un autre à son insu.
Mais on peut aussi imaginer le morcellement futur des OS actuels.
Les couches différentes de l'OS pourront tourner chacunes dans une machine virtuelle distincte.
On obtient un gain de stabilité, car si une brique plante, il suffit de la redémarrer et les autres parties fonctionnent toujours... Ou si de la mémoire est perdue il suffit donc de redémarrer cette partie sans toucher aux autres...
L'avantage sera surtout pour les concepteurs de l'OS : au lieu de sortir des nouvelles versions complètes, on pourra mettre à jour seulement une des briques. Le développement s'en trouvera grandement simplifié...
Merci pour le lien vers wikipedia, excellent.
Merci pour les commentaires sur Qemu, je n'avais des retours que dans le cadre d'une émulation de processeur, d'où la lenteur constatée.
Merci pour le lien vers wikipedia, excellent.
Merci pour les commentaires sur Qemu, je n'avais des retours que dans le cadre d'une émulation de processeur, d'où la lenteur constatée.
De rien.
Tout d'abord merci à tous pour vos commentaires.
A ceux qui regrettent quelques oublis, je précise que ce dossier n'avait pas l'intention d'être exhaustif. il s'agit plus d'une présentation de la technologie destinée aux non-spécialistes
Qu'il manque tel ou tel émulateur celà ne semble pas très important, l'article ne voulant seulement expliquer le principe.
Aujourd'hui le virtualisation se limite à héberger un OS traditionnel "monolithique" dans un autre à son insu.
Mais on peut aussi imaginer le morcellement futur des OS actuels.
Les couches différentes de l'OS pourront tourner chacunes dans une machine virtuelle distincte.
On obtient un gain de stabilité, car si une brique plante, il suffit de la redémarrer et les autres parties fonctionnent toujours... Ou si de la mémoire est perdue il suffit donc de redémarrer cette partie sans toucher aux autres...
L'avantage sera surtout pour les concepteurs de l'OS : au lieu de sortir des nouvelles versions complètes, on pourra mettre à jour seulement une des briques. Le développement s'en trouvera grandement simplifié...
je donne 5 ans et pas plus au développeur pour mettre en place ce genre de système partout, sinon je pourrais considérer la virtualistion comme morte. De plus, le coup 'redémarrer la brique sans rien faire planter' je demande à voir
Virtual PC 2007 est sorti depuis mi-février.
http://www.microsoft.com/downloads [...] c0b40a73b6
Matthieu, j'ai beaucoup apprécié ton article, je lui trouvé très clair et objectif. Pourtant, il contienne un petit erreur :
"Le VMM peut soit être installé comme une application d’un système d’exploitation hôte (type 1), soit comme une couche logicielle plus profonde que le système d’exploitation (type 2)."
En effet, c'est le contraire - le Type 1 est exécuté directement sous la couche matérielle, jouant aussi le rôle de système d'exploitation, pendant que le Type 2 est installé tel q'une application sous le système d'exploitation (voir http://www.cs.nps.navy.mil/people/ [...] 0-0611.pdf comme source)