В чем разница между выпуском и версией ядра / дистрибутива?

Я использую следующую команду, чтобы увидеть имя, выпуск и версию ядра.

-bash-4.1$ uname -s Linux -bash-4.1$ uname -r 2.6.32-279.el6.x86_64 -bash-4.1$ uname -v #1 SMP Wed Jun 13 18:24:36 EDT 2012 

В чем разница и взаимосвязь между выпуском и версией ядра? Благодаря!

Аналогичный вопрос для дистрибутива Linux (например, Ubuntu, Mint, …)? Т.е. какова разница и связь между выпуском и версией дистрибутива Linux?

uname -r

Первая – это строка версии, которая использовалась при компиляции ядра. Это роль -r .

 $ uname -r 3.13.7-100.fc19.x86_64 

Эта строка может немного запутываться, но базовая часть (все до первой тире) является частью реальной версии ядра Linux, которую вы используете. Остальное относится к вариантам упаковки, которые были выбраны.

Что я имею в виду?

  1. Ну, в приведенном выше сценарии 3.13.7 будет фактической версией ядра.
  2. -100 сообщает вам, что различные пакеты патчей были применены к нему пакетом Fedora, и они отслеживают эти дополнительные патч-комплекты, добавляя число, чтобы отслеживать их, а также означать, что это ядро ​​является базовым ядром 3.13.7 + все, что является частью этого -100 .
  3. Ядро было упаковано для версии 19 Fedora ( fc19 ).
  4. Он был упакован для * x86_64 * (64-разрядной) архитектуры.

uname -v

Для -v это показывает вам, когда ядро ​​было скомпилировано / построено.

 $ uname -v #1 SMP Mon Mar 24 21:53:16 UTC 2014 

В моей системе Fedora 19 вы можете убедить себя, что это действительно так, если посмотреть, когда пакет ядра был фактически создан через RPM.

 $ rpm -qi kernel-$(uname -r) | grep -E "Build Date" Build Date : Mon 24 Mar 2014 06:31:17 PM EDT 

Даты сборки немного отличаются, так как uname -v – это то, что было «сожжено» в ядре, когда оно было скомпилировано. Дата сборки в RPM начинается с того момента, когда RPM запустило время компиляции ядра во время сборки пакета.

Отпустите версию ядра с добавленной информацией о пакете / выпуске. Если мы примем ваш пример 2.6.32-279.el6.x86_64 , это означает:

  • 2.6.32 Ядро Linux, это базовая версия и сообщает вам версию ядра Linux в большинстве дистрибутивов и пакетов.
  • 279 – это конкретная версия пакета. el6 предлагает свой Enterprise Linux (RHEL / CentOS). Что происходит в этих дистрибутивах, так это то, что они используют одну и ту же версию ядра только для важных патчей и просто добирают номер пакета каждый раз, чтобы ваш менеджер пакетов мог его обновить. Этот тег версии является специфичным для распространения и может варьироваться в разных дистрибутивах и менеджерах пакетов. Он выбирается во время компиляции.

Версия показывает, что ядро ​​было скомпилировано.