
Ich stelle mir vor, dass der Prozess das Suchen nach einem bestimmten Muster im virtualisierten Speicher und dessen Änderung beinhaltet, aber ich frage mich, wie das genau funktioniert. Vielleicht eine Art neuer BIOS-Aufruf? (Ähnlich wie das Betriebssystem die Zeit von der RTC abfragt.) Ich bin daran interessiert, weil ich mich frage, ob ich mich selbst daran anschließen könnte, um eine beliebige Datenkommunikation zwischen Host und Client zu ermöglichen.
Antwort1
Zunächst müssen Sie verstehen, dass Virtualbox ein auf dem Host-Betriebssystem installiertes Programm ist, das ausführbare Dateien, Bibliotheken und andere Ressourcen mitliefert. Viele dieser Bibliotheken rufen Funktionen und Dienste des Host-Betriebssystems auf, um ihre Arbeit zu erledigen.
Virtualbox installiert auch Treiber im Betriebssystemkernel. Diese Treiber definieren, wie der Kernel Hardwareschnittstellen für die virtuelle Hardwareschicht von Virtualbox bereitstellen kann.
Die virtuelle Hardwareschicht befindet sich zwischen dem Host-Betriebssystem und dem Gast. Für den Host ist es nur ein weiteres Programm, für den Gast jedoch scheint es sich um echte Hardware zu handeln.
Es ist wichtig zu verstehen, dass Virtualbox als Programm ausgeführt wird, während der Gast ausgeführt wird, aber die beiden machen völlig unterschiedliche Dinge. Virtualbox arbeitet mit dem Host zusammen, um dem Gast einen gefälschten Computer zu präsentieren, während der Gast nur als Betriebssystem auf der gefälschten Hardware läuft.
Betriebssystemtreiber sind normalerweise nicht für den Gast geeignet oder bieten nur eine äußerst eingeschränkte Funktionalität. Der Gast weiß nicht, dass es sich um eine VM handelt, und kann dem Host keine Fragen stellen. Deshalb benötigen wir Gasttools.
Guest Tools aktualisiert die Systemtreiber mit den für die virtualisierte Hardware geeigneten Treibern und kommuniziert mit der gefälschten Hardware, um Fragen zu stellen wie „Was ist meine maximale Auflösung?“. VBox fragt wiederum das Betriebssystem und meldet sich beim Gast zurück.
Gasttools ermöglichen auch andere Funktionen wie die Zuordnung freigegebener Ordner, indem sie Software im Gast installieren, die mit VBox kommunizieren kann. VBox verwendet dann Betriebssystemtechnologien wie Named Pipes oder OLE (in Windows) oder Netzwerk-IPC (Linux), um Daten zwischen sich selbst und dem Host-Betriebssystem hin und her zu übertragen.
Wichtig dabei ist, dass der Gast nicht weiß, dass es sich um eine VM handelt, und der Host nicht weiß, dass er VMs ausführt. Vbox sitzt zwischen beiden und vermittelt die gesamte Kommunikation. Es besteht keine außergewöhnliche Abhängigkeit vom physischen BIOS.
Was Sie vielleicht an das BIOS denken lässt, sind die Virtualisierungserweiterungen. Bitte verstehen Sie, dass VT ein Satz von CPU-Anweisungen ist und nichts mit dem BIOS zu tun hat. VBox führt Code aus, der (gegebenenfalls) in VT-Anweisungsaufrufe kompiliert wurde, damit optimierte Anweisungen im Zusammenhang mit virtuellen Operationen ausgeführt werden können. Auch hier hat das Host-Betriebssystem wenig damit zu tun.