Bitte korrigieren Sie mich, wenn ich falsch liege, da ich mich nicht als Experte für dieses Thema betrachten würde, aber nach meinen Recherchen scheinen einige Aussagen in den Antworten / Kommentaren nicht ganz korrekt zu sein. Um dies zu erläutern, zitiere ich Sätze und kommentiere sie:
Der Abschnitt enthält statische Daten für den Linker und segmentiert dynamische Daten für das Betriebssystem
Gemäß diesem LWN-Artikel verwendet der Kernel nur den Segmentheader vom Typ PT_INTERP, PT_LOAD und PT_GNU_STACK, um ausführbare Dateien in den Speicher zu laden. Es gibt jedoch auch andere Segmenttypen wie PHDR, DYNAMIC, NOTE, GNU_EH_FRAME, GNU_PROPERTY, GNU_RELRO, die ignoriert werden.
Afaiu, das GNU_RELRO-Segment ist wie ein Dummy-Segment; Wenn es vorhanden ist, verwendet der Loader dies als Flag, um die Umzugsdaten schreibgeschützt zu machen. Aber der Loader ist nicht Teil des Betriebssystems, zumindest für Linux.
Bei den anderen Segmenttypen habe ich nicht herausgefunden, wofür sie tatsächlich verwendet werden. Sie erscheinen mir überflüssig, da es entsprechende Abschnitte gibt, die im Grunde die gleichen oder mehr Informationen enthalten.
Nach meinem Verständnis ist diese Antwort daher nur eine vereinfachte Annäherung an eine chaotischere Wahrheit.
Abschnitte sind mit Segmenten enthalten
Sie können ausführbare ELF-Dateien ohne Abschnittskopf haben, und verschiebbare (* .o) Dateien haben normalerweise keinen Segmentkopf. Darüber hinaus kann man in der Readelf-Ausgabe in der akzeptierten Antwort den Abschnitt .interp in mehreren Segmenten sehen. Ich sehe keine Eindämmungsbeschränkung.
Die Segmente enthalten Informationen, die zur Laufzeit benötigt werden, während die Abschnitte Informationen enthalten, die während der Verknüpfung benötigt werden.
Auch dies scheint eine Vereinfachung zu sein. Der Runtime Loader (oder "Interpreter") benötigt auch die Abschnitte zum Laden gemeinsam genutzter Bibliotheken, zum Auflösen von Symbolen, zum Verschieben usw.
Zusammenfassend lässt sich sagen, dass die gegebenen Antworten wahrscheinlich vernünftige allgemeine Annäherungen sind, es jedoch anscheinend komplizierter wird, wenn man sich die Details ansieht.