Machine virtuelle Java

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 everywhere

L'appareil est simulé par un logiciel spécifique à chaque plate-forme ou couple (machine/système d’exploitation) et permet aux applications Java compilées en bytecode de produire les mêmes résultats quelle que soit la plate-forme, tant que celle-ci est pourvue de la machine virtuelle Java adéquate.

Une machine virtuelle java permet d'exécuter d'autres langages que le langage java, du moment qu'un compilateur transforme les expressions de cet autre langage en une série d'octets respectant le format binaire d'une classe java.

La machine virtuelle exécute les instructions données par le bytecode contenu dans la classe java en suivant le modèle de la pile : chaque niveau de pile contient les données propres à chaque opération.

Une spécification de Sun[1] décrit les fonctions et propriétés que doivent respecter toutes les machines virtuelles java. De plus, la plupart de ces machines comportent un ramasse-miettes (la notion est citée dans la spécification[2], mais sans être formellement rendue obligatoire), ou un compilateur à la volée.

Le compilateur java faisant peu d'optimisations, c'est à la machine virtuelle de les faire, selon les objectifs propres à cette dernière.

Sommaire

HotSpot, la machine virtuelle d'Oracle

C'est la machine la plus utilisée. Elle a été créée et réalisée par Sun, elle est aujourd'hui propriété d'Oracle, depuis que ce dernier a racheté Sun. Elle est gratuite, propriétaire jusqu'à la version 6 (stable) et libre à partir de la version 7 (non encore officielle).

Le 11 novembre 2006, Sun Microsystems a publié les sources de sa machine virtuelle HotSpot et de son compilateur javac sous licence GNU GPL.

La première version ne se comportait que comme un interpréteur. Cette approche était pénalisante, car l'interprète passe plus de temps à interpréter qu'à exécuter. Puis est apparue la compilation à la volée, qui traduit le bytecode en langage machine, et exécute ce langage machine. Ensuite la machine virtuelle est devenue capable de détecter les portions les plus fréquemment utilisées pour concentrer les optimisations sur elles. Elle a été dotée d'un profileur, et d'optimisations standards comme la mise à plat des boucles. Toutes ces opérations peuvent être faites en plusieurs passes, soit pour les améliorer progressivement, soit pour les annuler si elles se révèlent obsolètes[3].

Autres machines virtuelles Java

  • Celle de Microsoft était fournie avec le système d’exploitation Windows. Sun pensait que la machine pouvait être boguée volontairement pour contrer l’avancée du langage java (portablité sur plusieurs systèmes d’exploitation donc risque de perte pour Microsoft). Suite à un procès gagné par Sun, elle n’est plus fournie avec Windows.
  • JRockit développée initialement par BEA maintenant Oracle Corporation. Elle est principalement utilisée pour Weblogic
  • Apple en a créé une pour son Mac OS.
  • Celle d’IBM est disponible pour les plates-formes AIX, z/OS, GNU/Linux et Windows. Elle est souvent utilisée avec Websphere.
  • Jikes RVM.
  • JamaicaVM de aicas, machine virtuelle spécialisée dédiée à l'électronique embarquée et qui prend en compte les contraintes temps-réel des applications.
  • Kaffe, CACAO, JamVM ou SableVM, machines virtuelles sous licence GPL ou LGPL.
  • Apache Harmony, est un projet de plate-forme Java de la fondation Apache contenant une JVM.
  • GIJ, "sous-projet" de machine virtuelle Java du projet GNU.
  • Dalvik, machine virtuelle développée par Google pour Android.
  • MicroJvm®, machine virtuelle développée par IS2T.

Voir aussi

Références


Liens externes


Wikimedia Foundation. 2010.

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

Игры ⚽ Поможем решить контрольную работу

Regardez d'autres dictionnaires:

  • 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 — 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 (informatique) — 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 — 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 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

  • Java (informatique) — Java (langage) Pour les articles homonymes, voir Java.  Ne doit pas être confondu avec JavaScript …   Wikipédia en Français

  • Java (langage de programmation) — Java (langage) Pour les articles homonymes, voir Java.  Ne doit pas être confondu avec JavaScript …   Wikipédia en Français

  • Java 5 — Java (langage) Pour les articles homonymes, voir Java.  Ne doit pas être confondu avec JavaScript …   Wikipédia en Français

  • Java Virtual Machine — 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,… …   Wikipédia en Français

Share the article and excerpts

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