Machine virtuelle
Un article de Wikipédia, l'encyclopédie libre.
Le sens originel de machine virtuelle est la création de plusieurs environnements d'exécution sur un seul ordinateur, dont chacun émule l'ordinateur hôte. Cela fournit à chaque utilisateur l'illusion de disposer d'un ordinateur complet alors que chaque machine virtuelle est isolée des autres. Le logiciel hôte qui fournit cette fonctionnalité est souvent dénommé superviseur ou hyperviseur. Ce concept va plus loin que celui des simples temps partagés où chaque utilisateur dispose seulement d'un espace de développement personnel, et non d'une machine simulée entière.
- VM/370 permettait dès les années 70 d'avoir plusieurs systèmes d'exploitation simultanés sur le même mainframe. Pour éviter les duplications inutiles de code, on pouvait définir des segments de mémoire partagés de façon invisible (en mode de lecture seule, bien sûr) entre deux de ces systèmes ou plus.
- Windows NT et ses successeurs incorporent une machine virtuelle pour simuler un environnement MS-DOS
- Linux possède lui aussi un environnement de virtualisation Open Source nommé Xen. Par réaction, une version simplifiée du produit précurseur de la société VMware a été rendue gratuite par cet éditeur en 2006.
Sommaire |
[modifier] Intérêt d'une machine virtuelle
Lors de la préparation d'une migration, on peut utiliser simultanément et sans danger pour l'exploitation même en cas de crash système :
- la machine ancienne et la nouvelle qui est simulée dessus, ou l'inverse.
- le système ancien et le nouveau qui est simulé dessus, ou l'inverse.
Sécurité : Les machines virtuelles sont totalement isolées les unes des autres; de plus, en 2006, la plupart des virus testaient immédiatement s'ils tournaient en environnement virtualisé et renonçaient à agir lorsque c'était le cas. Rien ne prouve néanmoins que cette protection ne puisse être contournée d'une manière ou d'une autre, et une littérature abondante est publiée en permanence sur ce sujet.
Facilité d'extension : Le nombre de machines virtuelles se gère quasi indépendamment du nombre de machines réelles, et de façon transparente pour les utilisateurs. Les statistiques de charge des machines virtuelles permettent de les réorganiser sur les machines réelles, ainsi que de prévoir les dates auxquelles prévoir des extensions.
[modifier] Machine virtuelle émulant des systèmes d'exploitation
Le terme de machine virtuelle est aussi depuis quelque temps utilisé dans un sens très différent pour désigner un environnement créé par un émulateur. Celui-ci est un logiciel qui émule un système d'exploitation pour l'utilisateur final. Ce logiciel est une surcouche qui se greffe sur le système d'exploitation natif.
[modifier] Exemples
- Virtual PC Gratuit
- QEMU
- Xen
- VMware permet la virtualisation non seulement d'un PC à architecture Intel/AMD (sur lequel on peut alors utiliser simultanément des Windows et des Linux, éventuellement de plusieurs générations différentes), mais de tous les périphériques d'un réseau : un périphérique distant peut apparaître si on le désire comme local !!
- VirtualBox Alternative à VMware et autres concurrents qui est passée sous licence GPL.
- Oracle VM
[modifier] Machine virtuelle parallèle
Plus récemment, le terme de machine virtuelle a été utilisé pour désigner une machine virtuelle parallèle (PVM). Dans ce cas, une machine virtuelle crée un environnement qui semble être un seul ordinateur alors que les ressources de plusieurs ordinateurs sont utilisées.
[modifier] Exemples
- PVM est une machine virtuelle permettant d'exécuter un programme sur plusieurs ordinateurs.
[modifier] Machine virtuelle applicative
Dans son second sens, maintenant le plus commun, une machine virtuelle désigne un logiciel ou interpréteur qui isole l'application utilisée par l'utilisateur des spécificités de l'ordinateur, c’est-à-dire de celles de son architecture ou de son système d'exploitation. Cette indirection permet au concepteur d'une application de la rendre disponible sur un grand nombre d'ordinateurs sans les contraintes habituelles à la rédaction d'un logiciel portable tournant directement sur l'ordinateur. La technologie JIT permet dans bien des cas à l'application d'avoir des performances comparables à une application native.
Windows XP et similaires tournent également dans un environnement virtualisé, qui est créé par la couche HAL (Hardware abstraction layer). En cas de changement de machine physique, on peut en principe ne changer que le HAL sans toucher au reste de son installation Windows.
[modifier] Exemples
- La Machine virtuelle Java permet d'exécuter du code Java
- CLR, dans la plateforme .NET
- Parrot
- Low Level Virtual Machine