Если вы долгое время пользовались Linux, вы должны знать, что дистрибутивы Linux имеют уникальные версии, и каждая версия имеет определенное кодовое имя. Ядро Linux также имеет разные номера версий, которые служат идентификатором серии, к которой принадлежит ядро. Однако есть разница между тем, как формировались версии ядра ранее, и тем, как Линус Торвальдс называет их сейчас.

К концу вы лучше познакомитесь со схемой управления версиями ядра Linux и почувствуете себя более удобное чтение номеров версий ядра и определение различных функций, связанных с конкретный выпуск.

Традиционное управление версиями ядра Linux

Когда Линус впервые приступил к разработке ядра, используемая система управления версиями просто состояла из схемы возрастающих переменных, начинающейся с нуля (0.x). Первоначально Линус был единственным, кто работал над проектом, и этой системы управления версиями было достаточно для документирования и распространения новых выпусков ядра.

Вот некоторые из выпусков ядра, которые следовали этой схеме именования:

instagram viewer
Кредит изображения: Википедия

Позже, по мере того, как все больше разработчиков начали вносить свой вклад в проект, количество исправлений и исправлений увеличилось. значительно возросло, было решено, что эта схема управления версиями не подходит для таких программ, как ядро. И, начиная с версии 1.0, Линус принял новую схему с несколькими дополнительными переменными.

Внедрение более описательной системы управления версиями

В 1994 году, с выпуском ядра Linux 1.00, Линус начал использовать новую систему управления версиями, в синтаксисе которой использовались три переменные: "азбука". Эти переменные (a, b и c) представляют основной выпуск, вспомогательный выпуск и номер редакции для конкретного выпуска ядра соответственно.

Возьмем в качестве примера ядро ​​Linux 1.1.95. Вы можете расшифровать его как первый основной выпуск, первый дополнительный выпуск и 95-ю версию.

В то время четные младшие номера версий обозначали стабильные выпуски ядра, а нечетные — разрабатываемые выпуски. Было важно иметь отдельные ветки, чтобы разработчики могли добавлять и тестировать новые функции в ядре, не затрагивая стабильную ветку.

Разработчики ядра добавляют и улучшают новые функции в ветке разработки, пока она не станет достаточно стабильной для выпуска ядра LTS. Ядро LTS 3.2 было разработано путем стабилизации новых функций версии 3.1, а также новой ядро разработки 3.3 разветвлено из ядра 3.2, чтобы освободить место для новых функций, которые затем будут представлены в Линукс 3.4.

Начиная с ядра Linux 2.4, четвертая переменная в имени ядра обозначала выпуски исправлений. Можно сказать, что версия 2.4.37.10 — это десятый патч-релиз для ядра 2.4.37.

Выпуск исправления не означает количество проблем, исправленных в выпуске ядра. Вместо этого он подсчитывает, сколько раз было выпущено обновленное ядро ​​после устранения обнаруженных проблем.

Вплоть до Linux 2.6 использовалась эта система управления версиями, и она эффективно отличала одну версию от других. Добавление количества ревизий и выпусков исправлений в номер версии было описательным, но это означало наличие более длинных и сложных версий ядра. И снова требовалась новая, лучшая схема.

Как теперь называются версии ядра Linux?

В Linux версии 3.0 Линус убрал четвертую переменную из номера версии. Теперь версия ядра формируется по синтаксису: азбука, где a, b и c — основной выпуск, вспомогательный выпуск и число редакций соответственно. Эта схема управления версиями аналогична той, что использовалась между версиями ядра 1.0 и 2.4.

Благодаря достижениям в системы контроля версий, участники теперь могут беспрепятственно работать над стабильными ветками и добавлять новые функции, не нарушая случайно уже работающие стабильные выпуски. Поэтому использование четных и нечетных младших номеров версий для стабильных и рабочих ветвей ядро стало ненужным после введения версии ядра 4.0 и первого выпуска LTS (4.1) в в 4.х серия имела нечетный второстепенный номер версии.

Вы также можете заметить некоторые символы в конце номера версии, например rcX. Кандидаты на проверку (или сокращенно «rc») — это предварительные выпуски и версии ядра до исправления, которые разработчикам необходимо исправить для устранения ошибок и других проблем. Это замена разрабатываемых выпусков, которые ранее обозначались нечетным дополнительным номером версии.

Хотя эти выпуски специально зарезервированы для разработчиков ядра, поэтому они могут исправить обнаруженные проблемы и реализовать новые функции, вы также можете загрузите и протестируйте этих кандидатов на проверку ядра, если хотите, но, как правило, это не рекомендуется, учитывая, что именно здесь происходит большая часть разработки. бывает. Последняя предварительная версия ядра на момент написания этой статьи: 5.19-rc6.

Для создания новых версий предыдущая переменная увеличивается, когда значение переменной достигает определенного числа. Например, основная версия обновляется до следующей цифры всякий раз, когда количество дополнительных версий приближается к 20.

Линус упоминается в его письмо по разработке ядра 5.0 что он просто обновил основной номер до пяти, потому что количество второстепенных выпусков стало слишком большим, чтобы сосчитать на пальцах рук и ног (20!). Аналогично, согласно ядро.org, основной номер версии увеличивается, когда число после первой точки начинает казаться «слишком большим». Окончательная версия ядра в 3.х серия была 3.19 и последняя мажорная 4.х Серия ядра была 4.20, которая затем была увеличена до 5.0.

Начиная с версии 3.0, ядро Linux следует этой схеме управления версиями, и она доказала свою эффективность на протяжении трех основных выпусков ядра (версии 3.х, 4.х, а также 5.х).

Идентификация выпуска ядра Linux с помощью номеров версий

Учитывая огромное количество выпущенных версий ядра Linux, необходима правильная система для идентификации и отличия конкретной версии от других. Благодаря новой схеме управления версиями ядра теперь можно эффективно идентифицировать и сравнивать версии ядра, а также легко узнать, какая версия ядра является последней, а какая выпущена раньше.

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