Cosa significa per il software eseguire in modo nativo?
Quando le persone si riferiscono all'esecuzione di software, emulazione e compatibilità software nativi, a cosa si riferiscono esattamente? Continua a leggere mentre approfondiamo il concetto di software nativo.
La sessione di domande e risposte di oggi viene da noi per gentile concessione di SuperUser, una suddivisione di Stack Exchange, un raggruppamento di siti Web di domande e risposte basato sulla comunità.
La domanda
Lettore SuperUser Throsby è curioso di sapere cosa significa eseguire il software in modo nativo. Lui scrive:
Mi sono chiesto cosa significhi per il software eseguire nativamente. Che cosa è esattamente un tale software e in che cosa è diverso dal software che non viene eseguito in modo nativo? Come posso sapere se un determinato software verrà eseguito in modo nativo sul mio computer? È probabile che ci sia già un software sul mio computer che funziona in modo nativo?
Continua a leggere per un'eccellente analogia che spiega esattamente cosa significa essere nativi su un dato sistema.
La risposta
Il collaboratore di SuperUser Deltik offre una fantastica analogia che mette in evidenza ciò che significa che il software è nativo e che tipo di altro software si può trovare su un determinato sistema:
Un software è nativo di una piattaforma se è stato progettato per funzionare su quella piattaforma.
Una piattaforma di solito si riferisce a un sistema operativo, ma può anche essere applicata a dispositivi come Nintendo Game Boy.
Usando il Game Boy come esempio, ottiene il suo software dalle cartucce. Queste cartucce contengono il codice che viene eseguito nativamente sul Game Boy.
emulatori sono uno strato che consente di eseguire software progettato per una piattaforma su un'altra. Ad esempio, ci sono emulatori che possono eseguire immagini di cartucce di Game Boy e ti permettono di giocare ai giochi di Game Boy sul tuo computer o anche sul tuo cellulare.
UN livello di compatibilità è un po 'come un emulatore. Quando i computer e i sistemi operativi a 64 bit diventavano mainstream, dovevano essere compatibili con le tecnologie esistenti a 32 bit. Poiché le architetture a 64 e 32 bit sono molto diverse, spesso è necessario un livello di compatibilità per eseguire software a 32 bit su macchine a 64 bit. Per le edizioni a 64 bit di Microsoft Windows, Microsoft aveva bisogno di scrivere un livello di compatibilità in modo che i programmi a 32 bit continuassero a funzionare sul nuovo sistema a 64 bit. Questo è il motivo per cui alcuni programmi vengono spesso installati in una cartella chiamata
Programmi (x86)
, doveX 86
significa "32 bit".Gli strati di compatibilità tendono ad essere più intimi con il sistema nativo rispetto agli emulatori. VirtualBoxemula hardware per sistemi operativi * e i sistemi che emula non hanno un'interazione diretta con il sistema host. WoW64 è un livello di compatibilità in quanto consente ai programmi a 32 bit di funzionare su Windows a 64 bit in modo più integrato. WoW64 aiuta a fare programmi compatibile piuttosto cheemulando li in un ambiente isolato.
UN biblioteca di traduzione è un componente dei livelli di compatibilità. Ogni volta che il codice binario viene eseguito in modo non nativo, una libreria di traduzione aiuta a reindirizzare le chiamate straniere non native a quelle native che il sistema può comprendere. I programmi di assemblaggio scritti per la TI-83 originale potrebbero non essere compatibili con le più recenti calcolatrici TI-83/84 Plus poiché alcune chiamate che avevano senso nell'architettura della TI-83 potrebbero non essere più valide nella TI-83/84 +. Una libreria di traduzione (probabilmente inclusa in shell come MirageOS) assicura che le chiamate per la TI-83 vadano alle nuove posizioni aggiornate nei calcolatori TI-83/84 +.
Codice indipendente dalla piattaforma è scritto in una lingua che è interpretato da qualcosa che di solito viene eseguito in modo nativo. Ad esempio, PHP è un linguaggio di programmazione che viene interpretato ed eseguito dal binario PHP installato, che è già stato compilato nativamente per sistemi operativi basati su Windows, Mac e Unix. Il codice PHP che gli scripters web scrivono sono indipendenti dalla piattaforma, permettendo al codice di funzionare su più sistemi operativi fintanto che PHP è installato per quei sistemi operativi.
Hai qualcosa da aggiungere alla spiegazione? Sound off nei commenti. Vuoi leggere più risposte dagli altri utenti di Stack Exchange esperti di tecnologia? Controlla la discussione completa qui.