Wie funktionieren ausführbare Linux-Dateien im VMware Player?

Wie funktionieren ausführbare Linux-Dateien im VMware Player?

Die .exe-Dateien laufen nicht direkt unter Linux und eine ausführbare Linux-Datei läuft nicht direkt unter Windows. Aber wenn wir VMware unter Windows installieren, können wir beide Dateien auf derselben Hardware und Architektur ausführen. Wie funktionieren die ausführbaren Dateien?

Antwort1

Um einen tieferen Einblick zu erhalten, können Sie einen Blick auf die Wikipedia zu VMware Workstation werfen [1] und über den Virtual Machine Monitor [6] .

VMware Workstation kann den Zustand einer virtuellen Maschine jederzeit speichern (einen „Snapshot“). Diese Snapshots können später wiederhergestellt werden, wodurch die virtuelle Maschine effektiv in den gespeicherten Zustand zurückversetzt wird.

So können Sie gleichzeitig mehrere Betriebssysteme mit jeweils einer eigenen ausführbaren Datei ausführen.
Es ist wie ein„Super-Betriebssystem“das kontinuierlich zwischen den einzelnen virtuellen Maschinen wechselt.
Die verschiedenen ausführbaren Dateien können auf dem System ausgeführt werden, für das sie kompiliert wurden, und wenn alles richtig gemacht wird, werden sie keinen Unterschied bemerken.

Einige Worte mehr

Generell gibt es verschiedene Möglichkeiten, eine Maschine so einzurichten, dass mit ausführbaren Dateien gearbeitet werden kann, die für unterschiedliche Betriebssysteme oder Architekturen kompiliert wurden:

  • Sie können mehrere Betriebssysteme gleichzeitig installieren, z. B. Windows und Linux.
    Beim Booten wählen Siemit welchem ​​Betriebssystem gearbeitet werden soll.
    (+)Sie verfügen über die volle Funktionalität und Geschwindigkeit, jedoch nur für eine gewisse Zeit.
    (-)Dies bedeutet, dass für jede Installation nur der für die Laufwerke benötigte Speicherplatz verwendet wird.

  • Sie können eineEmulator, ein Programm, das übersetzt ("emuliert") jede einzelne Maschinenanweisung, was möglicherweise die Ausführung eines 64-Bit-Codes auf einer 32-Bit-Maschine ermöglicht. Beispiel: bochs [2] oder das berühmte mame[3] in der Lage, viele tausend klassische Arcade-Videospiele und Hardware auf einem modernen Computer zu emulieren.
    (+)Sie sparen wahrscheinlich Platz auf den Laufwerken.
    (-)Sie werden langsam laufen, weil Sie jede Anweisung übersetzen müssen.

  • Sie können eineKompatibilitätsebeneals wine [4] (ursprünglich ein Akronym für „Wine Is Not an Emulator“),kann Windows-Anwendungen auf mehreren POSIX-kompatiblen Betriebssystemen wie Linux, Mac OSX und BSD ausführen,Übersetzen der Windows-API-Aufrufe in POSIX-Aufrufe im laufenden Betrieb.
    (+)Schneller als der Vorgänger (-)Nicht immer kompatibel

  • Sie können eineVirtual Machine Monitor, VMM, vom Typ II [6] . DasVirtualisierungssoftware, wie die Open-Source-VirtualBox [5] ermöglicht die Installation eines komplett unveränderten Betriebssystems, auf dem die entsprechenden ausführbaren Dateien ausgeführt werden. Die so genanntevirtuelle Maschine wird gehostet ausgeführtvon Ihrem ursprünglichen Betriebssystem (siehe Abbildung unten).

    ... eine Art der Virtualisierung, die es ermöglicht, ein unverändertes Betriebssystem mit der gesamten installierten Software in einer speziellen Umgebung auszuführen,auf Ihrem vorhandenen Betriebssystem.Diese Umgebung, die als "virtuelle Maschine" bezeichnet wird, wird von der Virtualisierungssoftware erstellt, indem der Zugriff auf bestimmte Hardwarekomponenten und bestimmte Funktionen abgefangen wird [5] .

    VMM vom Typ I,II [6] : Hypervisoren vom Typ I und II

  • Zu guter LetztHypervisor vom Typ I [6] , oderMonitor für virtuelle Maschinen(VMM),eine Computersoftware, Firmware oder Hardware, die virtuelle Maschinen erstellt und betreibt. Dieses Mal wird es direkt auf der Hardware ausgeführt und das Betriebssystem wird soeines seiner ProgrammeSiehe Abbildung oben.

    Es läuft direkt auf der Hardware des Hosts, um die Hardware zu steuern und Gastbetriebssysteme zu verwalten.Aus diesem Grund werden sie manchmal als Bare-Metal-Hypervisoren bezeichnet. Ein Gastbetriebssystem wird als Prozess auf dem Host ausgeführt.

Abschluss
Jede ausführbare Datei wird für ein Betriebssystem kompiliert, über das sie mit der Hardware kommunizieren muss. Unterschiedliche Anweisungen, Bibliotheken, Richtlinien... aus diesem Grund läuft eine ausführbare Datei von Windows normalerweise nicht unter Linux undund umgekehrt, aber wie Sie sehen, gibt es viele Möglichkeiten, sich darum zu kümmernSprachübersetzung, indem eine Schicht anderer Art hinzugefügt wird, sodass das Programm davon nichts mitbekommt.

Notiz:Einige Assemblerprogramme benötigten direkten Zugriff auf Speicher und Interrupts [7] und sie benötigen möglicherweise besondere Pflege.

verwandte Informationen