Virtuelle Maschinen verstehen nicht, was in ihnen vorgeht, sie simulieren lediglich Hardware.
Es gibt drei grundlegende Methoden der VM-Simulation. Das offensichtlichste ist die Hardware-Emulation, die Bochs macht. Es simuliert lediglich einen x86-kompatiblen PC programmgesteuert, ohne dass ein tieferer Zauber dahintersteckt. PC ist eine Maschine zur Verarbeitung von Daten. Daher verwendet Bochs nur Host-OS, um Eingabedaten zu sammeln und an emulierte virtuelle Geräte weiterzuleiten, dann die Ausgabedaten von diesen Geräten zu lesen und Host zu verwenden, um sie zu präsentieren. Genau das machen Konsolenemulatoren und ähnliche Programme. Bochs weiß nicht, was in der VM passiert, es arbeitet mit reiner emulierter Hardware. Das Konzept der Prozesse ist zu abstrakt, es muss sich nicht um solche Dinge kümmern - nur um die Hardware-Emulation.
Die zweite Art von VM ist vor der Einführung der hardwarebeschleunigten Virtualisierung gebräuchlich. Die Bochumer Emulation ist langsam, weil sie Maschinencode Byte für Byte interpretiert. Das Ausführen von bloßem Bytecode ist in einem laufenden Betriebssystem aufgrund der Funktionsweise von CPUs nicht möglich (und dies funktioniert aus gutem Grund), aber eine Anwendung kann einen Teil des Bytecodes verwenden und bearbeiten, um sie für die Ausführung in einem Hostbetriebssystem sicherer zu machen. dann führen Sie es als eigenen Code aus. Die Bearbeitungsphase dient zwei Zwecken: Sie reinigt Code, um die Ausführung zu ermöglichen, und verbindet simulierte E / A-Geräte mit entsprechenden Datenquellen / Zielen des Hosts. Für eine VM gibt es immer noch keine Prozesse, es ist nur Pseudo-Emulation von Code auf einer physischen CPU, der vorgibt, es sei der Code des Programms.
Die dritte Art von VMs sind schließlich hardwarebeschleunigte, virtualisierte VMs. Es erfordert Unterstützung in Hardware, aber alle modernen CPUs haben es. Es geht nur darum, das zu tun, was ich zuvor gesagt habe, ist unmöglich: parallelen Betrieb von Low-Level-Code zum Host-Betriebssystem. Die Sache ist, wenn Sie es in die CPU eingebaut haben, können Sie es den Code richtig behandeln lassen. Es wird eine Sandbox-Umgebung für diesen Code erstellt, die dem Host die Kontrolle über diese Sandbox gibt. Auf diese Weise wird der VM-Code noch näher an der Hardware ausgeführt und arbeitet somit schneller. Es ist auch näher an der Verwendung des Hardware-Ringsystems, führt jedoch noch nicht das genaue Konzept der Prozesse ein. Diese werden immer von Gastbetriebssystemen gehandhabt. In den hardwarebeschleunigten VMs können Sie jedoch ein ähnliches Kontextwechseln wie auf einem Host sehen. Andere Arten von VMs werden immer als Programme auf Benutzerebene ausgeführt.