Cosa significa che il software viene eseguito in modo nativo?



Quando le persone si riferiscono all'esecuzione di software nativo, all'emulazione e alla compatibilità del software, a cosa si riferiscono esattamente? Continua a leggere mentre approfondiamo il concetto di software nativo.

La sessione di domande e risposte di oggi ci arriva per cortesia di SuperUser: una suddivisione di Stack Exchange, un raggruppamento di siti Web di domande e risposte guidato dalla comunità.





La domanda

Il lettore SuperUser Throsby è curioso di sapere cosa significa eseguire il software in modo nativo. Lui scrive:

Mi sono chiesto cosa significhi per il software funzionare in modo nativo. Che cos'è esattamente tale software e in che modo è 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 sul mio computer sia già presente un software che viene eseguito in modo nativo?



Continua a leggere per un'eccellente analogia che spieghi esattamente cosa significa essere nativi su un dato sistema.

La risposta

Il collaboratore di SuperUser Deltik offre una fantastica analogia che evidenzia cosa significa per il software essere nativo e che tipo di altro software si potrebbe trovare su un dato sistema:

Un software è nativo di una piattaforma se è stato progettato per essere eseguito su tale piattaforma.



Una piattaforma di solito si riferisce a un sistema operativo, ma può essere applicata anche a dispositivi come il Nintendo Game Boy.

Usando il Game Boy come esempio, ottiene il suo software dalle cartucce. Queste cartucce contengono codice che funziona nativamente sul Game Boy.

Emulatori sono un livello che consente l'esecuzione del software progettato per una piattaforma su un'altra. Ad esempio, ci sono emulatori che possono eseguire immagini di cartucce Game Boy e ti permettono di giocare ai giochi Game Boy sul tuo computer o persino sul tuo telefono cellulare.

A livello di compatibilità è una specie di emulatore. Quando i computer e i sistemi operativi a 64 bit sono diventati mainstream, dovevano essere compatibili con le tecnologie a 32 bit esistenti. Poiché le architetture a 64 bit e a 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 |_+_|, dove |_+_| significa 32 bit.

I livelli di compatibilità tendono ad essere più intimi con il sistema nativo rispetto agli emulatori. VirtualBox emula hardware per i 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 creare programmi compatibile piuttosto che emulare loro in un ambiente isolato.

A libreria 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 esterne e non native a chiamate native che il sistema può comprendere. I programmi di assemblaggio scritti per la TI-83 originale potrebbero non essere compatibili con le nuove calcolatrici TI-83/84 Plus perché 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 ) garantisce 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 scrivono i web scripter è indipendente dalla piattaforma, consentendo al codice di funzionare su più sistemi operativi purché PHP sia installato per quei sistemi operativi.


Hai qualcosa da aggiungere alla spiegazione? Suona nei commenti. Vuoi leggere più risposte da altri utenti di Stack Exchange esperti di tecnologia? Dai un'occhiata al thread di discussione completo qui .

LEGGI SUCCESSIVO Foto del profilo di Jason Fitzpatrick Jason Fitzpatrick
Jason Fitzpatrick è l'editore capo di LifeSavvy, il sito gemello di How-To Geek incentrato su trucchi, suggerimenti e trucchi per la vita. Ha oltre un decennio di esperienza nella pubblicazione e ha scritto migliaia di articoli su Review Geek, How-To Geek e Lifehacker. Jason è stato l'editor del weekend di Lifehacker prima di entrare a far parte di How-To Geek.
Leggi la biografia completa

Articoli Interessanti