Qu'est-ce que cela signifie pour un logiciel de fonctionner en mode natif?
Quand les gens parlent de logiciels natifs, d'émulation et de compatibilité logicielle, à quoi font-ils référence exactement? Continuez votre lecture du concept de logiciel natif.
La séance de questions et réponses d'aujourd'hui nous est offerte par courtoisie de SuperUser - une sous-division de Stack Exchange, un regroupement de sites Web de questions-réponses dirigé par la communauté.
La question
Lecteur superutilisateur Throsby est curieux de savoir ce que signifie l’exécution d’un logiciel en mode natif. Il écrit:
Je me suis demandé ce que cela signifie pour un logiciel de fonctionner en mode natif. En quoi consiste exactement un tel logiciel et en quoi est-il différent des logiciels qui ne fonctionnent pas en mode natif? Comment savoir si un logiciel donné fonctionnera de manière native sur mon ordinateur? Existe-t-il probablement sur mon ordinateur un logiciel fonctionnant en mode natif??
Poursuivez votre lecture pour une excellente analogie expliquant exactement ce que signifie être natif sur un système donné.
La réponse
Deltik, contributeur à SuperUser, offre une analogie fantastique qui met en évidence ce que signifie pour un logiciel d'être natif et quel type de logiciel on peut trouver sur un système donné:
Un logiciel est natif sur une plate-forme s'il a été conçu pour s'exécuter sur cette plate-forme..
Une plate-forme fait généralement référence à un système d'exploitation, mais elle peut également être appliquée à des appareils tels que la Nintendo Game Boy..
En prenant l'exemple de la Game Boy, elle tire son logiciel des cartouches. Ces cartouches contiennent du code qui s'exécute nativement sur la Game Boy.
Émulateurs sont une couche qui permet aux logiciels conçus pour une plate-forme de s'exécuter sur une autre. Par exemple, certains émulateurs peuvent exécuter des images de cartouches Game Boy et vous permettre de jouer à des jeux Game Boy sur votre ordinateur ou même sur votre téléphone portable..
UNE couche de compatibilité est un peu comme un émulateur. Lorsque les ordinateurs et les systèmes d'exploitation 64 bits sont devenus la norme, ils devaient être compatibles avec les technologies 32 bits existantes. Les architectures 64 bits et 32 bits étant très différentes, une couche de compatibilité est souvent nécessaire pour exécuter un logiciel 32 bits sur des ordinateurs 64 bits. Pour les éditions 64 bits de Microsoft Windows, Microsoft avait besoin d'écrire une couche de compatibilité afin que les programmes 32 bits puissent toujours fonctionner sur le nouveau système 64 bits. C’est pourquoi certains programmes sont souvent installés dans un dossier appelé
Fichiers de programme (x86)
, oùx86
signifie «32 bits».Les couches de compatibilité tendent à être plus intimes avec le système natif que les émulateurs. VirtualBoxémule matériel pour les systèmes d’exploitation *, et les systèmes qu’il émule n’ont pas beaucoup d’interactions directes avec le système hôte. WoW64 est un couche de compatibilité en ce sens qu'il permet aux programmes 32 bits de s'exécuter de manière plus intégrée sur Windows 64 bits. WoW64 aide à faire des programmes compatible plutôt queimitant eux dans un environnement isolé.
UNE bibliothèque de traduction est un composant des couches de compatibilité. Chaque fois que le code binaire s'exécute de manière non native, une bibliothèque de traduction permet de rediriger les appels étrangers non natifs vers des appels natifs que le système peut comprendre. Les programmes d'assemblage écrits pour la TI-83 d'origine risquent de ne pas être compatibles avec les nouvelles calculatrices TI-83/84 Plus, car certains appels ayant un sens dans l'architecture de la TI-83 risquent de ne plus être valides dans la TI-83/84 +. Une bibliothèque de traduction (probablement incluse dans des shells tels que MirageOS) garantit que les appels de la TI-83 sont dirigés vers les nouveaux emplacements mis à jour des calculatrices TI-83/84 +..
Code indépendant de la plateforme est écrit dans une langue qui est interprété par quelque chose qui fonctionne généralement en mode natif. Par exemple, PHP est un langage de programmation interprété et exécuté par le binaire PHP installé, déjà compilé. nativement pour les systèmes d'exploitation Windows, Mac et Unix. Le code PHP écrit par les scripteurs Web est indépendant de la plate-forme, ce qui lui permet de fonctionner sur plusieurs systèmes d'exploitation tant que PHP est installé sur ces systèmes d'exploitation..
Avez-vous quelque chose à ajouter à l'explication? Sound off dans les commentaires. Voulez-vous lire plus de réponses d'autres utilisateurs de Stack Exchange doués en technologie? Découvrez le fil de discussion complet ici.