9Aug

Was bedeutet es, dass die Software nativ ausgeführt wird?

Wenn sich Benutzer auf die Ausführung von nativer Software, Emulation und Softwarekompatibilität beziehen, worauf beziehen sie sich dann? Lesen Sie weiter, während wir uns mit dem Konzept der nativen Software befassen.

Die heutige Frage &Die Antwort-Sitzung kommt mit freundlicher Genehmigung von von SuperUser - einer Unterteilung von Stack Exchange, einer Community-gesteuerten Gruppierung von Q & A-Websites.

Die Frage

SuperUser Reader Throsby ist neugierig, was es bedeutet, Software nativ zu betreiben. Er schreibt:

Ich habe mich gefragt, was es bedeutet, dass Software nativ läuft. 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 auf meinem Computer ausgeführt wird? Ist wahrscheinlich Software bereits auf meinem Computer vorhanden, die nativ läuft?

Lesen Sie weiter für eine ausgezeichnete Analogie, die genau erklärt, was es bedeutet, auf einem gegebenen System nativ zu sein.

Der Antwort-

-SuperUser-Beitrag Deltik bietet eine fantastische Analogie, die hervorhebt, was es für Software bedeutet, nativ zu sein und welche Art von anderer Software man auf einem bestimmten System finden könnte:

Eine Software ist auf einer Plattform nativ, wenn sie darauf ausgelegt ist, ausgeführt zu werdendiese Plattform.

Eine Plattform bezieht sich normalerweise auf ein Betriebssystem, aber sie kann auch auf Geräte wie den Nintendo Game Boy angewendet werden.

Am Beispiel des Game Boy erhält er seine Software von Cartridges. Diese Kassetten enthalten Code, der nativ auf dem Game Boy ausführt.

Emulatoren sind eine Schicht, die es erlaubt, Software, die für eine Plattform entworfen wurde, auf einer anderen zu betreiben. Zum Beispiel gibt es Emulatoren, die Bilder von Game Boy Patronen ausführen können und es Ihnen ermöglichen, Game Boy Spiele auf Ihrem Computer oder sogar auf Ihrem Mobiltelefon zu spielen.

A Kompatibilität Schicht 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, wird häufig eine Kompatibilitätsschicht benötigt, um 32-Bit-Software auf 64-Bit-Rechnern auszuführen. Für 64-Bit-Editionen von Microsoft Windows musste Microsoft eine Kompatibilitätsschicht schreiben, damit 32-Bit-Programme weiterhin auf dem neuen 64-Bit-System funktionieren. Aus diesem Grund werden einige Programme oft in einem Ordner mit dem Namen Program Files( x86) installiert, wobei x86 "32-Bit" bedeutet.

Kompatibilitätsschichten sind mit dem nativen System vertrauter als Emulatoren. VirtualBox emuliert die -Hardware für Betriebssysteme *, und die Systeme, die es emuliert, hat nicht viel direkte Interaktion mit dem Host-System. WoW64 ist eine -Kompatibilitätsschicht , da 32-Bit-Programme auf 64-Bit-Windows in einer integrierten Weise ausgeführt werden können. WoW64 hilft, -kompatible ------- in einer isolierten Umgebung zu emulieren.

A -Übersetzungsbibliothek ist eine Komponente von Kompatibilitätsschichten. Wenn Binärcode nicht nativ ausgeführt wird, hilft eine Übersetzungsbibliothek, 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 TI-83-Architektur sinnvoll waren, im TI-83/84 + möglicherweise nicht mehr gültig sind. Eine Übersetzungsbibliothek( wahrscheinlich in Shells wie MirageOS enthalten) stellt sicher, dass Anrufe für den TI-83 an die neuen, aktualisierten Plätze in den TI-83/84 + Rechnern gehen.

Der plattformunabhängige Code wird in einer Sprache geschrieben, die von etwas interpretiert, das normalerweise nativ läuft. Zum Beispiel ist PHP eine Programmiersprache, die von der installierten PHP-Binärdatei interpretiert und ausgeführt wird, die nativ für Windows, Mac und Unix-basierte Betriebssysteme bereits kompiliert wurde. Der PHP-Code, den Web-Scripter schreiben, ist unabhängig von der Plattform, so dass der Code auf mehreren Betriebssystemen funktioniert, solange PHP für diese Betriebssysteme installiert ist.

Haben Sie etwas zur Erklärung hinzuzufügen? Ton in den Kommentaren ab. Möchten Sie mehr Antworten von anderen technisch versierten Stack Exchange Benutzern lesen? Sehen Sie sich den vollständigen Diskussionsfaden hier an.