Je comprends que chaque CPU/architecture a son propre jeu d'instructions, donc un programme (binaire) écrit pour un CPU spécifique ne peut pas fonctionner sur un autre. Mais ce que je ne comprends pas vraiment, c'est pourquoi un fichier exécutable (binaire comme .exe par exemple) ne peut pas fonctionner sous Linux mais peut fonctionner sous Windows, même sur la même machine.
C'est une question de base, et la réponse que j'attends est que les .exe et autres formats binaires ne sont probablement pas des instructions machine brutes mais qu'ils contiennent des données qui dépendent du système d'exploitation. Si c'est vrai, à quoi ressemblent ces données dépendantes du système d'exploitation ? et, à titre d'exemple, quel est le format d'un fichier .exe et la différence entre celui-ci et les exécutables Linux ?
Existe-t-il une source où je peux obtenir des informations brèves et détaillées à ce sujet ?