Pourquoi readelf affiche-t-il «System V» comme mon système d'exploitation au lieu de Linux?


10

J'ai compilé un petit programme C (2 lignes de codes) avec gcc pour essayer de comprendre le format de fichier ELF. Faire un readelf -hsur le fichier objet, j'ai dans l'en-tête:

OS/ABI:                            UNIX - System V 

J'utilise Fedora, alors pourquoi n'est-ce pas Linux à la place?

Edit : j'ai compilé

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

avec gcc -o main.o -c main.c. Ma version gcc est

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

Veuillez nous montrer i) le code que vous avez compilé ii) la sortie de gcc --versionet iii) la commande exacte que vous avez utilisée pour le compiler.
terdon

J'ai modifié la question en conséquence.
alex_reader

Je viens de le faire readelf -h /bin/lssur Debian GNU / Linux. Cela a également montré OS/ABI: UNIX - System V. Je suppose que l'ABI est utilisé sur plusieurs noyaux, pas seulement Linux. Je sais également que Linux prend en charge plus d'un ABI.
ctrl-alt-delor

6
Wikipedia dit qu'il [le champ OSABI dans l'en-tête ELF] est souvent défini sur 0 [SysV] quelle que soit la plate
Stéphane Chazelas

1
Ce champ indique si le fichier ELF utilise des extensions spécifiques au système d'exploitation, la valeur par défaut est 0. Description plus détaillée ici (sur EI_OSABI).
Leiaz

Réponses:


8

Il existe peu de différences entre les exécutables ELF sur différentes plates-formes. «UNIX - System V» est le terrain d'entente; Le système V est à l'origine du format ELF . La valeur numérique correspondante est 0. Cette valeur indique que l'exécutable n'utilise aucune extension spécifique au système d'exploitation. Debian GNU / Linux, au moins, configure GCC / binutils pour générer des exécutables avec ce champ mis à 0 par défaut.


3
Et la norme ELF indique que 0 signifie "ELFOSABI_NONE 0 Aucune extension ou non spécifié" sco.com/developers/gabi/2003-12-17/ch4.eheader.html
Ciro Santilli 冠状 病毒 审查 六四 事件 法轮功
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.