Kiedy ludzie odnoszą się do uruchamiania natywnego oprogramowania, emulacji i zgodności oprogramowania, do czego dokładnie się odnoszą? Czytaj dalej, zagłębiając się w koncepcję rodzimego oprogramowania.
Dzisiejsza sesja pytań i odpowiedzi przychodzi do nas dzięki uprzejmościSuperUser-poddział Stack Exchange, grupowania społecznościowych stron z pytaniami i odpowiedziami.
Czytnik SuperUser Throsby jest ciekawy, co to znaczy uruchomić oprogramowanie natywnie. On pisze:
Zastanawiam 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ę sprawdzić, czy dany program będzie działał natywnie na moim komputerze? Czy istnieje prawdopodobnie oprogramowanie na moim komputerze, które działa natywnie?
Zapoznaj się z doskonałą analogią wyjaśniającą dokładnie, co to znaczy być rodzimym w danym systemie.
Uczestnik SuperUser Deltik oferuje fantastyczną analogię, która podkreśla, co to znaczy, że oprogramowanie ma być 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 zazwyczaj odnosi się do systemu operacyjnego, ale można ją również zastosować do urządzeń takich jak Nintendo Game Boy.
Przykładem jest Game Boy, który otrzymuje oprogramowanie z kaset. Te naboje zawierają kod, który działanatywnie na Game Boy.
Emulatory są warstwą pozwalającą oprogramowaniu zaprojektowanemu na jedną platformę działać na innej. Na przykład, istnieją emulatory, które mogą wykonywać obrazy wkładów Game Boy i pozwalają grać w gry Game Boy na komputerze lub nawet telefonie komórkowym.
ZAwarstwa kompatybilności jest jak emulator. Gdy komputery 64-bitowe i systemy operacyjne stały się głównym nurtem, musiały być kompatybilne z istniejącymi technologiami 32-bitowymi. Ponieważ architektury 64-bitowe i 32-bitowe są bardzo różne, często wymagana jest warstwa kompatybilności do uruchamiania oprogramowania 32-bitowego na 64-bitowych komputerach. W 64-bitowych wersjach systemu Microsoft Windows Microsoft musiał napisać warstwę kompatybilności, aby programy 32-bitowe nadal działały w nowym 64-bitowym systemie. Dlatego niektóre programy często są instalowane w folderze o nazwie
Pliki programów (x86)
, gdziex86
oznacza "32-bitowy".Warstwy kompatybilności wydają się być bardziej intymne z rodzimym systemem niż emulatory. VirtualBoxemulować sprzęt dla systemów operacyjnych *, a systemy, które emuluje, nie mają bardzo bezpośredniej interakcji z systemem hosta. WoW64 towarstwa kompatybilności dzięki temu 32-bitowe programy działają w 64-bitowym systemie Windows w bardziej zintegrowany sposób. WoW64 pomaga tworzyć programyzgodny zamiastemulacja je w odizolowanym środowisku.
ZAbiblioteka tłumaczeń jest składnikiem warstw kompatybilności. Ilekroć kod binarny działa w trybie nie-natywnym, biblioteka tłumaczeniowa pomaga przekierowywać obce, nienatywne połączenia do połączeń natywnych, które system może zrozumieć. Programy montażowe napisane dla oryginalnego TI-83 mogą nie być kompatybilne 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 zawarta w powłokach takich jak MirageOS) zapewnia, że wywołania TI-83 trafiają do nowych, zaktualizowanych miejsc w kalkulatorach TI-83/84 +.
Kod niezależny od platformy jest napisany w języku, który jestinterpretować 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ż skompilowanynatywnie dla systemów operacyjnych Windows, Mac i Unix. Kod PHP, który piszą autorzy skryptów, jest niezależny od platformy, umożliwiając działanie kodu na wielu systemach operacyjnych, o ile PHP jest zainstalowane dla tych systemów operacyjnych.
Czy masz coś do dodania do wyjaśnienia? Dźwięk w komentarzach. Chcesz przeczytać więcej odpowiedzi od innych użytkowników Stack Exchange, którzy znają się na technologii? Sprawdź cały wątek dyskusji tutaj.