Что мешает дистрибутивам использовать последнее ядро ​​Linux?

Большинство дистрибутивов Linux поставляются с определенной версией ядра и только обновляют его на точечных версиях ( xyz до xy(z+1) ) и для обновлений безопасности.

С другой стороны, я знаю, что Linux имеет очень строгую политику в отношении того, чтобы не изменять ядро ​​ABI и никогда не нарушать пространство пользователя. Фактически, у Линуса было много публичных язв, направленных на разработчиков, которые хотели (намеренно или случайно) изменить ядро, не поддерживая обратную совместимость.

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

3 Solutions collect form web for “Что мешает дистрибутивам использовать последнее ядро ​​Linux?”

Интерфейсы системного вызова ядра Linux очень стабильны. Но в ядре есть другие интерфейсы, которые не всегда совместимы.

  • /proc в основном стабильна, но в прошлом было несколько изменений (например, некоторые интерфейсы, перемещающиеся в /sys некоторое время после создания /sys ).
  • В прошлом было удалено несколько интерфейсов, связанных с устройством.
  • /sys содержит некоторые стабильные интерфейсы (перечисленные в Documentation/ABI/stable ), а некоторые – нет. Вы не должны использовать те, которых нет, но иногда это делают люди, а простое обновление безопасности и стабильности не должно нарушать для них вещи.
  • В прошлом существовали несовместимости с modutils (новые ядра, требующие более новой версии modutils), хотя я думаю, что это было довольно давно.
  • Также были несовместимы с процессом загрузки в некоторых необычных конфигурациях. Даже увеличение размера ядра может вызвать проблемы на некоторых встроенных системах.
  • Хотя внешние интерфейсы ядра довольно стабильны, внутренних интерфейсов нет. Правило для внутренних интерфейсов заключается в том, что каждый может их разбить, если они исправляют внутренние функции, но ответственность за исправление сторонних модулей лежит на авторе указанных модулей. В целом довольно много установок запускают сторонние модули: дополнительные драйверы для аппаратного обеспечения, которые не поддерживаются ядром (если аппаратное обеспечение поддерживается новым ядром, это нормально, но что, если это не так), проприетарные драйверы ( в то время как мир был бы лучшим местом, если бы все драйверы были с открытым исходным кодом, это не так, например, если вы хотите хорошую производительность 3D-графического процессора, вы в значительной степени застреваете с проприетарными драйверами) и т. д.
  • Некоторым людям необходимо перекомпилировать их ядро ​​или некоторые сторонние модули. Более свежие ядра часто не могут быть скомпилированы со старыми компиляторами.

В общем, основная причина не переключиться на более новую версию ядра – это сторонние модули.

Тем не менее, некоторые дистрибутивы предлагают новые ядра в качестве опции. Например, Debian делает ядра от тестирования доступными для пользователей стабильной версии через backports. Аналогично, на Ubuntu LTS доступны ядра из более свежих выпусков Ubuntu, но не используются по умолчанию. Это в основном полезно для новых установок на аппаратных средствах, которые еще не были поддержаны, когда распределение было завершено.

Я не работаю для распространения, но я могу думать по крайней мере по двум причинам:

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

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

Текущая политика разработки ядра заключается в том, что версия Linus продвигается вперед с блестящими новыми игрушками и не боится оптовых изменений. Некоторые версии считаются достаточно стабильными (с точки зрения разработки), чтобы сформировать основу для тщательного тестирования и стабилизации, обеспечивая стабильные ряды.

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

  • Отладка ядра Linux с помощью QEMU
  • Задержка загрузки из-за несуществующего диска SATA
  • Встроенная плата - установите debian
  • Нет цели «uImage» с Buildroot 2013.05
  • переход из режима пользователя в режим ядра
  • Virtualbox жалуется, что у меня нет заголовков
  • Что такое многоадресный просмотр и почему он прерывает UPnP / DLNA?
  • Где находится ядро ​​Linux в памяти?
  • Linux Восстановление операционной системы после аномального завершения
  • В каком дистрибутиве используется ядро ​​3.19 или выше
  • Поскольку последние обновления для Windows не будут монтироваться
  • Interesting Posts

    Как я могу найти, какой драйвер модуля имеет адрес i2c?

    что такое «Идентификатор системы» группы томов LVM

    При каких обстоятельствах, если таковые будут, изменится ли результат чтения / proc / cpuinfo?

    Удалите символ новой строки только для всех N строк

    не удается найти ошибку -lm linker

    Как полностью удалить пользовательскую подсистему из Linux?

    : () {: |: &} ;: Как эта бета-версия BASH работает подробно?

    Что делает команда set speller aspell -x -c в nanorc?

    Заменить значения на основе соответствия переменной ID

    Почему я не могу использовать `kill $!` С расширением параметра в Bash, когда самый последний процесс «уведомлять-отправлять»?

    Автоматическое и надежное резервное копирование данных

    Виртуальный хост работает только тогда, когда SELinux настроен на разрешительный – почему?

    Когда прирастают мифы? Как процесс работает в одно мгновение?

    Помогите понять Iptables Прямая цепочка с DNAT

    grepping для нескольких элементов

    Linux и Unix - лучшая ОС в мире.