Virtuelle Maschinen

9

Ich habe versucht herauszufinden, wie VMware funktioniert (speziell, wenn Linux installiert ist) und ich habe ein paar Fragen:

  1. Was passiert, wenn VMware einen Befehl wie push cs findet? Speziell cs, da seine Berechtigungsebene 0 ist und VMware auf einer Berechtigungsebene läuft, nehme ich an, dass es irgendwie in einen anderen Befehl übersetzt werden muss.

  2. Virtueller Speicher: Wie funktioniert es auf einer virtuellen Maschine? Gibt es 2 Ebenen der Übersetzung - Prozess virtueller Speicher - & gt; physischer Speicher der virtuellen Maschine - & gt; physischer Speicher der realen Maschine? Wie würde VMware benachrichtigt werden, wenn eine Seite von der realen Maschine ausgelagert wird?

Shmoopy 22.01.2012, 13:09
quelle

1 Antwort

1
  • Die meisten Anweisungen laufen direkt auf der CPU. Aber privilegierte Anweisungen verursachen eine Ausnahme, der Handler emuliert sie.
  • Jetzt sehe ich, was du mit dem push cs -Beispiel meinst. Sie meinen Anweisungen, die sich auf verschiedenen Berechtigungsstufen still verhalten. Im Wikipedia-Artikel zur x86-Virtualisierung heißt es, dass sie binär übersetzt sind, dh es gibt vor dem Ausführen des Codes auf der Host-CPU eine Neukompilierungsphase .
  • In älteren x86 verwaltet vmware Schattenseitentabellen. Gast-Seitentabellen müssen emuliert werden, damit vmware die Ansicht des Gast-BS über Seitentabellen verfolgen kann. Neuere x86 haben Virtualisierungserweiterungen, die mehrere Ebenen von Seitentabellen auf effiziente Weise ermöglichen.
ninjalj 22.01.2012, 14:12
quelle