为什么linux版本的系统二进制文件与系统发布版本不一致?

为什么linux版本的系统二进制文件与系统发布版本不一致?,linux,file,kernel,Linux,File,Kernel,当使用file命令检查二进制文件的属性时,我注意到如下内容的输出: $ file /bin/ls ls: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=9567f9a28e66f4d7ec4baf31cfbf68d0410f0ae6, str

当使用file命令检查二进制文件的属性时,我注意到如下内容的输出:

$ file /bin/ls
ls: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=9567f9a28e66f4d7ec4baf31cfbf68d0410f0ae6, stripped

$ file /bin/pwd
pwd: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=fb34777a0e4532338c1f64bec0a8372ee619b9e7, stripped

$ uname -sr
Linux 4.19.9-arch1-1-ARCH
输出中有“for GNU/linux 3.2.0”

我在Ubuntu18.04(内核版本4.15)和ArchLinux(内核版本4.19)上都进行了测试,但是对于系统二进制文件,file属性始终为“Linux3.2.0”

我想知道这个标签是什么意思,为什么它与系统内核版本不一致

此标记显示二进制文件是使用glibc编译的,该glibc生成的二进制文件需要此特定的minimun linux内核版本才能运行。
版本号在glibc的using-config选项--enable-kernel处设置,并由二进制文件的SHT_-NOTE部分上的链接器复制(从该部分由file命令读取)。

谢谢@Achilleas Kotsis。但为什么3.2.0如此特殊?为什么不同的linux版本使用相同的版本约束?您可以看到。这很可能是版本的通用glibc要求