Я думал, что все дистрибутивы Linux используют одно ядро (разработанное Линусом Торвальдсом).
Так почему же все дистрибутивы Linux имеют собственное ядро?
Посетив kernel.org , вы увидите, что существует несколько различных версий ядра.
Вкратце они таковы:
Ядра Ubuntu обычно работают по тому же принципу.Когда выпускается версия Ubuntu, она обычно придерживается той версии ядра, которая была «стабильной» на момент выпуска (а затем стала «долгосрочной» поддерживаемой в этой версии Ubuntu).
Например, выпуск 18.04 (Bionic) находится в ветви ядра 4.15, а 20.04 (Focal) - в ветви ядра 5.4.
Позже в цикле выпуска могут быть доступны ядра «HWE» (поддержка оборудования), которые находятся в более новой ветке (например, Focal HWE находится в ветке 5.8). Все это часть экосистемы ядра Ubuntu, чтобы предоставить пользователям больше возможностей выбора.
Кроме того, существуют разные сборки ядра для разных платформ (облачные и barebone) - например, Azure, AWS, KVM, Raspi, RiscV и т. Д.
Эта (довольно занудная) таблица сопоставления показывает какие ядра Ubuntu соответствуют основным версиям ядра. Различные пакеты ядра также можно найти в списках пакетов Ubuntu .
Несколько упрощенно:
Есть одно ядро Linux, но разработка продолжается. Если вы сделаете снимки с разницей в несколько недель, вы обнаружите небольшие различия.
Различные дистрибутивы Linux делают свои снимки в разное время, и у каждого есть возможность добавить свой собственный секретный соус. Более незначительные отличия.
Существует проект, начатый и возглавляемый Линусом Торвальдсом, который поддерживает исходный код ядра, называемого ядром Linux. Это то, что распространяется на kernel.org. Обратите внимание, что это не ядро, это исходный код - точно так же, как рецепт торта сам по себе не является тортом.
Чтобы приготовить торт, вы должны следовать рецепту шаг за шагом, смешать ингредиенты и испечь. Чтобы сделать ядро, нужно сконфигурировать исходный код для вашего компьютера и скомпилировать его. В зависимости от целевой архитектуры и выбранной конфигурации (а вариантов конфигурации очень много), в итоге получаются разные ядра. Не дико разные, но разные.
Далее, проект ядра Linux является проектом с открытым исходным кодом. Разрешается и поощряется, чтобы каждый мог получить свою собственную копию исходного кода, изменить его для собственного использования и распространять свою измененную копию - подобно тому, как вы могли унаследовать бабушкин рецепт пирога, который она адаптировала из старой поваренной книги, и у вас могут быть свои собственные вариации.
Хотя большинство людей не занимаются взломом своей личной версии исходного кода ядра, такие дистрибутивные проекты, как Ubuntu, Fedora, Slackware и т.д., распространяют свои собственные модифицированные версии ядра Linux. Часто модификации просты: исправления ошибок из более новых версий "восходящего" ядра и исправления безопасности, которые еще не попали в "восходящее" ядро. Но они могут быть любыми, которые, по мнению проекта дистрибутива, сделают его версию "лучше", по определению этого проекта.
Вот почему мы говорим о "ядре Ubuntu" как о чем-то отдельном от "ядра Linux" - потому что оно действительно отличается. Ядро Ubuntu поддерживается компанией Canonical. Оно построено на ядре Debian, которое само является дистрибутивом ядра Linux. Я не знаю всех различий между ядром Ubuntu и ядром Linux. (Не потому что это секрет, а потому что я просто не в курсе.) Я думаю, что на этой странице перечислены некоторые, а вот патчи для ядра Debian.
В конце концов, все ядра в основном одинаковы, и поэтому мы говорим о них как о Linux. Никому не выгодно изменять свое ядро настолько, что оно становится дико несовместимым. Дистрибутивы отличаются гораздо больше в разнообразии программ, которые они распространяют вместе со своим ядром, чтобы создать целую операционную систему.