为什么 readelf 显示“System V”作为我的操作系统而不是 Linux?

为什么 readelf 显示“System V”作为我的操作系统而不是 Linux?

我用 gcc 编译了一个小 C 程序(2 行代码)来尝试理解 ELF 文件格式。readelf -h对目标文件进行操作,我在标头中有:

OS/ABI:                            UNIX - System V 

我正在使用 Fedora,那为什么不使用 Linux 呢?

编辑: 我编译了

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

gcc -o main.o -c main.c。我的 gcc 版本是

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

答案1

不同平台上的 ELF 可执行文件之间几乎没有差异。 “UNIX - System V”是共同点;系统V是哪里极低频格式来自。相应的数值为 0。该值表示可执行文件不使用任何操作系统特定的扩展名。 Debian GNU/Linux 至少配置 GCC/binutils 来生成可执行文件,并且该字段默认设置为 0。

相关内容