В дистрибутивах ALT Linux 2.x используется ядро 2.4 в качестве основного; ALT Linux 2.4 Master имеет поддержку 2.6.x и включает в себя экспериментальную (не рекомендуемую к применению) сборку 2.6.8. В Sisyphus с 4.10.2006 поддерживаются только ядра >2.6.9 по причине перехода на glibc-2.5.
Ядра автоматически не обновляются (см. /etc/apt/apt.conf про Hold); можете снять при уверенности, что не забудете вернуть или что так лучше, но лучше воспользоваться скриптом update_kernel.sh имени VitalyLipatov или apt-upgrade-kernel Ильи Евсеева (см. тж. здесь).
Технология сборки описана в документации (kernel-policy.txt) пакета kernel-build-tools; в то же время считается, что в большинстве случае самостоятельная сборка не должна быть оправдана. При необходимости подпишитесь на список рассылки devel-kernel@ и обсудите возникший вопрос там, если краткого HOWTO не хватит.
FIXME! В связи с переходом сборщиков ядер на git, схема сборки кардинально поменялась, поэтому большая часть информации, изложенной в HOWTO неверна.
kernel-image-$flavour: головной пакет, содержащий образ ядра разновидности $flavour, основные модули и запускающий скрипты обновления конфигурации загрузчика;
kernel-modules-$name-$flavour: дополнительный пакет, содержащий модули $name для ядра разновидности $flavour.
$flavour, в свою очередь, заканчивается суффиксом -smp или -pae в зависимости от типа сборки (с поддержкой smp или поддержкой smp с PAE). Раньше еще практиковались т.н. -up сборки, для систем с одним процессором, которые сейчас неактуальны по-причине изложенной ниже.
Начиная с версии 2.6.17, ядра в сизифе стали собираться в конфигурации т.н. SMP alternatives, что позволяет более гибко использовать возможности современных CPU (например, hotplug). Обратная сторона этого изменения – отказ от -up сборок ядер. Зато теперь можно избежать еще одного костыля, который был изложен здесь ранее :)
Следует обратить внимание на то, что по крайней мере std*-smp ( и std26-smp) обычно собираются с опцией CONFIG_HIGHMEM64G, что даёт возможность использовать гигабайт и более памяти (в отличие от std*-up), но не работает на i586 (Pentium первого поколения и аналоги, включая VIA C3), т.к. используется режим Physical Address Extension (PAE), появившийся начиная с Pentium Pro. Внимание: старые Pentium M (400MHz FSB) также не имеют поддержки PAE!
Сейчас разделение таково: -smp – для систем с поддержкой SMP alternatives и _без_ PAE, и -pae, собранный с CONFIG_HIGHMEM64G.
Были известны std, std26 (standard), om (OpenMosix), vs, vs26 (VirtualServer), wks, wks26, ll, ovz; из них om, vs, vs26 и ovz штатно собирались только для SMP-систем, остальные доступны для UP/SMP. По состоянию на 03.01.2007 в Sisyphus имеются:
Аббревиатура | Поддерживаемые версии | Особенности | Назначение |
std | 2.6 (pae, smp) | Стандартное и основное ядро дистрибутивов ALT Linux. При сборке используются патчи из -stable ядер и патчи, исправляющие какие-либо неприятности в работе железа | Сервера или рабочие станции, где важна безопасность или стабильность вопреки повышенной производительности и времени реакции на события |
wks | 2.6 (smp) | Содержит патчи для повышения производительности и уменьшения времени реакции на события (lowlatency), поддержки badram, swsusp2, realtime-режима для jack, патчи для undervolt'а CPU на базе Centrino проекта linux-phc, а также файловой системы reiserfs4. Внимание, поддержка win4lin на сейчас в wks26 отсутствует (не требуется майнтейнеру, поддерживать же — труд); в backports/3.0 наблюдается w4l26 на базе std26-up. | Рабочие станции |
vs | 2.6 (smp) | ядра с поддержкой технологии виртуализации linux vserver | Сервера (системы), где необходимо организовывать виртуальные сервера в рамках одной аппаратной платформы. В настоящий момент живет только в git'е у lakostis@, но скоро будет в сизифе |
ovz | 2.6 (smp/pae?) | Сборка с поддержкой технологии виртуализации OpenVZ. Еще приложен патч, позволяющий реализовать non-executable stack либо программно, либо процессорными средствами (на x86–64). | Сервера или рабочие станции, где требуются повышенная безопасность и контроль ресурсов, а также запуск нескольких контекстов (возможно, с различными дистрибутивами Linux в них) |
##Summary:## и ##%description## соответствующих пакетов в Сизифе (предложение)
В данный момент ситуация такая:
Причём в wks-smp применяется специальный патч 1gb_lowmem, уменьшающий потери производительности при использовании до 1Gb памяти включительно (HIGHMEM их вносит, предоставляя возможность работать с расширенной памятью как таковой).
Пример сборки модуля ядра с использованием kernel-headers: