Ответ 1
Исполняемый и связанный формат wikipage имеет приятное изображение, объясняющее ELF, а также разницу между заголовком заголовка программы и разделами. См. Также эльф (5)
Заголовок [initial] программы определяет сегменты (в адресном пространстве process, выполняющий этот исполняемый файл ELF), запроектированный в виртуальной памяти (исполняемая точка зрения) в execve (2) время. Заголовок [final] разделяет определяющие разделы (с точки зрения привязки, для ld (1) и т.д.). Каждый раздел относится к сегменту (и может, или нет, быть видимым - т.е. отображен в память - во время выполнения). Заголовок файла ELF сообщает, где таблица заголовка программы и таблица заголовков разделов.
Используйте также objdump (1) и readelf (1) изучить несколько файлов ELF (исполняемые файлы, общие объекты, связующие объекты), существующие в вашей системе Linux.
Левин Ссылки и загрузчики в книге есть глава, подробно объясняющая это.
И бумага Drepper Как писать общие библиотеки также имеет хорошее объяснение.