Eine Software stammt ursprünglich aus einer Plattform, wenn sie für die Ausführung auf dieser Plattform entwickelt wurde.
Eine Plattform bezieht sich normalerweise auf ein Betriebssystem, kann aber auch auf Geräte wie den Nintendo Game Boy angewendet werden.
Am Beispiel des Game Boy bezieht er seine Software aus Kassetten. Diese Kassetten enthalten Code, der nativ auf dem Game Boy ausgeführt wird.
Emulatoren sind eine Schicht, mit der Software, die für eine Plattform entwickelt wurde, auf einer anderen ausgeführt werden kann. Zum Beispiel gibt es Emulatoren, die Bilder von Game Boy-Kassetten ausführen und es Ihnen ermöglichen, Game Boy-Spiele auf Ihrem Computer oder sogar Ihrem Mobiltelefon zu spielen.
Eine Kompatibilitätsebene ist wie ein Emulator. Als 64-Bit-Computer und Betriebssysteme zum Mainstream wurden, mussten sie mit den vorhandenen 32-Bit-Technologien kompatibel sein. Da 64-Bit- und 32-Bit-Architekturen sehr unterschiedlich sind, wird häufig eine Kompatibilitätsebene benötigt, um 32-Bit-Software auf 64-Bit-Computern auszuführen. Für 64-Bit-Editionen von Microsoft Windows musste Microsoft eine Kompatibilitätsebene erstellen, damit 32-Bit-Programme weiterhin auf dem neuen 64-Bit-System ausgeführt werden können. Aus diesem Grunde oft einige Programme in einen Ordner installiert sind aufgerufen Program Files (x86)
, in dem x86
Mittel „32-Bit“.
Kompatibilitätsebenen sind in der Regel mit dem nativen System vertrauter als Emulatoren. VirtualBox emuliert Hardware für Betriebssysteme * , und die Systeme, die es emuliert, haben nicht sehr viel direkte Interaktion mit dem Hostsystem. WoW64 ist insofern eine Kompatibilitätsebene , als 32-Bit-Programme auf 64-Bit-Windows integrierter ausgeführt werden können. WoW64 hilft dabei, Programme eher kompatibel zu machen, als sie in einer isolierten Umgebung zu emulieren .
Eine Übersetzungsbibliothek ist Bestandteil von Kompatibilitätsebenen. Immer wenn Binärcode nicht systemeigen ausgeführt wird, hilft eine Übersetzungsbibliothek dabei, fremde, nicht systemeigene Aufrufe an systemeigene Aufrufe umzuleiten, die das System verstehen kann. Assembly-Programme, die für den ursprünglichen TI-83 geschrieben wurden, sind möglicherweise nicht mit den neueren TI-83/84 Plus-Rechnern kompatibel, da einige Aufrufe, die in der Architektur des TI-83 sinnvoll waren, im TI-83/84 + möglicherweise nicht mehr gültig sind. Eine Übersetzungsbibliothek (wahrscheinlich in Shells wie MirageOS enthalten ) stellt sicher, dass Aufrufe für den TI-83 an die neuen, aktualisierten Stellen in den TI-83/84 + -Rechnern gesendet werden.
Plattformunabhängiger Code ist in einer Sprache geschrieben, die von etwas interpretiert wird, das normalerweise von Haus aus ausgeführt wird. Zum Beispiel ist PHP eine Programmiersprache, die von der installierten PHP-Binärdatei interpretiert und ausgeführt wird, die bereits nativ für Windows-, Mac- und Unix-basierte Betriebssysteme kompiliert wurde. Der von Web-Skriptern geschriebene PHP-Code ist plattformunabhängig, sodass der Code auf mehreren Betriebssystemen ausgeführt werden kann, sofern PHP für diese Betriebssysteme installiert ist.
Sonstiges
Korrekturen
* Vielen Dank, Michael Kjörling , dass Sie einige Probleme mit dieser Antwort haben .
Andere
Der Unterschied zwischen "native" und "non-native" ist nicht schwarz und weiß . ( Dank an afrazier )