Główna » jak » Co to znaczy, że oprogramowanie działa poprawnie?

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

    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ści SuperUser-poddział Stack Exchange, grupowania społecznościowego stron z pytaniami i odpowiedziami.

    Pytanie

    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.

    Odpowiedź

    Uczestnik SuperUser Deltik oferuje fantastyczną analogię, która podkreśla, co to znaczy, że oprogramowanie jest rodzime i jakiego innego oprogramowania 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że być również stosowana na urządzeniach takich jak Nintendo Game Boy.

    Przykładem jest Game Boy, który otrzymuje oprogramowanie z kaset. Te naboje zawierają kod, który działa natywnie na Game Boy.

    Emulatory są warstwą, 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 pozwalają grać w gry Game Boy na komputerze lub nawet telefonie komórkowym.

    ZA warstwa 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ż architektura 64-bitowa i 32-bitowa 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), gdzie x86 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 to warstwa kompatybilności dzięki temu 32-bitowe programy działają w 64-bitowym systemie Windows w bardziej zintegrowany sposób. WoW64 pomaga tworzyć programy zgodny zamiastemulowanie je w odosobnionym środowisku.

    ZA biblioteka tłumaczeń jest składnikiem warstw kompatybilności. Ilekroć kod binarny działa w sposób nieciągły, 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 jest interpretować 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 napisany przez web scripteró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.