Question

est Windows Portable Executable sont vraiment portables sur les architectures de machines? Si oui, comment cela fonctionne? Sinon, qu'est-ce que « Portable Executable » signifie ou quelle partie de l'exécutable est portable?

Merci, Siva Chandran

Était-ce utile?

La solution

Les executables ne sont pas eux-mêmes portable. le format PE est « portable » dans le sens où executables pour différentes architectures utilisent le même format de PE, mais le code exécutable dans un fichier PE est spécifique à une architecture unique processeur.

Dans la pratique, cela signifie que beaucoup du même compilateur et le code de liaison peut être réutilisé pour les architectures différentes, et que les outils d'examen peut executables (dans une certaine mesure) pour travailler executables « étrangers ».

(je parle ici des exécutables natifs - ensembles .NET utilisent également le format PE et peuvent être vraiment portable.)

Autres conseils

De Wikipédia: « Le terme « portable » fait référence à la polyvalence du format dans de nombreux environnements d'architecture logicielle du système d'exploitation ».

http://en.wikipedia.org/wiki/Portable_Executable

Eh bien, il est portable au moyen de ce que le format peut être utilisé pour les exécutables sur différentes plateformes (SkyOS utilisé avant ils sont passés à ELF). Il n'est pas portable au moyen de la plate-forme du code indépendant ou que si vous produisez un fichier PE sur un système d'exploitation qu'il fonctionne sur un autre.

fichiers PE-ne sont que des conteneurs pour les données binaires d'application. Ils permettent de cibler différentes architectures de processeurs (ou même des architectures logicielles non-CPU comme .Net). Voilà pourquoi ils sont appelés « portables ».

Chaque image d'application binaire qu'ils contiennent, est cependant adapté à exactement une architecture.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top