Čo to znamená, že softvér beží native?
Keď sa ľudia odvolávajú na spustenie natívneho softvéru, emulácie a softvérovej kompatibility, na čo presne odkazujú? Čítajte ďalej, keď sa ponoríme do konceptu natívneho softvéru.
Dnešná relácia otázok a odpovedí nám prináša zdvorilosť SuperUser - podradenie burzy stackov, komunitné zoskupenie webových stránok týkajúcich sa otázok a otázok.
Otázka
Čítač SuperUser Throsby je zvedavý, čo to znamená spustiť softvér natívne. On píše:
Zaujímalo by ma, čo to znamená, aby softvér fungoval natívne. Čo presne je takýto softvér a ako sa líši od softvéru, ktorý sa nespúšťa natívne? Ako môžem povedať, či daný softvér bude na počítači bežať natívne? Je pravdepodobné, že v počítači už existuje softvér, ktorý beží native?
Prečítajte si o vynikajúcej analógii vysvetľujúcej presne to, čo znamená byť doma na danom systéme.
Odpoveď
Sprostredkovateľ SuperUser Deltik ponúka fantastickú analógiu, ktorá zdôrazňuje, čo znamená pre softvér, ktorý má byť natívny a aký iný softvér by mohol nájsť v danom systéme:
Softvér je natívny na platforme, ak bol navrhnutý na spustenie na tejto platforme.
Platforma sa zvyčajne vzťahuje na operačný systém, ale môže byť použitá aj pre zariadenia, ako napríklad Nintendo Game Boy.
Použitím Game Boy ako príklad, dostane jeho softvér z kaziet. Tieto kazety obsahujú kód, ktorý beží natívne na Game Boy.
emulátory sú vrstvy, ktoré umožňujú softvér určený pre jednu platformu na inú platformu. Existujú napríklad emulátory, ktoré môžu vykonávať obrázky kaziet Game Boy a umožňujú vám hrať hry Game Boy vo vašom počítači alebo dokonca aj v mobilnom telefóne.
vrstvu kompatibility je trochu ako emulátor. Keď sa 64-bitové počítače a operačné systémy stali hlavným prúdom, museli byť kompatibilné s existujúcimi 32-bitovými technológiami. Vzhľadom na to, že 64-bitové a 32-bitové architektúry sú veľmi odlišné, je často potrebná kompatibilná vrstva na spustenie 32-bitového softvéru na 64-bitových počítačoch. V prípade 64-bitových verzií systému Microsoft Windows potrebovala spoločnosť Microsoft zapisovať vrstvu kompatibility tak, aby 32-bitové programy stále fungovali na novom 64-bitovom systéme. To je dôvod, prečo sú niektoré programy často inštalované do priečinka s názvom
Programové súbory (x86)
, kdex86
znamená "32-bitové".Kompatibilné vrstvy majú tendenciu byť intimnejší s natívnym systémom ako emulátory. VirtualBoxemuluje hardvér pre operačné systémy * a systémy, ktoré emuluje, nemajú veľmi priamu interakciu s hostiteľským systémom. WoW64 je a vrstvu kompatibility v tom, že umožňuje 32-bitové programy bežať na 64-bitovom systéme Windows integrovanejším spôsobom. WoW64 pomáha vytvárať programy kompatibilný radšej nežemulovať v izolovanom prostredí.
prekladateľská knižnica je súčasťou vrstiev kompatibility. Kedykoľvek binárny kód beží nainštalovaný, knižnica prekladov pomáha presmerovať zahraničné hovory, ktoré nie sú natívnymi hovormi, na prirodzené hovory, ktoré systém dokáže pochopiť. Montážne programy napísané pre pôvodný TI-83 nemusia byť kompatibilné s novšími kalkulátormi TI-83/84 Plus, pretože niektoré hovory, ktoré boli zmysluplné v architektúre TI-83, nemusia byť v TI-83/84 + platné. Prekladová knižnica (pravdepodobne zahrnutá v shelloch ako MirageOS) zabezpečuje, že volania pre TI-83 prejdú na nové, aktualizované miesta v kalkulátoroch TI-83/84 +.
Kód nezávislý na platforme je napísaný v jazyku, ktorý je vykladané niečo, čo zvyčajne beží native. Napríklad PHP je programovací jazyk, ktorý je interpretovaný a vykonávaný inštalovaným binárnym programom PHP, ktorý už bol zostavený natívne pre operačné systémy Windows, Mac a Unix. PHP kód, ktorý píšu scenáre webu, je nezávislý od platformy, čo umožňuje, aby kód fungoval na viacerých operačných systémoch, pokiaľ je pre tieto operačné systémy nainštalovaný PHP.
Máte niečo doplniť vysvetlenie? Vyjadrite sa v komentároch. Chcete sa dozvedieť viac odpovedí od iných používateľov technickej úrovne Stack Exchange? Pozrite sa na celý diskusný príspevok tu.