Was bedeutet es, wenn Software nativ läuft?
Worauf beziehen sich die Leute, wenn sie sich darauf beziehen, native Software, Emulation und Software-Kompatibilität zu verwenden? Lesen Sie weiter, während wir uns mit dem Konzept der nativen Software beschäftigen.
Die heutige Question & Answer-Sitzung kommt mit freundlicher Genehmigung von SuperUser - eine Unterteilung von Stack Exchange, einer Community-basierten Gruppierung von Q & A-Websites.
Die Frage
Superuser-Leser Throsby ist neugierig, was es heißt, Software nativ auszuführen. Er schreibt:
Ich habe mich schon gefragt, was es für Software bedeutet, nativ zu laufen. Was genau ist eine solche Software und wie unterscheidet sie sich von Software, die nicht nativ läuft? Wie kann ich feststellen, ob eine bestimmte Software nativ auf meinem Computer läuft? Gibt es wahrscheinlich Software auf meinem Computer, die nativ läuft??
Lesen Sie weiter für eine hervorragende Analogie, die genau erklärt, was es bedeutet, auf einem bestimmten System nativ zu sein.
Die Antwort
Der SuperUser-Mitwirkende Deltik bietet eine fantastische Analogie, die hervorhebt, was es bedeutet, dass Software native ist und welche andere Software auf einem bestimmten System gefunden werden kann:
Eine Software ist nativ für eine Plattform, wenn sie für die Ausführung auf dieser Plattform entwickelt wurde.
Eine Plattform bezieht sich normalerweise auf ein Betriebssystem, kann jedoch auch auf Geräte wie den Nintendo Game Boy angewendet werden.
Am Beispiel des Game Boy erhält er seine Software von Patronen. Diese Kassetten enthalten Code, der ausgeführt wird nativ auf dem Game Boy.
Emulatoren sind eine Schicht, die es ermöglicht, Software, die für eine Plattform entwickelt wurde, auf einer anderen auszuführen. Zum Beispiel gibt es Emulatoren, die Bilder von Game Boy-Patronen ausführen können und Game Boy-Spiele auf Ihrem Computer oder sogar auf Ihrem Mobiltelefon spielen können.
EIN Kompatibilitätsschicht ist ein bisschen 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, ist häufig eine Kompatibilitätsebene erforderlich, um 32-Bit-Software auf 64-Bit-Computern auszuführen. Für 64-Bit-Editionen von Microsoft Windows musste Microsoft eine Kompatibilitätsebene schreiben, damit 32-Bit-Programme auf dem neuen 64-Bit-System weiterhin funktionieren. Aus diesem Grund werden manche Programme häufig in einem Ordner namens installiert
Programmdateien (x86)
, woherx86
bedeutet "32-Bit".Kompatibilitätsschichten neigen dazu, mit dem nativen System enger zusammenzuarbeiten als Emulatoren. VirtualBoxemuliert Hardware für Betriebssysteme * und die von ihnen emulierten Systeme haben nicht viel direkte Interaktion mit dem Host-System. WoW64 ist ein Kompatibilitätsschicht Dadurch können 32-Bit-Programme integrierter auf 64-Bit-Windows ausgeführt werden. WoW64 hilft bei der Erstellung von Programmen kompatibel eher, alsemulieren sie in einer isolierten Umgebung.
EIN Übersetzungsbibliothek ist eine Komponente von Kompatibilitätsebenen. Wenn binärer Code nicht nativ ausgeführt wird, hilft eine Übersetzungsbibliothek, fremde, nicht native Aufrufe an native Aufrufe weiterzuleiten, die das System verstehen kann. Für den ursprünglichen TI-83 geschriebene Assembly-Programme sind möglicherweise nicht mit den neueren TI-83/84 Plus-Rechnern kompatibel, da einige Aufrufe, die in der Architektur des TI-83 sinnvoll sind, im TI-83/84 + möglicherweise nicht mehr gültig sind. Eine Übersetzungsbibliothek (wahrscheinlich in Shells wie MirageOS enthalten) stellt sicher, dass Aufrufe des TI-83 an die neuen, aktualisierten Stellen in den TI-83/84 + -Rechnern gehen.
Plattformunabhängiger Code ist in einer Sprache geschrieben, die ist interpretiert durch etwas, das normalerweise nativ läuft. Zum Beispiel ist PHP eine Programmiersprache, die von der installierten PHP-Binärdatei, die bereits kompiliert wurde, interpretiert und ausgeführt wird nativ für Windows, Mac und Unix-basierte Betriebssysteme. Der von Web-Scriptern geschriebene PHP-Code ist plattformunabhängig, sodass der Code auf mehreren Betriebssystemen ausgeführt werden kann, sofern PHP für diese Betriebssysteme installiert ist.
Haben Sie der Erklärung etwas hinzuzufügen? Ton aus in den Kommentaren. Möchten Sie mehr Antworten von anderen technisch versierten Stack Exchange-Benutzern lesen? Hier geht es zum vollständigen Diskussionsthread.