Это версия ядра компьютера, на котором скомпилирован . Если вы используете предварительно скомпилированные двоичные файлы из своего дистрибутива, это версия ядра компьютера поставщика дистрибутива, возможно, в его ферме компиляции.
Это актуально, например, при рассмотрении системных вызовов. Скажем, ваш бинарный файл использует системный вызов no. X
и вы используете ядро, которое еще не поддерживает X
или, что еще хуже, назначило системный вызов no. X
на другой системный вызов.
Ванильный пользовательский API ядра Linux стабилен. Это означает, что каждый системный вызов, доступный в версии Linux A
, доступен в версии Linux B
, если A <=B
. Но может случиться так, что какой-то разработчик выпускает свою собственную версию Linux для разработки (что-то вроде linux-2.6.18-xy
), и он / она реализует новый системный вызов. Если он / она теперь компилирует двоичный файл, используя эту версию ядра, двоичный файл будет помечен этой версией. Итак, позже вы сможете узнать, что это может или не может работать.
Кстати, /usr/include/asm/unistd_32.h
содержит номера системных вызовов, выдержка:
[...]
#define __NR_restart_syscall 0
#define __NR_exit 1
#define __NR_fork 2
#define __NR_read 3
#define __NR_write 4
#define __NR_open 5
[...]