Что такое kerneld?
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.
|