O Formato Executável e Ligável (ELF - Executable and Linkable Format) é um formato de arquivo padrão comum para executáveis, código objeto, bibliotecas compartilhadas e despejos de núcleo (core dumps). É utilizado em muitos sistemas operacionais do tipo Unix, incluindo Linux, Solaris, FreeBSD e outros. Os arquivos ELF são projetados para serem flexíveis e extensíveis, permitindo que uma variedade de arquiteturas e sistemas operacionais utilize o mesmo formato básico. O formato consiste em um cabeçalho (header), cabeçalhos de programa (program headers), cabeçalhos de seção (section headers) e os dados em si. O cabeçalho descreve a estrutura geral do arquivo, incluindo o ponto de entrada para execução. Os cabeçalhos de programa descrevem segmentos, que são regiões contíguas do arquivo carregadas na memória durante a execução. Os cabeçalhos de seção descrevem seções, que são usadas para ligação (linking) e depuração (debugging). Os dados em si contêm o código e os dados reais do programa. Arquivos ELF podem ser ligados estaticamente, o que significa que todo o código necessário está incluído no arquivo executável, ou ligados dinamicamente, o que significa que parte do código é carregada de bibliotecas compartilhadas em tempo de execução. Isso permite arquivos executáveis menores e atualizações mais fáceis de bibliotecas compartilhadas.