hyperviseurs et machine virtuelle java


Les questions que je voudrais poser:

1) Que fait exactement l'hyperviseur? Pourquoi est-il nécessaire?

2) Quelle est la différence entre hyperviseur et Java Virtual mMchine?

3) La JVM utilise - t-elle un hyperviseur?

4) Lorsqu'un système d'exploitation hôte comme linux peut gérer plusieurs systèmes d'exploitation invités, pourquoi utiliser l'hyperviseur?

Serait d'une grande aide si quelqu'un faisait la lumière sur ce

Author: Marqin, 2013-01-11

3 answers

  1. Un hyperviseur également connu sous le nom de virtualisation matérielle est une couche de virtualisation qui permet d'exécuter un ou plusieurs systèmes d'exploitation natifs par-dessus, comme s'ils s'exécutaient sur une machine physique. Il est similaire à l'émulation mais exécute uniquement les systèmes d'exploitation qui seraient capables de fonctionner sans l'hyperviseur, qui sont beaucoup plus rapides.

  2. Les Deux sont des couches de virtualisation. Cependant, Java est optimisé pour les performances et la portabilité. Alors que Java sont techniquement un émulateur, il sont beaucoup plus rapide qu'un hyperviser. Cela peut être réalisé parce que la plate-forme émulée sont conçus pour une émulation rapide. Java n'exécute pas de code x86 ou x86_64/amd64, il exécute quelque chose appelé Bytecode. Le terme technique pour Bytecode sont Intermediate Language (IL). Il est compilé en code natif de votre processeur lorsque vous l'exécutez, par le compilateur Juste à temps (JIT). Comme le JIT fait un processus de compilation, il peut s'assurer que le programme suit les contraintes de sécurité Java:s, en ne générant simplement pas code qui viole de telles contraintes. L'Hyperviseur impose des contraintes de sécurité en interceptant des instructions dites privilégiées et en émulant des périphériques tels que des lecteurs de disque. Cela est fait parce que le code natif x86 ou x86_64/amd64 est très difficile à comprendre pour un programme, et le changer pour qu'il applique lui-même les contraintes de sécurité sont presque impossibles. Java, d'autre part, exécute le Bytecode qui est facile à comprendre et à hasard pour un programme afin qu'il applique lui-même la sécurité règle.

La réponse courte: Un hyperviseur est plus lent que Java mais vous permet d'exécuter une multitude de systèmes d'exploitation complets, et tous les logiciels disponibles pour eux. Ceci alors que Java est plus rapide, mais vous ne pouvez exécuter que le logiciel Java dessus. Si vous souhaitez exécuter Windows et Office sur votre machine virtuelle, vous ne pouvez pas le faire en Java.

  1. Je pense que j'ai répondu à cela ci-dessus mais non, il utilise l'inspection du code et modifie le programme afin qu'il applique lui-même les règles de sécurité. Cela peut être fait parce que l'application Java exécutable est dans un état intermédiaire appelé Bytecode, qui est facile pour Java à comprendre, inspecter, trouver du code qui peut violer les règles et le modifier afin de leur obéir. Ce sont un processus assez complexe, qui disposent de plusieurs avantage sur l'hyperviseur. Le premier avantage est "compiler une fois exécuté partout", car Java est compilé et distribué sous forme de bytecode. Le deuxième avantage est la vitesse, le code JIT: ed a la même vitesse que le code non virtualisé même lorsque la sécurité stricte sont appliquées. L'inconvénient est que seuls les programmes Bytecode peuvent s'exécuter, vous ne pouvez donc pas exécuter Windows ou Linux à l'intérieur de la machine virtuelle.

  2. Si vous utilisez un autre système d'exploitation comme Windows ou une autre distribution Linux, vous utilisez un Hyperviseur. KVM, Xen et VirtualBox sont des exemples d'hyperviseurs. Vous pouvez également exécuter plusieurs instances de Linux avec un noyau partagé, connu sous le nom de virtualisation basée sur le système d'exploitation ou "Conteneur". Mais un conteneur partagez le noyau et, par conséquent, vous ne pouvez que les machines virtuelles avec le système d'exploitation que vous exécutez. L'avantage avec les conteneurs, il est plus léger car vous n'avez pas besoin d'exécuter plusieurs noyaux les uns sur les autres...

 2
Author: user1657170, 2014-03-16 16:25:45

Avant de répondre à vos questions, je vous recommande de rechercher des entrées connexes dans wikipedia. Un hyperviseur est utilisé pour exécuter plusieurs systèmes d'exploitation invités tandis que la JVM est utilisée pour interpréter le code d'octets java. JVM s'exécute sur le système d'exploitation et il ne se soucie pas de savoir si le système d'exploitation fonctionne sur du métal nu ou sur un hyperviseur. En fait, linux peut gérer plusieurs systèmes d'exploitation invités avec KVM qui fait partie du noyau linux. Donc, la description de la dernière question est totalement fausse.

 0
Author: Jeff Li, 2013-01-13 06:58:03
  1. Hyperviseur ou virtual machine manager, est un programme qui permet à plusieurs systèmes d'exploitation de partager un seul hôte matériel.
  2. JVM ou Java Virtual Machine interprète le bytecode pour un processeur d'ordinateur afin qu'il puisse exécuter des instructions de programme Java.
  3. Non, la JVM n'utilise pas d'hyperviseur car ce n'est pas une machine virtuelle qui exécute un système d'exploitation, mais simplement un interpréteur.
  4. Un système d'exploitation hôte gère différentes machines virtuelles à l'aide d'un hyperviseur ou d'une machine virtuelle gestionnaire
 -1
Author: HHH, 2014-03-02 08:26:48