Исполняемый и компонуемый формат (ELF) является общим стандартным форматом файлов, используемым для исполняемых файлов, объектного кода, разделяемых библиотек (shared libraries) и дампов памяти (core dumps). Он широко применяется во многих Юникс-подобных операционных системах, включая Linux, Solaris, FreeBSD и другие. Файлы ELF разработаны как гибкие и расширяемые, что позволяет различным архитектурам и операционным системам использовать один и тот же базовый формат. Структура формата состоит из заголовка (header), заголовков программ (program headers), заголовков секций (section headers) и самих данных. Заголовок описывает общую структуру файла, включая точку входа для начала выполнения. Заголовки программ описывают сегменты (segments) — смежные области файла, которые загружаются в память во время выполнения программы. Заголовки секций описывают секции (sections), используемые для компоновки (линковки) и отладки. Сами данные содержат фактический код и данные программы. Файлы ELF могут быть статически скомпонованы (statically linked), что означает включение всего необходимого кода непосредственно в исполняемый файл, или динамически скомпонованы (dynamically linked), когда часть кода загружается из разделяемых библиотек во время выполнения. Динамическая компоновка позволяет создавать исполняемые файлы меньшего размера и упрощает обновление разделяемых библиотек.