Machine virtuelle

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.



Catégories :

Système d'exploitation - Émulateur - Virtualisation

Recherche sur Google Images :


Source image : forums.futura-sciences.com
Cette image est un résultat de recherche de Google Image. Elle est peut-être réduite par rapport à l'originale et/ou protégée par des droits d'auteur.

Page(s) en rapport avec ce sujet :

  • ... Le langage Java a réutilisé une notion extrêmement importante en informatique : la notion de machine virtuelle. Cette machine virtuelle est ... (source : fr.wikibooks)

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 apporte à chaque utilisateur l'illusion de disposer d'un ordinateur complet tandis que chaque machine virtuelle est isolée des autres. Le logiciel hôte qui apporte cette fonctionnalité est fréquemment dénommé superviseur ou hyperviseur. Ce concept va plus loin que celui des simples temps partagés où chaque utilisateur dispose uniquement d'un espace de développement personnel, et non d'une machine simulée entière.

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 dispositif :

Sécurité : Les machines virtuelles sont complètement isolées les unes des autres; qui plus est , en 2006, la majorité des virus testaient immédiatement s'ils tournaient en environnement virtualisé et renonçaient à agir quand 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, mais aussi de prévoir les dates auxquelles prévoir des extensions.

Machine virtuelle émulant des dispositifs d'exploitation

Le terme de machine virtuelle est aussi depuis quelque temps utilisé dans un sens particulièrement différent pour désigner un environnement créé par un émulateur. Ce dernier est un logiciel qui émule un dispositif d'exploitation pour l'utilisateur final. Ce logiciel est une surcouche qui se greffe sur le dispositif d'exploitation natif.

Exemples

Machine virtuelle parallèle

Plus il y a peu de temps, 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 tandis que les ressources de plusieurs ordinateurs sont utilisées.

Exemples

Machine virtuelle applicative

Dans son second sens, désormais le plus commun, une machine virtuelle sert à désigner 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 dispositif d'exploitation. Cette indirection permet au concepteur d'une application de la rendre disponible sur la plupart 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 identiques à une application native.

Windows XP et identiques tournent aussi dans un environnement virtualisé, qui est créé par la couche HAL (Hardware abstraction layer). En cas de changement de machine physique, on peut habituellement 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 énormément de problèmes de sécurités par la même approche. Les espaces de noms apportés par le . NET Framework ressemblent énormément au package de l'API Java EE autant dans le style que dans l'invocation.

. NET dans sa forme complète (à savoir l'implémentation Microsoft) est aujourd'hui disponible entièrement pour Windows et partiellement pour Linux et Mac, tandis que Java est entièrement disponible sur presque l'ensemble des plates-formes. Depuis le début, . NET supporte plusieurs langages et demeure indépendant de la plateforme de telle sorte que tout le monde peut le réimplémenter sur d'autres plates-formes (l'implémentation Microsoft cible seulement Windows, Windows CE et la Xbox360). La plate-forme Java a été originellement construite pour supporter seulement le langage Java, mais sur plusieurs dispositifs 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 particulièrement utilisés. L'implémentation Java de Sun est open source (ce qui inclut la bibliothèque de classes, le compilateur, la JVM mais aussi quelques autres outils associés à la plate-forme Java) sous la licence GNU GPL.


RIA-RDA

De plus en plus de technologies se rejoignent aujourd'hui 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 dispositif 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 Dispositif 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 AIR Adobe Flex . as ->. swf
Sun Microsystems Java Applet Java java JFC awt-swing JavaFX . java->. class
Netscape navigator unix javascript XUL SMIL SVG

Exemples

Notes et références
  1. virtualisation et sécurité

Liens externes

Recherche sur Amazone (livres) :




Ce texte est issu de l'encyclopédie Wikipedia. Vous pouvez consulter sa version originale dans cette encyclopédie à l'adresse http://fr.wikipedia.org/wiki/Machine_virtuelle.
Voir la liste des contributeurs.
La version présentée ici à été extraite depuis cette source le 17/03/2009.
Ce texte est disponible sous les termes de la licence de documentation libre GNU (GFDL).
La liste des définitions proposées en tête de page est une sélection parmi les résultats obtenus à l'aide de la commande "define:" de Google.
Cette page fait partie du projet Wikibis.
Accueil Recherche Aller au contenuDébut page
ContactContact ImprimerImprimer liens d'évitement et raccourcis clavierAccessibilité
Aller au menu