Kompatibilitätsschicht
Eine Kompatibilitätsschicht ist eine Softwareschnittstelle, die es ermöglicht, für ein Betriebssystem oder eine Hardwarearchitektur geschriebene und kompilierte Anwendungen auf einem anderen Wirtssystem auszuführen. Sie empfängt API-Aufrufe und andere Systemfunktionen, die für eine Umgebung entwickelt wurden, und übersetzt sie in Aufrufe, die das Wirtssystem verstehen kann.
Kompatibilitätsschichten können eine ähnliche Funktion wie Emulation und Virtualisierung erfüllen, indem sie ermöglichen, für eine Umgebung geschriebene Software zum Beispiel (Windows auf einem x86-Prozessor) entweder auf einem anderen Betriebssystem mit ähnlicher Hardware (Linux auf einem x86-Prozessor) oder auf einem ähnlichen Betriebssystem mit einer anderen Hardwarearchitektur (Windows auf einem ARM-Prozessor) auszuführen. Dazu fangen sie jeden System-API-Aufruf ab, den das Programm an seine ursprüngliche Umgebung senden möchte, und wandeln ihn in den entsprechenden Aufruf für die neue Wirtumgebung um.
Die Ausführung von Software in einer Kompatibilitätsschicht benötigt häufig weniger Systemressourcen als die Emulation einer anderen Umgebung oder der Betrieb einer virtuellen Maschine. Bei manchen Programmen können jedoch Fehler auftreten oder zusätzliche Konfigurationen erforderlich sein, damit sie mit einer Kompatibilitätsschicht ordnungsgemäß funktionieren.
Vergleich mit Emulation und Virtualisierung
Emulatoren, Virtualisierung und Kompatibilitätsschichten werden häufig verwendet, um Software für eine andere Umgebung auszuführen. Jede Methode erfüllt diese Aufgabe auf eine andere Weise.
Ein Emulator verwendet Software, um sowohl die Hardware als auch die Software eines Geräts nachzubilden und dadurch die gesamte Umgebung zu emulieren. Da die Emulation von Hardwaregeräten durch Software erhebliche Systemressourcen benötigt, muss ein Wirtssystem deutlich schneller sein als die emulierte Hardware, um eine ähnliche Leistung zu erreichen. Eine Kompatibilitätsschicht, die zwischen zwei Hardwareplattformen übersetzen soll, enthält einen Hardwareemulator und verwendet ihn nur bei Bedarf, anstatt die gesamte Umgebung ständig zu emulieren.
Eine virtuelle Maschine simuliert einen vollständigen Computer auf der Hardware des Wirtssystems. Sie führt eine Kopie eines Betriebssystems aus und verwendet eine Softwareschicht, um Aufrufe der virtualisierten Hardware in Aufrufe an die Hardware des Wirtssystems zu übersetzen. Eine Kompatibilitätsschicht übersetzt nur die benötigten Aufrufe und simuliert dabei keine Hardware- oder Softwareaufrufe, die sie nicht benötigt.
Testen Sie Ihr Wissen