9Aug

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.

Today's Question &La sessione di risposta ci viene fornita per gentile concessione di di SuperUser, una suddivisione di Stack Exchange, un raggruppamento di Q & A basato su community.

The Question

SuperUser reader Throsby è curioso di sapere cosa significa eseguire il software in modo nativo. Scrive:

Mi sono chiesto cosa significhi per il software eseguire nativamente. Che cosa è esattamente un software di questo tipo e in che cosa è diverso dal software che non funziona in modo nativo? Come posso sapere se un determinato software verrà eseguito in modo nativo sul mio computer?È probabile che il software sia già presente sul mio computer in modo nativo?

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

La risposta

Il collaboratore di SuperUser Deltik offre una fantastica analogia che mette in risalto cosa significa che il software è nativo e che tipo di altro software si può trovare su un dato sistema:

Un software è nativo di una piattaforma se è stato progettato per funzionare suquella 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 codice che esegue nativamente sul Game Boy. Gli 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. Il livello di compatibilità

A è 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 denominata Program Files( x86), dove x86 significa "32 bit".

Gli strati di compatibilità tendono ad essere più intimi con il sistema nativo rispetto agli emulatori. VirtualBox emula l'hardware per i sistemi operativi * ei sistemi che emula non hanno un'interazione diretta con il sistema host. WoW64 è un livello di compatibilità in quanto consente a programmi a 32 bit di eseguire su Windows a 64 bit in modo più integrato. WoW64 aiuta a rendere i programmi compatibili piuttosto che emulando in un ambiente isolato. Libreria di traduzione

A è 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 nelle calcolatrici TI-83/84 +.Codice

indipendente dalla piattaforma è scritto in un linguaggio che ha interpretato da qualcosa che solitamente 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 i sistemi operativi basati su Windows, Mac e Unix. Il codice PHP che gli scripters web scrivono sono indipendenti dalla piattaforma, consentendo 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.