Zen Kernel — зачем ползать если можно летать?

Уже около месяца в моем Arch Linux крутится zen kernel. Довольно неплохо обработанное напильником, с кучей пачтей и дополнительных фич не входящих в ванильное ядро. Сегодня я расскажу что же оно есть такое и чуток углублюсь в дебри :)

Ядро Zen

Zen представляет собой вариант ядра Linux, который предназначен для настольных компьютеров. Это «исправленный» Linux для настольных/не-серверных систем, использует комбинацию нескольких проектов, обновляет код через git-репозиторий, а так же имеет несколько специфичных для Zen вещей стремящихся удовлетворить большинство потребностей пользователей реализовав их в одном ядре. Некоторые примеры слияния кодов это drm-next, wireless-testing, выбор планировщиков CPU  (CFS/BFS), BFQ планировщик ввода-вывода, aufs, unionfs, reiser4, tuxonice, PHC, и многие другие замечательные вещи которые замечательно подойдут для улучшения настроек настольных или ноутбук систем или просто код улучшающий производительность настольных систем. Однако объединенный код может изменится в любой момент. Так же, «передовые технологии» такие как drm-next, wireless-testing, linux-2.6.git, или  что-то другое по сути дела являющееся «передовыми разработками»  слиты с кодом только в нестабильной ветке (zen.git).

Основной целью является удовлетворение запросов людей в различных областях, запускающих ядро Linux на непроизводственных машинах . Эти области включают в себя производительность, драйверы/новейшие драйверы, и новые «фичи» (новые возможности могут включать в себя все — от файловых систем до tuxonice). Вторая цель — предоставление тестового полигона для новинок включаемых, но не принятых в основное ядро Linux. Это обеспечивает разработчиков такого кода большой базой тестеров которые особенно ценны, когда необходимо поправить несколько ошибок в скрипте, или найти проблемы при работе на различном оборудовании.

Что включено в Zen-ядро?

Код включаемый в zen ядро может быть разным в разное время. Несколько примеров проектов которые были последовательно объединены с zen:  bfs/zen-sched, bfq i/o планировщик, aufs, reiser4, tuxonice, smapi, linux PHC, mactel, gc-linux, fbcondecor, cko,  и другие. Это не точный список того что указано на сайте, и он может изменяться от релиза к релизу.

Если вам интересно знать что включается в zen ядро в любой момент времени, посетите gitweb и прочитайте, или поищите в логах git. Интерфейс gitweb отображает все вносимые правки с пояснениями к ним, а так же все ветки которые существуют в дереве. Эта информация отображается для текущей ‘master’ ветки дерева и для любой существующей метки (вы так же можете вернуться назад и посмотреть старые релизы).

Как альтернатива этому — это подробная документация включающая даже документацию к проектам включенным в Zen ядро, она может быть найдена на странице Документации.

Отличие между zen.git и zen-stable.git

Zen-Stable.git

  • Создается на основе последнего стабильного ядра: нет RC ядер (2.6.X.Y)
  • Не имеет репозитория новинок для будущего слияния с основным кодом (нет drm-next, sound-2.6.git, wireless-testing, или любых других «тестовых» деревьев)
  • Не включает код «просто посмотрите работает ли это»
  • Имеет только stable + stable zen метки (нет -rc меток)

Zen.git

  • Берется из linux-2.6.git: -rc/git ядра (2.6.X-rcY)
  • Имеет git-репозиторий нововведений (drm-next, sound-2.6.git, wireless-testing)
  • Новые проекты которые хотят протестить включаются сюда, смотрят как они работают в Zen.git, если все нормально и стабильно то можгут быть включены в zen-stable.git.
  • Только unstable + unstable zen метки (только -rc метки)

Вам не требуется клонировать оба zen-stable.git и zen.git если вам хочется использовать оба дерева одновременно! Прочитайте «Как переключаться между zen-stable и zen в одном древе»

Так вы сможете получить все метки (не только -rc или stable метки), и получить оба древа в одном.

Как говорится все понятно из названия. Zen-stable.git более стабильно чем Zen.git которое нестабильно и использует больше экспериментального кода.Это не значит что от Zen.git нет никакой пользы! Как правило, чем больше номер -rc  релиз получает, тем более стабильным он становится. Код обновляется или добавляется только по здравым причинам, часто новый или экспериментальный код — это то что требовали пользователи.
Запуск стабильного ядра так же имеет свои преимущества, оно гарантирует что у пользователя выше шанс без проблем получить рабочую систему, что для некоторых является критически важной задачей.
Zen.git становится Zen-stable.git когда снимается -rc и выпускается новое ядро. (Из-за малых изменений zen-stable может использовать все ветки которые были в zen.git, за исключением других git деревьев)
Оба дерева имеют свои причины на существование. Используйте одно или оба, как вам угодно. (возможно если у вас проблемы со стабильным ядром вам захочется взглянуть — может быть ваша проблема решена в более новом ядре)

Оцените статью
( Пока оценок нет )
Блог админа