Рейтинг:44

Что подразумевается под «ядром Ubuntu»?

флаг ng

Я думал, что все дистрибутивы Linux используют одно ядро ​​(разработанное Линусом Торвальдсом).

Так почему же все дистрибутивы Linux имеют собственное ядро?

Рейтинг:89
флаг bd

Существует проект, начатый и возглавляемый Линусом Торвальдсом, который поддерживает исходный код ядра, называемого ядром Linux. Это то, что распространяется на ядро.org. Обратите внимание, что это нет ядро, это исходный код — точно так же, как рецепт торта сам по себе тортом не является.

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

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

В то время как большинство людей не взламывают свою личную версию исходного кода ядра, проекты распространения, такие как Ubuntu, Fedora, Slackware и т. д., распространяют свои собственные модифицированные версии ядра Linux. Часто модификации просты: исправления ошибок из более поздних версий ядра «основной ветки» и исправления безопасности, которые еще не вошли в ядро ​​основной ветки. Но они могут быть любыми, которые, по мнению проекта дистрибуции, сделают их версию «лучшей» по определению этого проекта «лучшей».

Вот почему мы говорим о «ядре Ubuntu» как о чем-то отдельном от «ядра Linux» — потому что оно действительно отличается. Ядро Ubuntu это поддерживается Canonical. Он построен на ядре Debian, которое само по себе является дистрибутивом ядра Linux. Я не знаю всех различий между ядром Ubuntu и ядром Linux. (Не потому, что это секрет, а потому, что я просто не в курсе.) Думаю, на этой странице перечислено множество, и вот патчи для ядра Debian.

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

флаг tn
"есть много вариантов конфигурации" - это преуменьшение. Драйверы устройств Windows, как правило, являются отдельными объектами, в то время как в Linux они часто встроены в ядро ​​(хотя в наши дни я так думаю меньше, чем десять лет назад или около того). Итак... нужна ли вам поддержка I2C? поддержка IDE? Поддержка CAN-BUS? Поддержка виртуализации? На какую архитектуру процессора вы ориентируетесь (даже внутри amd64 есть несколько вариантов)? «[Ядро содержит почти ***две тысячи*** различных параметров конфигурации](https://www.linuxtopia.org/online_books/linux_kernel/kernel_configuration/ch05.html)» (выделение добавлено).
флаг cn
TL;DR: ядро ​​Ubuntu = ванильное ядро ​​​​Linux + коллекция патчей от Canonical
флаг ve
Moo
Просто добавьте комментарий, который поддерживает это: Docker и другие системы контейнеризации используют ядро ​​хоста для всех взаимодействий контейнеров на уровне ядра, что означает, что вы можете запускать Debian, Ubuntu, Slack, Arch и т. д. на основе *контейнеров* на Redhat * хозяин* например. И они будут работать (с минимальными пограничными случаями, за которыми вам действительно придется охотиться). Потому что ядра по существу совместимы на определенном уровне, и на этом уровне работает контейнеризация. Если ядра разных дистрибутивов несовместимы, вы не сможете запустить контейнер на основе Ubuntu ни на чем, кроме Ubuntu.
andrew.46 avatar
флаг in
@Chris Bouchard Очень небольшое и несколько педантичное исправление: ядро, поставляемое со Slackware, вообще не модифицируется. Это полностью "ванильное" ядро...
Рейтинг:12
флаг cn

Несколько упрощенно:

Существует одно ядро ​​Linux, но разработка продолжается. Если вы сделаете снимки с разницей в несколько недель, вы обнаружите небольшие различия.

Различные дистрибутивы Linux делают снимки в разное время, и у каждого есть возможность добавить свой собственный секретный соус. Более мелкие отличия.

Рейтинг:7
флаг vn

Когда вы посещаете ядро.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.

N0rbert avatar
флаг zw
Некоторые ссылки, такие как https://packages.ubuntu.com/search?suite=all&searchon=sourcenames&keywords=linux, также могут быть полезны.

Ответить или комментировать

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