Le Format Exécutable et Relocable (ELF) est un format de fichier standard commun pour les exécutables, le code objet, les bibliothèques partagées et les vidages mémoire (core dumps). Il est utilisé sur de nombreux systèmes d'exploitation de type Unix, y compris Linux, Solaris, FreeBSD, et d'autres. Les fichiers ELF sont conçus pour être flexibles et extensibles, permettant à une variété d'architectures et de systèmes d'exploitation d'utiliser la même structure de base. Le format se compose d'un en-tête (header), d'en-têtes de programme (program headers), d'en-têtes de section (section headers) et des données elles-mêmes. L'en-tête décrit la structure globale du fichier, y compris le point d'entrée pour l'exécution. Les en-têtes de programme décrivent les segments, qui sont des régions contiguës du fichier chargées en mémoire lors de l'exécution. Les en-têtes de section décrivent les sections, utilisées pour l'édition de liens (linking) et le débogage. Les données contiennent le code et les données réels du programme. Les fichiers ELF peuvent être liés statiquement, ce qui signifie que tout le code nécessaire est inclus dans le fichier exécutable, ou liés dynamiquement, ce qui signifie qu'une partie du code est chargée à partir de bibliothèques partagées à l'exécution. Cela permet d'avoir des fichiers exécutables plus petits et des mises à jour plus faciles des bibliothèques partagées.