Новый план разработки Linux-ядра c продлённым сроком поддержки
Грег Кроа-Хартман, мантейнер нескольких подсистем ядра Linux, представил на рассмотрение разработчиков предложение по изменению процесса поддержки серии "longterm", отличающейся длительным сроком выпуска обновлений.
🕛 14.08.2011, 19:47
В соответствии с предложенным планом, новые longterm-ветки будут создаваться через фиксированный промежуток времени - раз в год. Срок поддержки таких веток также будет фиксирован и составит два года. Обновления для обычных стабильных веток ядра как и прежде будут выпускаться до момента выпуска следующей версии. Например, обновления для ядра 3.0 будут выпускаться до тех пор, пока не выйдет релиз 3.1, но если ветка 3.0 будет признана longterm, срок выпуска обновлений составит два года. Таким образом будут поддерживаться только две longterm-ветки и одна последняя стабильная ветка ядра.В настоящее время наблюдается неразбериха в выборе версий для длительной поддержки, инициаторами поддержки longterm-веток как правило являются дистрибутивы. Например, текущее longterm-ядро 2.6.32 используется в Debian 6, RHEL 6, Ubuntu 10.04 LTS и SUSE Linux Enterprise 11. Среди longterm-ядер также числятся 2.6.27, 2.6.33 и 2.6.34, 2.6.35, поддержкой которых занимаются отдельные мэйнтнейнеры, представляющие интересы различных дистрибутивов и компаний. Например, ветку 2.6.34 курирует компания Wind River, в ветке 2.6.35 заинтересован проект Meego и организация CE Linux Forum. Интенсивность выпуска обновлений для разных версий longterm-ядер существенно отличается, например, ветка 2.6.27 не обновлялась с апреля, а 2.6.34 с июня, ветки 2.6.33 и 2.6.35 обновились в августе, но до этого обновление было в апреле.
Релиз последней longterm-версии 2.6.35 вышел 2 августа 2010 года и с тех пор желающих взять в свои руки длительную поддержку более новых версий не находится. Всплеск выпуска LTS-релизов пришелся на прошлый год, в этом и следующем году дистрибутивы довольствуются поддержкой уже существующих longterm-веток. Тем временем пользователями ядра являются не только дистрибутивы: различные компании, группы и проекты все чаще обращаются к разработчикам ядра с просьбой присвоения одному из последних релизов статуса longterm-версии. Выпуск 2.6.35 уже устарел, а обычные версии для своих продуктов выбирать рискованно, есть шанс что поддержка выбранного наугад выпуска будет прекращена сразу после выхода следующей версии. В связи с этим, Грег Кроа-Хартман предлагает перейти на схему планового и предсказуемого создания longterm-веток. Разработчики будут изначально знать, что определенная ветка будет поддерживаться дольше остальных и смогут заранее приступить к её использованию.
Двухлетний срок поддержки для longterm-веток веток был выбран исходя из предположения, что типичное время жизни потребительского устройства на рынке составляет 1-2 года. Производителям Linux-прошивок для потребительских устройств важно получить обновления с исправлением проблем на всем протяжении жизненного цикла их продукции. Крупные компании, такие как montaVista и WindRiver способны обеспечить самостоятельно поддержку ядра для своих промышленных дистрибутивов для встраиваемых устройств. Более мелкие производители могут уповать лишь на стандартный процесс выпуска обновлений и в этом плане разработчики ядра готовы им помочь и взять на себя подготовку обновлений для ядра Linux. Оказать посильную помощь в работе над longterm-ядрами также готовы сообщества CE Linux Forum и Linaro, которые заинтересованы в совместной работе с другими участниками сообщества. В последнее время в проекте Android используются свежие версии ядра Linux, в отличие от высокоуровневой платформы, код вносимых в ядро исправлений и изменений публикуется регулярно, как того требует лицензия GPL. Поэтому, проект Android также может оказаться полезным при работе над longterm-ветками.
История выпусков с длительным сроком поддержки началась с ядра 2.6.16, поддержкой которого Грег Кроа-Хартман занимался в силу своих должностных обязанностей при работе в Novell. Так как кроме работы над SUSE, Грег достаточно активно участвовал в разработке основного ядра, ему было проще обеспечить выпуск обновлений не за закрытыми дверями, а в рамках основного цикла разработки ядра. Для Novell публичное развитие ветки с расширенной поддержкой было выгодно тем, что ветка активно использовалась сторонними проектами и поэтому подвергалась значительно более широкому тестированию, чем можно было достигнуть в рамках небольшой группы разработчиков SUSE. Впоследствии, разработчики других дистрибутивов осознали, что им приходиться дублировать работу друг друга, поддерживая собственные наборы патчей для пакетов с ядром. Для упрощения работы на одной из конференций было достигнуто неофициальное соглашение о сотрудничестве - почти все значительные дистрибутивы решили использовать для своих продуктов с длительным временем поддержки ядро 2.6.32, что позволило существенно сэкономить время и трудозатраты.