Warum zeigt readelf "System V" als mein Betriebssystem anstelle von Linux an?


10

Ich habe ein kleines C-Programm (2 Codezeilen) mit gcc kompiliert, um zu versuchen, das ELF-Dateiformat zu verstehen. Wenn readelf -hich eine Objektdatei mache, habe ich in der Kopfzeile:

OS/ABI:                            UNIX - System V 

Ich verwende Fedora. Warum ist es nicht stattdessen Linux?

Edit : Ich habe kompiliert

int main(){
  int x = 0;
  x++;
}

mit gcc -o main.o -c main.c. Meine gcc Version ist

gcc (GCC) 4.5.1 20100924 (Red Hat 4.5.1-4) 

Bitte zeigen Sie uns i) den Code, den Sie kompiliert haben ii) die Ausgabe von gcc --versionund iii) den genauen Befehl, den Sie zum Kompilieren verwendet haben.
Terdon

Ich habe die Frage entsprechend bearbeitet.
Alex_reader

Ich habe gerade readelf -h /bin/lsauf Debian Gnu / Linux gemacht. Es zeigte sich auch OS/ABI: UNIX - System V. Ich vermute, dass der ABI auf mehr als einem Kernel verwendet wird, nicht nur auf Linux. Ich weiß auch, dass Linux mehr als ein ABI unterstützt.
Strg-Alt-Delor

6
Wikipedia sagt, dass es [das OSABI-Feld im ELF-Header] oft auf 0 [SysV] gesetzt wird, unabhängig von der Zielplattform
Stéphane Chazelas

1
In diesem Feld wird angegeben, ob die ELF-Datei betriebssystemspezifische Erweiterungen verwendet. Der Standardwert ist 0. Eine ausführlichere Beschreibung finden Sie hier (unter EI_OSABI).
Leiaz

Antworten:


8

Es gibt nur wenige Unterschiede zwischen ausführbaren ELF-Dateien auf verschiedenen Plattformen. "UNIX - System V" ist die gemeinsame Basis; In System V stammt das ELF- Format. Der entsprechende numerische Wert ist 0. Dieser Wert gibt an, dass die ausführbare Datei keine betriebssystemspezifische Erweiterung verwendet. Zumindest Debian GNU / Linux konfiguriert GCC / binutils so, dass ausführbare Dateien generiert werden, wobei dieses Feld standardmäßig auf 0 gesetzt ist.


3
Und der ELF-Standard sagt 0 bedeutet "ELFOSABI_NONE 0 Keine Erweiterungen oder nicht spezifiziert" sco.com/developers/gabi/2003-12-17/ch4.eheader.html
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.