WikiDer > Virtuelle Maschine
EIN virtuelle Maschine ist ein Computer Programm das a Computer auf denen andere Programme laufen können.
Diese Technik wird verwendet, um die Softwareportabilität zu verbessern sowie die gleichzeitige Nutzung des Computers durch verschiedene Benutzer robuster zu machen.
Virtuelle Maschinen gibt es in zwei Varianten: programmsprachenspezifisch oder als Emulator.
Programmiersprachenspezifisch
Eine virtuelle Maschine für eine Programmiersprache bietet a Abstraktionsschicht für den realen Computer: eine Sammlung von Grundfunktionen, die Programme in der Programmiersprache verwenden müssen, um auf die Funktionen des Computers zuzugreifen. Genau das ist Betriebssystem tut, und daher fungiert eine solche Maschine als Betriebssystem für Programme, die in dieser Sprache geschrieben sind; Der Grund, warum wir von einer virtuellen Maschine sprechen, ist, dass die virtuelle Maschine selbst oft ein Programm ist, das auf einem vorhandenen Betriebssystem läuft.
Die virtuelle Maschine ist die Verbindungsschicht zwischen dem ausgeführten Code und der Computerhardware (wie z Mikroprozessor), auf dem das endgültige Programm ausgeführt wird, möglicherweise über ein anderes Betriebssystem. Der auf einer virtuellen Maschine ausgeführte Code spricht nicht direkt die „echte“ Hardware an, sondern nutzt nur die Funktionen, die die virtuelle Maschine bietet.
Wann für eine bestimmte Plattform (Hardware- und optional Betriebssystem) eine virtuelle Maschine erstellt wird, kann jedes für diese virtuelle Maschine geschriebene Programm ausgeführt werden. Die Implementierung einer virtuellen Maschine kann in jeder anderen Programmiersprache erfolgen. Auf diese Weise wird Plattformunabhängigkeit erreicht: Programme können auf jedem System ausgeführt werden, auf dem die virtuelle Maschine bereitgestellt wird. Die Portabilität wird zu einer Frage der Bereitstellung einer virtuellen Maschine und nicht zu einem Problem, das für jedes Programm einzeln gelöst werden muss.
Ein Beispiel für eine programmiersprachenspezifische virtuelle Maschine ist die Java virtuelle Maschine (JVM). Das Ergebnis der Kompilierung eines Java-Programms ist Byte-Code erwähnt. Eine JVM kann diese Bytecode-Befehle dann einzeln interpretieren, indem sie sie in einen oder mehrere echte Maschinenbefehle übersetzt. Es gibt auch JVMs, die den Bytecode speichern gerade rechtzeitig (JIT) kompilieren zu den Anweisungen der Plattform. Dies bietet offensichtlich Leistungsgewinne im Vergleich zur Interpretation.
Die Idee von Bytecode ist nicht neu. Einige Varianten der Programmiersprache Pascal hatte dieses Konzept bereits; hier wurde es P-Code oder Pseudocode genannt. Auch viel Prolog Implementierungen basieren auf virtuellen Maschinen: die Warren Abstrakte Maschine.
Emulation
EIN virtuelle Maschine die die Hardware des Computers emuliert, zielt nicht auf eine Programmiersprache (wie Java oder Pascal) ab, sondern emuliert einen physischen Computer (d. h. den Prozessor und andere Hardware), so dass eine vorhandene Betriebssystem kann auf dieser Emulation wie auf einem physischen Computer ausgeführt werden. Mit einer solchen virtuellen Maschine ist es beispielsweise möglich, Fenster in a nachahmen GNU/LinuxUmgebung oder umgekehrt.
Virtualisierung, seit den 60er Jahren auf bestimmte Arten Großrechner allgemein üblich, heutzutage auch auf Stck weit verbreitet.