Oprogramowanie jest rodzime dla platformy, jeśli zostało zaprojektowane do działania na tej platformie.
Platforma zazwyczaj odnosi się do systemu operacyjnego, ale może być również stosowana do urządzeń takich jak Nintendo Game Boy.
Korzystając z Game Boy jako przykładu, pobiera oprogramowanie z kartridży. Te wkłady zawierają działający kod natywnie na Game Boy.
Emulatory są warstwą, która umożliwia uruchamianie oprogramowania dla jednej platformy na innej. Na przykład istnieją emulatory, które mogą wykonywać obrazy kartridży Game Boy i umożliwiać granie w gry Game Boy na komputerze lub nawet w telefonie komórkowym.
ZA warstwa zgodności jest jakby emulatorem. Gdy komputery 64-bitowe i systemy operacyjne stały się mainstreamem, musiały być kompatybilne z istniejącymi technologiami 32-bitowymi. Ponieważ architektury 64-bitowe i 32-bitowe są bardzo różne, warstwa kompatybilności jest często potrzebna do uruchomienia 32-bitowego oprogramowania na maszynach 64-bitowych. W przypadku 64-bitowych wersji systemu Microsoft Windows firma Microsoft musiała napisać warstwę zgodności, aby programy 32-bitowe nadal działały na nowym systemie 64-bitowym. Dlatego niektóre programy są często instalowane w folderze o nazwie Program Files (x86)
, gdzie x86
oznacza „32-bit”.
Warstwy zgodności są bardziej intymne z rodzimym systemem niż emulatory. VirtualBox emuluje sprzęt dla systemów operacyjnych * , a systemy, które emuluje, nie mają bardzo bezpośredniej interakcji z systemem hosta. WoW64 jest warstwa zgodności w ten sposób pozwala 32-bitowym programom na 64-bitowe Windows w bardziej zintegrowany sposób. WoW64 pomaga tworzyć programy zgodny zamiast emulować w odosobnionym środowisku.
ZA biblioteka tłumaczeń jest składnikiem warstw zgodności. Za każdym razem, gdy kod binarny działa w trybie nienaturalnym, biblioteka tłumaczeń pomaga przekierować zagraniczne, nienatywne wywołania do połączeń rodzimych, które system może zrozumieć. Programy montażowe napisane dla oryginalnego kalkulatora TI-83 mogą nie być zgodne z nowszymi kalkulatorami TI-83/84 Plus, ponieważ niektóre połączenia, które miały sens w architekturze TI-83, mogą nie być już ważne w TI-83/84 +. Biblioteka tłumaczeń (prawdopodobnie dołączona do skorup MirageOS ) zapewnia, że połączenia do kalkulatora TI-83 przechodzą do nowych, zaktualizowanych miejsc w kalkulatorach TI-83/84 +.
Kod niezależny od platformy jest napisany w języku, który jest interpretowane przez coś, co zwykle działa natywnie. Na przykład PHP jest językiem programowania, który jest interpretowany i wykonywany przez zainstalowany plik binarny PHP, który został już skompilowany natywnie dla systemów operacyjnych Windows, Mac i Unix. Kod PHP, który piszą scriptery internetowe, jest niezależny od platformy, dzięki czemu kod może działać na wielu systemach operacyjnych, o ile PHP jest zainstalowany dla tych systemów operacyjnych.
Różne
Korekty
* Dziękuję Ci, Michael Kjörling , dla łapanie niektórych problemów z ta odpowiedź .
Inny
Różnica między „rodzimym” a „nie-rodzimym” to nie czarno-biały . (Kredyty do afrazier )