Каковы различия между поставляемым ядром Ubuntu и вышестоящим ядром?

31

Каковы различия в наборе функций между основным ядром Linux и ядром, используемым Ubuntu? Почему Ubuntu отделен от основного ядра, а не использует основное ядро ​​напрямую?

Эндрю Стерн
источник

Ответы:

18

Ядра upstream (упоминаемые, когда мы их предоставляем, как ядра mainline ) - это просто ядро ​​upstream для указанной версии, с очень небольшим количеством незначительных изменений конфигурации, так что существует минимальная проблема с их использованием при установке Ubuntu.

Разница между этими ядрами и ядром, выпущенным для версии Ubuntu, заключается в многочисленных других изменениях конфигурации , исправлениях исходного кода * и, в некоторых случаях, скомпилированных в модулях и поддержке оборудования.

Очень мало базового кода отличается от вышестоящего кода, отличного от указанного выше.

*: исходные патчи, в большинстве случаев, изменяют поведение ядра по умолчанию. Они не ограничиваются: черные списки, таблицы видео-причуд, встроенные модули, исходные изменения, которых еще нет в дереве Линуса или в стабильной очереди, и т. Д.

Исходные патчи - это то, что команда использует, чтобы представить параметры конфигурации, необходимые для поддержки огромного массива выпущенных программ для конкретной версии Ubuntu. Во многих случаях они необходимы для правильной работы этих приложений. Принципиальное различие между этим и вышестоящим ядром состоит в том, что чистое вышестоящее ядро ​​не является специфичным для распределения.

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

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

В этих случаях патчи, которые идут вверх по течению, переносятся как исходные патчи почти так же, как и пре-стабильные патчи, и патчи, которых еще нет в дереве Линуса. Ссылка на спецификацию дельта-обзора должна служить ссылкой на то, что было рассмотрено для текущей версии Natty ядра Ubuntu.

Джереми Фоши
источник
1
Есть ли более подробная информация о патчах для соуса и почему некоторые изменения конфигурации необходимы для ядра Ubuntu?
Эндрю Стерн
Эндрю, да, я работаю над некоторым текстом объяснения, чтобы добавить к вышеперечисленному, который, надеюсь, прояснит, какие патчи для соуса будут более подробными. :-)
Джереми Фоши,
2

Ядро Linux находится в постоянном развитии. При упаковке своего следующего релиза, в какой-то момент команда Ubuntu должна сказать: «Хорошо, мы возьмем ядро ​​в его нынешнем виде». Время от времени вы можете получить новое ядро, доступное в репозиториях для использования в текущее распределение.

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

Следует отметить, что, как и любая другая часть программного обеспечения, ядро ​​подвержено ошибкам, и часто случается, что происходят регрессии (добавление новых компонентов нарушает старые функциональные возможности). Ядра в наши дни ИМХО не особо волнуют меня с точки зрения новой функциональности. Например, я бы с радостью запустил ядро, которому было два года.

boehj
источник
4
Хотя это все очень верно, я не думаю, что вы поняли вопрос. Я думаю, что спрашивающий задавался вопросом о патчах, которые Ubuntu применяет к ядру.
8128
0

Вы можете скачать git-дерево Ubuntu и использовать графический просмотрщик для просмотра git-дерева. Это покажет вам все патчи Ubuntu. https://wiki.ubuntu.com/Kernel/Dev/KernelGitGuide

Другой возможный вариант, подписаться на список рассылки ubuntu-kernel. Вся их работа размещена там, и вы можете получить представление о том, что они делают. Но, это высокий трафик, и ИМХО раздражает. (Но эй, это их список)

user1974
источник
2
ну, список больше ориентирован на открытое обсуждение предложенных исправлений. Вероятно, это не то место, которое даст вам четкое представление о том, что мы делаем. Для этого я рекомендую канал IRN FreeNode # ubuntu-kernel.
Джереми Фоши