Skip to content

Co to znaczy, że oprogramowanie działa natywnie?

28 de lipiec de 2021
img 51ca374d30f80

Kiedy ludzie odnoszą się do natywnego oprogramowania, emulacji i kompatybilności oprogramowania, do czego dokładnie mają na myśli? Czytaj dalej, gdy zagłębimy się w koncepcję oprogramowania natywnego.

Dzisiejsza sesja pytań i odpowiedzi przychodzi do nas dzięki uprzejmościSuperUser — pododdział Stack Exchange, opartej na społeczności grupy witryn internetowych z pytaniami i odpowiedziami.

Pytanie

Czytnik SuperUser Throsby jest ciekawy, co to znaczy natywnie uruchamiać oprogramowanie. On pisze:

Zastanawiałem się, co to znaczy, że oprogramowanie działa natywnie. Czym dokładnie jest takie oprogramowanie i czym różni się od oprogramowania, które nie działa natywnie? Jak mogę stwierdzić, czy dane oprogramowanie będzie działać natywnie na moim komputerze? Czy na moim komputerze może być już zainstalowane oprogramowanie działające natywnie?

Czytaj dalej, aby uzyskać doskonałą analogię wyjaśniającą dokładnie, co to znaczy być natywnym w danym systemie.

Odpowiedź

Współtwórca SuperUser Deltik oferuje fantastyczną analogię, która podkreśla, co to znaczy, że oprogramowanie jest natywne i jakie inne oprogramowanie można znaleźć w danym systemie:

Oprogramowanie jest natywne dla platformy, jeśli zostało zaprojektowane do działania na tej platformie.

Platforma zwykle odnosi się do systemu operacyjnego, ale można ją również zastosować do urządzeń takich jak Nintendo Game Boy.

Używając Game Boya jako przykładu, pobiera swoje oprogramowanie z kartridży. Te wkłady zawierają kod, który działanatywniena Game Boya.

Emulatoryto warstwa, która umożliwia uruchamianie oprogramowania zaprojektowanego dla jednej platformy na innej. Na przykład istnieją emulatory, które mogą wykonywać obrazy wkładów Game Boy i umożliwiają granie w gry Game Boy na komputerze, a nawet telefonie komórkowym.

Awarstwa kompatybilnościjest trochę jak emulator. Kiedy 64-bitowe komputery i systemy operacyjne stały się popularne, musiały być kompatybilne z istniejącymi 32-bitowymi technologiami. Ponieważ architektury 64-bitowe i 32-bitowe bardzo się różnią, do uruchamiania oprogramowania 32-bitowego na komputerach 64-bitowych często potrzebna jest warstwa kompatybilności. W przypadku 64-bitowych wersji systemu Microsoft Windows firma Microsoft musiała napisać warstwę zgodności, aby programy 32-bitowe nadal działały w nowym systemie 64-bitowym. Dlatego niektóre programy są często instalowane w folderze o nazwieProgram Files (x86), gdziex86oznacza „32-bitowy”.

Warstwy zgodności wydają się być bardziej intymne z systemem natywnym niż emulatory.VirtualBoxemulujesprzęt dla systemów operacyjnych*, a systemy, które emuluje, nie wchodzą w bezpośrednią interakcję z systemem hosta.WoW64jestwarstwa kompatybilnościdzięki temu, że 32-bitowe programy działają w 64-bitowym systemie Windows w bardziej zintegrowany sposób. WoW64 pomaga tworzyć programyzgodnyzamiastemulacjaje w odizolowanym środowisku.

Abiblioteka tłumaczeńjest składnikiem warstw kompatybilności. Za każdym razem, gdy kod binarny działa nienatywnie, biblioteka tłumaczeń pomaga przekierować obce, nienatywne wywołania do wywołań natywnych, które system może zrozumieć. Programy do składania napisane dla oryginalnego kalkulatora TI-83 mogą nie być kompatybilne z nowszymi kalkulatorami TI-83/84 Plus, ponieważ niektóre wywołania, które miały sens w architekturze TI-83, mogą nie być już poprawne w TI-83/84+. Biblioteka tłumaczeń (prawdopodobnie zawarta w powłokach takich jakMirageOS) zapewnia, że ​​wywołania kalkulatora TI-83 trafiają do nowych, zaktualizowanych miejsc w kalkulatorach TI-83/84+.

Kod niezależny od platformyjest napisane w języku, który jestzinterpretowanyprzez coś, co zwykle działa natywnie. Na przykład PHP to język programowania, który jest interpretowany i wykonywany przez zainstalowany plik binarny PHP, który został już skompilowanynatywniedla systemów operacyjnych Windows, Mac i Unix. Kod PHP pisany przez skrypty internetowe jest niezależny od platformy, dzięki czemu kod może działać w wielu systemach operacyjnych, o ile PHP jest zainstalowane dla tych systemów operacyjnych.

Masz coś do dodania do wyjaśnienia? Dźwięk w komentarzach. Chcesz przeczytać więcej odpowiedzi od innych doświadczonych technologicznie użytkowników Stack Exchange?Sprawdź pełny wątek dyskusji tutaj.

Czy ten post był pomocny?