Fichier exécutable

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
image illustrant l’informatique
Cet article est une ébauche concernant l’informatique.

Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations des projets correspondants.

Consultez la liste des tâches à accomplir en page de discussion.

Ce modèle est-il pertinent ? Cliquez pour en voir d'autres.
Cet article ne cite pas suffisamment ses sources (novembre 2015).

Si vous disposez d'ouvrages ou d'articles de référence ou si vous connaissez des sites web de qualité traitant du thème abordé ici, merci de compléter l'article en donnant les références utiles à sa vérifiabilité et en les liant à la section « Notes et références » (modifier l'article, comment ajouter mes sources ?).

En informatique et en technologies de l'information, un fichier exécutable, parfois (par métonymie) un programme, ou simplement un exécutable est un fichier contenant un programme et identifié par le système d'exploitation en tant que tel. Le chargement d'un tel fichier entraîne la création d'un processus dans le système, et l'exécution du programme, par opposition au fichier de données qui doit d'abord être interprété par un programme pour prendre sens.

Traditionnellement, le programme contenu dans un fichier exécutable contient lui-même des instructions codées dans un langage compréhensible par un processeur. Cependant, dans une acceptation plus générale, n'importe quel fichier contenant des instructions destinée à un interpréteur ou une machine virtuelle, comme des scripts ou du bytecode, peut aussi être considéré comme un exécutable.

Formats de fichiers exécutables[modifier | modifier le code]

Au sens large, un fichier exécutable peut prendre deux formes :

  • un fichier binaire, c'est le cas pour :
    • les programmes en langage machine, compilés (ou assemblés) pour un type de système donné, et dont les instructions sont exécutées directement par le processeur ;
    • les programmes en bytecode, compilés pour une architecture générique et devant être soit interprétés dans le cadre d'une machine virtuelle, soit « sur-compilés » vers un langage machine au moment de l'exécution ;
  • un fichier texte, c'est le cas pour les scripts, dont l'exécution est réalisée par un interpréteur (shell, perl, etc.).

Propriétés[modifier | modifier le code]

Les propriétés des fichiers binaires exécutables sont intimement liées au type de système d'exploitation.

Macintosh[modifier | modifier le code]

Sous les versions de Mac OS antérieures à Mac OS X, les différents types de fichiers (y compris les exécutables) sont identifiés par des informations stockées dans le fichier : le type et le créateur.

  • Le type indique la nature du fichier par un code alphanumérique à quatre positions (par exemple : 'APPL' pour une application, 'INIT' pour une extension système — sorte de patch désactivable au démarrage —, ou 'cDEV' pour un tableau de bord — application utilitaire utilisable depuis n'importe quel contexte applicatif).
  • Le créateur est un code de même format permettant, pour une application, de l'identifier de manière unique, et pour un fichier, de retrouver l'application permettant de l'ouvrir. Ces informations ont donc la même fonction que les extensions de noms de fichiers, tout en étant transparentes à l'utilisateur.

Dans Mac OS X, Apple a repris le même mode d'identification des catégories de fichiers, mais ajoute de manière systématique une gestion des extensions de noms de fichiers à la Unix, ce système d'exploitation étant basé sur un Unix.

UNIX[modifier | modifier le code]

Sous Unix, l'utilisateur doit avoir la permission pour pouvoir exécuter un fichier binaire exécutable. Aucune extension particulière n'est nécessaire pour qu'un fichier binaire exécutable puisse être lancé. Les programmes exécutables sont au format a.out, COFF ou ELF.

Un Langage de script indique généralement au système sa nature grâce à un en-tête appelé Shebang, suivi de l'interpréteur permettant de l'exécuter.

DOS/Windows[modifier | modifier le code]

Les fichiers exécutables sous DOS/Windows doivent porter un suffixe (extension) spécifique. En ligne de commande, cette extension est implicite pour lancer le programme (s'il y a plusieurs possibilités, le premier fichier trouvé est utilisé).

Les programmes précompilés possèdent l'extension .exe ou .com. Depuis Windows NT, ils sont au format PE ; auparavant ils étaient au format NENew Executable File Format, « new » faisant référence à CP/M, et aux fichiers .com —).

Il existe aussi des exécutables comprenant l'extension .APP utilisés par GEM.

Les scripts possèdent le suffixe .bat ou .cmd et sont interprétés par le programme COMMAND.COM (MS-DOS) ou cmd.exe (Windows NT et dérivés)[Informations douteuses] [?].

Cygwin[modifier | modifier le code]

Cygwin permet l'exécution de programmes MS-DOS/Windows et Unix de façon transparente pour l'utilisateur (pas de distinction visible au niveau de l'appel).

Cela pose parfois quelques soucis lorsque des programmes « de même nom » sont disponibles à la fois au format MS-DOS/Windows et Unix : par exemple appeler more en ligne de commande, peut (selon la configuration) appeler soit more (Unix), soit more.com (MS-DOS, à cause de l'ajout automatique de l'extension .com, .exe ou .bat).

Génération d'un fichier exécutable[modifier | modifier le code]

Les scripts sont éditables avec un simple éditeur de texte, mais peuvent aussi être générés automatiquement par d'autres programmes.

Les binaires sont issus d'un procédé de compilation (mettant généralement en jeu un compilateur, un assembleur, un éditeur de liens…) à partir de codes sources (modifiables par un éditeur de texte ou un environnement de développement intégré).

Liens externes[modifier | modifier le code]