kerneld - это демон, впервые представленный в ядрах версии 1.3 Bjorn Ekwall. Он позволяет "модулям" ядра (т.е. драйверам устройств, сети, файловым системам и т.п.) загружаться автоматически при первом запросе к ним, вместо ручного вызова их при помощи команд modprobe или insmod.
И для более интересных функций, которые не встроены (все еще?) в стандартное ядро:
kerneld можно настроить на вызов программы пользователя, вместо запуска стандартного гашения экрана, что позволяет использовать любую программу как заставку (screen-saver).
Тем же образом, как и в случае с программой-заставкой, можно изменить стандартный "сигнал (beep)" консоли в нечто совершенно другое ...
kerneld состоит из двух отдельных частей:
Поддержка в ядре Linux-а, для отсылки запросов на использование какого-либо модуля демону (daemon).
Демон на пользовательском уровне, который сможет выяснить, какие модули надо загрузить для исполнения запроса ядра.
Для полного функционирования kerneld, должны работать обе части - установки только одной из частей недостаточно.
Существует много причин для использования kerneld. Те, которые я упомяну - мои, другие люди могут использовать kerneld по иным причинам.
Если надо собрать ядра для нескольких систем, которые мало отличаются (например, сетевыми платами) - то можно собрать одно ядро и несколько модулей, вместо сборки отдельных ядер для каждой системы.
Для разработчиков модули более просты на стадии проверки - нет необходимости каждый раз перезагружать систему для загрузки или выгрузки драйвера. (Это относится ко всем модулям, не только загружаемым kerneld).
Это экономит память, используемую ядром, то есть, у вас больше памяти для приложений. Память, используемая ядром, никогда не кладется в раздел подкачки (swap), поэтому, если у вас 100 кб неиспользуемых драйверов внутри ядра, вы просто теряете оперативную память.
Некоторые драйвера, которые я использую - например, для стриммера ftape или iBCS - могут быть только в модулях. Но мне не приходится мучаться с их загрузкой и выгрузкой, когда бы они мне не понадобились.
Создатели дистрибутивов Linux-а не должны собирать 284 разных загрузочных образов (boot image) - каждый пользователь загружает драйверы для своего оборудования. В последних версиях некоторых дистрибутивов встроено автоматическое определение оборудования, которое само загружает только необходимые модули.
Конечно существуют причины, по которым вы не захотите использовать модули - вы можете предпочесть иметь одно ядро со всеми вашими драйверами, встроенными в него. В этом случае, вы читаете не тот документ.
Поддержка модулей впервые была встроена в ядро версии 1.3.57. Если у вас ядро более ранней версии, и вы хотите установить kerneld, то вы должны перейти на более новое ядро. Исходные тексты ядер можно найти на всех основных Linux ftp-серверах, в том числе и на:
Демон (daemon) входит в пакет modules. Он обычно также доступен по тем же адресам, где находятся исходные тексты ядра.
Замечание: ВНИМАНИЕ: Если вы хотите использовать загрузку модулей в последних тестовых ядрах, то вы должны использовать пакет modutils (НЕ modules). Ниже (глава Общие проблемы) приведено несколько замечаний о проблемах использования модулей в ядрах версии 2.1.