Каково поле номера версии в выводе команды файла Linux

Если я делаю следующую команду на своем исполняемом файле, названном "версией", скомпилированной на Ядре Fedora 11, я получаю этот вывод

версия файла

версия: 32-разрядный исполняемый файл LSB ELF, Intel 80386, версия 1 (SYSV), динамично связанный (совместно использованное использование освобождает), для GNU/Linux 2.6.18, не разделенный

Каково значение 2.6.18 чисел к концу и это какое-либо использование в различении клиентам, какую версию некоторого программного обеспечения они должны загрузить?

Из того, что я посмотрел на до сих пор, это число определенно нет

  1. Версия ядра
  2. libc версия
  3. Что-либо, чтобы сделать с lsb_release

Я хотел бы заставить некоторый легкий идентификатор позволять клиентам знать, какой двоичный файл выпускают, они должны загрузить, который они должны идеально смочь определить путем ввода команды (как uname-a, хотя это, очевидно, не то в этом случае).

Спасибо

6
задан Simon K 25 January 2010 в 16:37
поделиться

1 ответ

Это версия ядра машины Binary была включено . Если вы используете предложенные двоичные файлы из вашего распределения, это версия ядра машины поставщика распределения, вероятно, на его компиляционной ферме.

Это актуально, например При рассмотрении Syscalls. Скажите, что ваш бинарный использует SYSCALL NO. X И вы используете ядро, которое не поддерживает x , но еще хуже присвоен Syscall No. x к другому языку.

У пользователя API Vanilla Linux Kernel стабильна. Это означает, что каждый сих пор доступен в версии Linux A , доступен в версии Linux B , если A <= B . Но может случиться, что некоторые разработчики выделяют свою собственную версию развития Linux (что-то вроде Linux-2.6.18-XY ) и S / он реализует новый Syscall. Если S / он теперь компилирует двоичное использование этой версии ядра, двоичный файл помечается этой версией. Итак, вы позже сможете узнать, что это может или не может работать.

BTW, /usr/include/asm/unistd_32.h Содержит номера Syscall, выдержка:

[...]
#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
[...]
7
ответ дан 17 December 2019 в 00:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: