Icône de recherche Download.it
Advertisement

Machine virtuelle pour faire fonctionner les applications

Machine virtuelle pour faire fonctionner les applications

Programmes populaires dans Système d'exploitation

Qu'est-ce que Java Runtime Environment ?

Java Runtime Environment est la machine virtuelle permettant l’exécution de programmes écrits en langage Java.

À l’origine, programmer un ordinateur n’était pas simple: il fallait le faire en langage machine. Un langage très basique où la moindre tâche pouvait prendre plusieurs dizaines d’instructions. De plus, chaque processeur avait le sien, et un programme écrit pour le Z80 ne fonctionnerait pas avec le 6502, par exemple.

Pour faciliter la tâche des programmeurs, les langages dits «de haut niveau» ont été créés. Le C, inventé en 1972 en est un très célèbre exemple. On peut désormais écrire un programme avec des mots clefs (de langue anglaise principalement) et utiliser des structures évoluées permettant d’avoir des programmes beaucoup plus lisibles. Le développement s’en trouve facilité, mais pour que le processeur puisse comprendre et exécuter le programme, il faut encore le traduire dans son langage: c’est le rôle du compilateur.

Ce compilateur lit le «code source» du programme et produit un «code machine» exécutable. L’opération est faite une fois pour toutes et le code machine produit est tout aussi spécifique à un processeur (et un système d’exploitation) donné que s’il avait été codé à la main. La notion de « portabilité » apparait néanmoins : le code C (par exemple) n’est pas dépendant du processeur. Tant que l’on dispose d’un compilateur C pour un processeur donné, on peut, via compilation, voir notre programme tourner sur ce matériel.

Dans la pratique néanmoins, les choses ne sont pas aussi simples, car un programme doit être compilé non seulement pour un processeur, mais aussi pour un système d’exploitation, avec tout ce que cela comporte : interface graphique, accès aux diverses librairies, etc. Or, tous ces éléments peuvent varier énormément d’un système à l’autre.

Dans les années 90, avec l’émergence du Web, une autre problématique est apparue. Comment distribuer des applications fonctionnelles en ligne ? Comment permettre à l’utilisateur de télécharger et d’utiliser directement des programmes via internet alors qu’on ne sait rien de son processeur, de son système d’exploitation, ni même de son navigateur ?

C’est la problématique qu’a résolue Sun Microsystems en 1995 avec Java, qui est non seulement un langage de programmation, mais un environnement complet. La solution proposée par Sun consiste en la création d’une «machine virtuelle». Cette dernière pose un certain nombre de spécifications: elle possède un microprocesseur, mais aussi une interface graphique et des capacités réseau, etc.

Elle est totalement virtuelle en ce sens qu’elle n’est pas calquée sur une architecture matérielle existante. Un programme écrit en Java est bel et bien compilé, mais pour cette machine virtuelle, dans un code machine intermédiaire. En l’état, il n’est donc utilisable par aucune machine réelle. Par contre, toute machine possédant une «machine virtuelle Java» pourra l’exécuter très exactement comme prévu, avec son interface et ses services.

Il existe des machines Java pour presque toutes les plateformes : Windows, Mac (Intel et PowerPC), Linux, etc. La machine virtuelle est un «runtime environment», c'est-à-dire un environnement d’exécution, d’où le nom de «Java Runtime Evironment».

Les Plus

  • Portabilité maximale

Les Moins

  • Un peu plus lourd que le code natif