La machine virtuelle Java est-elle vraiment une machine virtuelle au même sens que mon fichier VMware ou Parallels?


La machine virtuelle Java est-elle vraiment une machine virtuelle au même sens que mon fichier VMware ou Parallels?

Author: Aaron Fi, 2009-05-14

3 answers

Non.

VMware et le reste virtualisent en fait lematériel de la machine. Le système d'exploitation s'exécutant à l'intérieur d'un conteneur VMware (ou Parallels ou les conteneurs de virtualisation de Windows ou Bochs ou ...) ont différents degrés de conscience de l'exécution dans un conteneur virtualisé. Dans VMware, le système d'exploitation n'a aucune idée qu'il s'exécute dans un conteneur virtuel. Le système d'exploitation n'est pas modifié du tout, bien que des pilotes spécialisés soient généralement installés (surtout la vidéo) pour éviter les problèmes de performance. Certaines autres machines virtuelles ne font pas de virtualisation matérielle complète et nécessitent plutôt que le système d'exploitation à l'intérieur du conteneur effectue des appels spéciaux vers le conteneur à la place des appels matériels réguliers.

La JVM n'est pas du tout une machine virtuelle dans ce sens. Aucun autre matériel que le processeur n'est virtualisé. La JVM est essentiellement un PROCESSEUR virtualisé plus le même type d'exécution qui est inclus avec un C++ ou tout autre objet orienté langue, plus la collecte des ordures et d'autres nécessités. De plus, bien sûr, les fichiers de classe Java (et les fichiers JAR, etc.) ne sont pas du code machine, mais un code d'octet intermédiaire. La JVM doit donc compiler ou interpréter les fichiers de classe (qu'ils soient contenus dans un fichier JAR ou non) au moment de l'exécution, et a la capacité de charger et de trouver du nouveau code dynamiquement au moment de l'exécution.

La JVM est appelée machine virtuelle car la définition de la JVM définit une machine abstraite. Cela inclut les registres, la pile, etc. le code d'octet vers lequel Java source est compilé est pratiquement du code machine pour cette machine virtuelle. La JVM interprète ou compile ensuite ce code octet dans des instructions machine natives.

La différence est essentiellement que la JVM est un processeur virtualisé et que les autres machines virtuelles sont des machines virtualisées (y compris la carte vidéo, le réseau et d'autres périphériques externes et registres matériels).

 39
Author: Eddie, 2009-05-14 03:57:25

Non. Il existe une différence entre la machine virtuelle système et la machine virtuelle processus. JVM est une machine virtuelle de processus, alors que VMware et kind sont des machines virtuelles système. Pour en savoir plus, veuillez vous référer à l'entrée wikipedia.

En ce qui concerne les machines virtuelles parallèles, les états d'entrée mentionnés ci-dessus,

PVM (Machine virtuelle parallèle) ne sont pas machines strictement virtuelles, comme le les applications fonctionnant sur le dessus ont toujours l'accès à tous les systèmes d'exploitation services, et sont par conséquent pas limité au système modèle fourni par la "VM".

 9
Author: Adeel Ansari, 2009-05-14 03:33:47

, Il y a un décent résumé des différences dans les "Running Xen: Un Guide pratique à l'Art de la Virtualisation" par Jeanna Matthews et coll. ( Amazon ). VMware est un exemple de virtualisation complète, et cherche à virtualiser une architecture matérielle physique afin que différents systèmes d'exploitation invités non modifiés puissent s'y asseoir. Une machine virtuelle Java est un exemple de ce qu'ils appellent application virtualization, où "Les applications s'exécutent dans un environnement d'exécution virtuel cela fournit une API standard pour l'exécution multiplateforme et gère la consommation de ressources locales de l'application."(p. 13)

Dans les deux cas, vous avez une couche de virtualisation sur laquelle le logiciel s'exécute. La JVM exécute des applications Java, tandis que VMware exécute des systèmes d'exploitation complets. VMware virtualise une machine qui était toujours exprimée en matériel physique. Une JVM virtualise une machine qui pourrait être exprimée en matériel physique, mais ne l'est presque toujours pas (mais voir JVM matérielles ).

 3
Author: Jim Ferrans, 2009-05-14 04:34:34