Создатель Linux Линус Торвальдс официально выпустил ядро Linux 4.0, знаменующее первое крупное изменение в номере версии Linux со времени дебюта Linux 3.0 в 2011 г. Хотя смена номеров часто ассоциируется с крупными изменениями самого ПО, в разработках Linux выбор главной цифры в номере версии более произволен. Однако Linux 4.0 содержит ряд новаторских функций, в том числе установку обновлений ядра без перезагрузки системы, что поспособствует дальнейшему повышению уровня готовности серверов.

Ядро Linux 4.0 изначально значилось как Linux 3.20, но было переименовано, после того как в феврале Торвальдс провел неформальный онлайновый опрос на тему пора или нет менять основной номер версии. Опрос набрал 31 581 голос «фолловеров» Торвальдса в Google+, и 56% высказались в пользу Linux 4. Первый раз о желательности смены номера версии ядра Linux Торвальдс публично заговорил в ноябре 2013 г., когда вышло ядро Linux 3.12. Предыдущее переключение на новый номер ядра — Linux 3.0 — произошло по достижении версии 2.6.39, и в то время Торвальдс заявил, что ему не нравятся длинные ряды цифр.

«Чего-то особенного с функциональной стороны 4.0 не имеет, — написал Торвальдс в своем сообщении о выходе Linux 4.0. — Значительная работа была проделана над новой инфраструктурой обновлений ядра, но в реальности это вряд ли было серьезным аргументом для смены номера версии, так как в других версиях присутствовали куда большие перемены».

По словам Торвальдса, ядро Linux 4.0 характеризуется «солидным прогрессом в улучшении кода». В более широкой экосистеме Linux обновление ядра без перезагрузки системы — функция уже не новая. У Oracle есть технологическая возможность под названием Ksplice, позволяющая обновлять ядро «на лету», хотя Ksplice не является открытым исходным кодом, напрямую интегрированным в основное upstream-ядро Linux.

Попытки разработать интегрированную функцию обновления основного ядра в реальном времени ускорились в 2014 г. с появлением двух конкурирующих подходов. Red Hat занялась разработкой своего подхода kpatch, а SUSE стала создавать технологию под названием kgraft. Функция обновления ядра в рабочем режиме, интегрированная в ядро Linux 4.0, стала результатом кооперации между Red Hat и SUSE, приведшей к объединению их собственных подходов.

Разработчик ядра Linux Джири Косина пояснил в сообщении рассылки Linux Kernel Mailing List, что новая кодовая база, созданная Red Hat и SUSE, предоставляет инфраструктуру для функционального обновления системы Linux в реальном времени. По его словам, «она относительно проста и минималистична и при этом максимально использует существующую инфраструктуру ядра (конкретно, ftrace). Она также самодостаточна в том смысле, что не затрагивает никакую другую подсистему ядра (она вообще не затрагивает какой-либо другой код).»

Помимо нового кода для обновлений ядра в реальном времени в ходе разработки Linux 4.0 был утвержден новый кодекс поведения «Code of conflict» участников работы над ядром. Этот кодекс является попыткой помочь в разрешении возможных конфликтов между разработчиками ядра Linux.

В принятом документе, в частности, говорится: «Будучи рецензентом кода, пожалуйста постарайтесь вести себя цивилизованно и концентрировать внимание на технических вопросах. Все мы люди, и каждому участнику работы может что-то сильно не нравиться. Старайтесь помнить бессмертные слова Билла и Теда (персонажи известного приключенческого фильма) „будьте великодушны друг к другу“».

Версия для печати