Machine virtuelle (informatique)

Machine virtuelle (informatique)

Machine virtuelle

Page d'aide sur l'homonymie Pour les articles homonymes, voir VM.

Le sens originel de machine virtuelle (ou Virtual Machine (VM) en anglais) 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 a été l'un des premiers systèmes de virtualisation en informatique, et le premier à être diffusé à l'échelle industrielle. Il fonctionnait sur les ordinateurs IBM 370, bien qu'une version destinée aux universités ait fonctionné sur le modèle 67 sous le nom de Control program (CP). Il permettait 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; Windows Server 2008 propose un hyperviseur intégré.
  • 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

Historique et principe

L'adoption de la microprogrammation résolvait alors - au prix d'une légère perte d'efficacité - la question des migrations d'une machine à une autre plus puissante, mais le problème de la migration d'un système à un autre plus puissant ne pouvait se résoudre qu'en utilisant deux machines, à une époque où celles-ci étaient onéreuses. Ce problème concernait :

  • Migration d'un système à une version ultérieure ;
  • Migration du DOS à l'OS ;
  • Migration d'un OS à un autre (DOS vers OS, par exemple).

Une solution adoptée par les centres de Cambridge et de Grenoble fut de simuler le comportement d'une machine par une sorte d'application nommée le Control Program. Chaque machines simulée par le Control Program avait son propre système d'exploitation, mais CP déroutait tous les appels vers des commandes directes au matériel (en fait, à des programmes canal : XIO) ou à certaines commandes système pour les simuler.

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[1] 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.

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.

Exemples

  • KVM Transforme le noyau Linux en hyperviseur. Cette solution est actuellement incluse dans les version du noyau Linux depuis la 2.6.18.
  • Oracle VM
  • QEMU
  • 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. Installable sur différentes architectures (Windows, OS X, Linux, Solaris)[réf. nécessaire], il crée un ordinateur virtuel et permet d'installer n'importe quel type de système d'exploitation, et ses périphériques...
  • Virtual PC Gratuit
  • Xen
  • Bochs

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.

Exemples

  • PVM est une machine virtuelle permettant d'exécuter un programme sur plusieurs ordinateurs.

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. En cas de changement de machine physique, on peut en principe ne changer que le HAL sans toucher au reste de son installation Windows.

.NET vs. Java et Java EE

La CLI et C# ont plusieurs similarités avec la JVM de Sun et Java. Les deux sont basés sur une machine virtuelle qui cache les détails matériels de l'ordinateur sur lequel leurs programmes s'exécutent. Les deux utilisent leur propre langage intermédiaire bytecode Common Intermediate Language (CIL, anciennement MSIL) pour Microsoft et Java byte-code pour Sun. Avec .NET, le byte-code est toujours compilé avant l'exécution, soit juste-à-temps (JIT), ou en avance en utilisant l'utilitaire ngen.exe. Avec Java, le byte-code est soit interprété, soit compilé en avance ou encore compilé juste-à-temps. Les deux fournissent des bibliothèques de classes extensibles qui résolvent plein de problèmes de programmation courants, et les deux résolvent beaucoup de problèmes de sécurités par la même approche. Les espaces de noms fournis par le .NET Framework ressemblent beaucoup au package de l'API Java EE aussi bien dans le style que dans l'invocation.

.NET dans sa forme complète (à savoir l'implémentation Microsoft) est actuellement disponible entièrement pour Windows et partiellement pour Linux et Mac, alors que Java est entièrement disponible sur presque toutes les plates-formes. Depuis le début, .NET supporte plusieurs langages et demeure indépendant de la plateforme de telle sorte que n'importe qui peut le réimplémenter sur d'autres plates-formes (l'implémentation Microsoft cible uniquement Windows, Windows CE et la Xbox360). La plate-forme Java a été initialement construite pour supporter uniquement le langage Java, mais sur plusieurs systèmes d'exploitations avec le slogan « Write once, run anywhere » (écrit une fois, tourne n'importe où). D'autres langages ont été développés pour la machine virtuelle java, mais ils ne sont pas très utilisés. L'implémentation Java de Sun est open source (ce qui inclut la bibliothèque de classes, le compilateur, la JVM ainsi que quelques autres outils associés à la plate-forme Java) sous la licence GNU GPL.

RIA-RDA

De plus en plus de technologies se rejoignent actuellement pour fonctionner coté web et OS. Elles se différencient plus par les outils de production, maintenance que par les technologies utilisées qui se résument en l'utilisation d'un langage de compilation et d'éxécution (machine virtuelle) / interprétation et un formalisme xml (xaml, xmm, xul). Ces technologies se retrouvent selon les cas sur des ordinateurs, des téléphones, des pdaphones ou des périphériques multimédia (récepteurs satellite).

Les RIA sont basées sur une machine virtuelle fonctionnant dans un navigateur web. Les RDA sont basées sur une machine virtuelle fonctionnant sur le système d'exploitation. Les RIA et RDA en évoluant sont de plus en plus multi-langage (C#, javascript, java,C#), multi-interface (swing, wpf, flash, AJAX-ui-widgets), multi OS (Mac, Window, unix), multi-matériel (PC, pda, téléphone).

technologie web et applicatif
Société technologie Système d'exploitation Langage de programmation/ application Web format
Microsoft CLI Microsoft Microsoft .NET C#puis CLR/DLR MFC/ GDI Silverlight XAML .cs->.dll
Novell CLI Microsoft unix/SuSE C#puis CLR/DLR Mono Moonlight
Adobe Flash player Animation flash Actionscript AIR Adobe Flex .as ->.swf
Sun Microsystems Java Applet Java java JFC awt-swing JavaFX .java->.class
Netscape navigator unix javascript AJAX XUL SMIL SVG

Exemples

Voir aussi

Notes et références

Liens externes

  • Portail de l’informatique Portail de l’informatique
  • Portail de la programmation informatique Portail de la programmation informatique
  • Portail de la sécurité informatique Portail de la sécurité informatique
Ce document provient de « Machine virtuelle ».

Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Machine virtuelle (informatique) de Wikipédia en français (auteurs)

Игры ⚽ Нужен реферат?

Regardez d'autres dictionnaires:

  • Machine Virtuelle — Pour les articles homonymes, voir VM. VirtualBox Le sens originel de machine virtuelle (ou Virtual Machine (VM) en anglais) e …   Wikipédia en Français

  • Machine Virtuelle Java — La Java virtual machine (abrégé JVM, en français machine virtuelle Java) est une machine virtuelle permettant d’interpréter et d’exécuter le bytecode Java. Architecture générale : illustration du slogan Compile once, run everywhere Ce… …   Wikipédia en Français

  • Machine virtuelle java — La Java virtual machine (abrégé JVM, en français machine virtuelle Java) est une machine virtuelle permettant d’interpréter et d’exécuter le bytecode Java. Architecture générale : illustration du slogan Compile once, run everywhere Ce… …   Wikipédia en Français

  • machine virtuelle — ● loc. f. ►EXEC Machine abstraite simulée au sein d une autre machine bien réelle celle là, et utilisée comme environnement d exécution d un langage portable de haut niveau, e.g. JVM. virtual machine en anglais …   Dictionnaire d'informatique francophone

  • Machine virtuelle — Pour les articles homonymes, voir VM. machine virtuelle des assistants personnels Palm En informatique, une machine virtuelle (anglais virtual machine, abr. VM …   Wikipédia en Français

  • Machine virtuelle Java — La machine virtuelle Java (anglais Java virtual machine abr. JVM) est un appareil informatique fictif qui exécute des programmes compilés sous forme de bytecode Java. Architecture générale : illustration du slogan Compile once, run… …   Wikipédia en Français

  • Machine virtuelle Dalvik — Dalvik est la machine virtuelle utilisée dans les appareils mobiles Android. Elle permet d exécuter les applications qui peuvent être écrites en java et converties en un exécutable compact Dalvik (.dex), format adapté aux systèmes limités en… …   Wikipédia en Français

  • Machine virtuelle parallèle — Parallel Virtual Machine Parallel Virtual Machine (PVM) est une bibliothèque de communication (langages C et Fortran) pour machines parallèles et réseau d ordinateurs (locaux ou distants, éventuellement hétérogènes). Il permet à un réseau d… …   Wikipédia en Français

  • Machine Virtuelle DOS — Machine DOS virtuelle Virtual DOS machine (Machine DOS virtuelle) (VDM) est le nom des technologies de Microsoft permettant d exécuter des programmes MS DOS sur les ordinateurs équipés de processeurs Intel 80386 ou plus récents quand il y a un… …   Wikipédia en Français

  • Machine Virtuelle dos — Machine DOS virtuelle Virtual DOS machine (Machine DOS virtuelle) (VDM) est le nom des technologies de Microsoft permettant d exécuter des programmes MS DOS sur les ordinateurs équipés de processeurs Intel 80386 ou plus récents quand il y a un… …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”