hypervisor e macchina virtuale java


Le domande che vorrei porre sono:

1) Cosa fa esattamente l'hypervisor? Perché è necessario?

2) Qual è la differenza tra hypervisor e Java Virtual mMchine?

3) JVM utilizza un hypervisor?

4) Quando un sistema operativo host come Linux può gestire più sistemi operativi guest,perché usare hypervisor?

Sarebbe di grande aiuto se qualcuno facesse luce su questo

Author: Marqin, 2013-01-11

3 answers

  1. Un Hypervisor noto anche come virtualizzazione hardware è un livello di virtualizzazione che consente di eseguire uno o più sistemi operativi nativi su di esso, come se fossero eseguiti su una macchina fisica. È simile all'emulazione ma esegue solo sistemi operativi che sarebbero in grado di funzionare senza l'Hyperviser, che sono molto più veloci.

  2. Entrambi sono livelli di virtualizzazione. Tuttavia Java sono ottimizzati per le prestazioni e la portabilità. Mentre Java sono tecnicamente un emulatore, sono molto piu ' veloce di un ipervisore. Questo può essere ottenuto perché la piattaforma emulata sono progettati per l'emulazione veloce. Java non esegue il codice x86 o x86_64/amd64, esegue qualcosa chiamato Bytecode. Il termine tecnico per Bytecode è Intermediate Language (IL). Sono compilati in codice nativo del processore quando lo si esegue, dal compilatore Just In Time (JIT). Mentre il JIT esegue un processo di compilazione, può assicurarsi che il programma segua i vincoli di sicurezza Java:s, semplicemente non generando codice che viola tali vincoli. L'Hyperviser applica i vincoli di sicurezza intercettando le cosiddette istruzioni privilegiate e emulando dispositivi come le unità disco. Questo viene fatto perché il codice nativo x86 o x86_64 / amd64 è molto difficile da capire per un programma e cambiarlo in modo che i vincoli di sicurezza auto-applicati siano quasi impossibili. Java, d'altra parte, esegue Bytecode che sono facili da comprendere per un programma e possibilità in modo che si auto-applichi la sicurezza regola.

La risposta breve: Un hyperviser sono più lenti di Java, ma consente di eseguire una moltitudine di sistemi operativi completi, e tutto il software disponibile per loro. Questo mentre Java sono più veloci, ma è possibile eseguire solo software Java su di esso. Se si desidera eseguire Windows e Office nella macchina virtuale, non è possibile farlo in Java.

  1. Penso di aver risposto a questo sopra, ma no, usa l'ispezione del codice e modifica il programma in modo che si auto-applichi le regole di sicurezza. Questo può essere fatto perché l'applicazione Java eseguibile si trova in uno stato intermedio chiamato Bytecode, che è facile per Java capire, ispezionare, trovare il codice che potrebbe violare le regole e modificarlo per obbedirle. Questo è un processo piuttosto complesso che ha diversi vantaggi rispetto hypervisor. Il primo vantaggio è "compile once run everywhere", poiché Java è compilato e distribuito come bytecode. Il secondo vantaggio è la velocità, il codice JIT: ed ha la stessa velocità del codice non virtualizzato anche quando vengono applicate severe misure di sicurezza. Lo svantaggio è che solo i programmi Bytecode possono essere eseguiti, quindi ad esempio non è possibile eseguire Windows o Linux all'interno della macchina virtuale.

  2. Se si esegue un altro sistema operativo come Windows o un'altra distribuzione Linux - si sta eseguendo un Hyperviser. KVM, Xen e VirtualBox sono esempi di Hypervisor. È inoltre possibile eseguire più istanze di Linux con un kernel condiviso, noto come virtualizzazione basata su OS o"Contenitore". Ma un contenitore condividi il kernel e quindi puoi solo macchine virtuali con il sistema operativo che stai eseguendo. Il vantaggio con i contenitori è più leggero in quanto non è necessario eseguire più kernel uno sopra l'altro...

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

Prima di rispondere alle tue domande, ti consiglio di cercare voci correlate in wikipedia. Un hypervisor viene utilizzato per eseguire più sistemi operativi guest mentre JVM viene utilizzato per interpretare il codice byte java. JVM funziona su OS e non importa se il sistema operativo funziona su bare metal o su un hypervisor. In realtà, linux può gestire più sistemi operativi guest con KVM che fa parte del kernel Linux. Quindi la descrizione dell'ultima domanda è totalmente sbagliata.

 0
Author: Jeff Li, 2013-01-13 06:58:03
  1. Hypervisor o virtual machine manager, è un programma che consente a più sistemi operativi di condividere un singolo host hardware.
  2. JVM o Java Virtual Machine interpreta il bytecode per un processore di computer in modo che possa eseguire le istruzioni del programma Java.
  3. No JVM non usa hypervisor in quanto non è una macchina virtuale che esegue un sistema operativo piuttosto è solo un interprete.
  4. Un sistema operativo host gestisce diverse macchine virtuali utilizzando Hypervisor o macchina virtuale gestore
 -1
Author: HHH, 2014-03-02 08:26:48