Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
VPS/VDS серверы. 30 локаций на выбор

Серверы VPS/VDS с большим диском

Хорошие условия для реселлеров

4VPS.SU - VPS в 17-ти странах

2Gbit/s безлимит

Современное железо!

Бесплатный конструктор сайтов и Landing Page

Хостинг с DDoS защитой от 2.5$ + Бесплатный SSL и Домен

SSD VPS в Нидерландах под различные задачи от 2.6$

✅ Дешевый VPS-хостинг на AMD EPYC: 1vCore, 3GB DDR4, 15GB NVMe всего за €3,50!

🔥 Anti-DDoS защита 12 Тбит/с!

Мини-HOWTO: Linux kerneld
Пред.След.

Как это настроить?

Сначала достаньте необходимые части: подходящее ядро и последние утилиты из пакета modules. Затем надо установить утилиты modules. Это делается очень просто - распакуйте исходные тексты и запустите make install. Эта команда скомпилирует и установит следующие программы в каталог /sbin: genksysm, insmod, lsmod, modprobe, depmod и kerneld. Я рекомендую добавить несколько строк в загрузочные скрипты (для проведения некоторых настроек при загрузке Linux). Добавьте следующие строки в файл /etc/rc.d/rc.S (если у вас Slackware), или в /etc/rc.d/rc.sysinit (если у вас установлен SysVinit, т.е. Debian, RedHat, Caldera):

        # Запускаем kerneld, это должно произойти почти сразу
        # в процессе загрузки, обязательно ДО запуска fsck на файловых системах,
        # это может быть необходимо для автозагрузки драйверов дисков
        if [ -x /sbin/kerneld ]
        then
                /sbin/kerneld
        fi

        # Далее следуют стандартные команды fsck
        # А также команда для монтирования (mount) вашей корневой файловой системы в режиме чтение/запись

        # Обновление файла зависимостей модулей ядра
        # Ваша корневая файловая система ДОЛЖНА быть подключена в режиме чтение/запись на этот момент
        if [ -x /sbin/depmod ]
        then
                /sbin/depmod -a
        fi

Эти команды могут уже присутствовать в ваших SysV init скриптах. Первая часть запускает собственно kerneld. Вторая часть запускает depmod -a в момент загрузки системы. Программа depmod строит список всех доступных модулей и анализирует их взаимосвязи, чтобы знать, в каком случае один модуль предварительно требует загрузки другого перед своей загрузкой.

Замечание

Последние версии kerneld в качестве опции используют библиотеку GNU dbm, libgdbm. Если вы включите эту опцию при сборке утилит пакета modules, то kerneld не запустится, так как библиотека libgdbm недоступна. Это может вызвать проблемы. Например, если у вас каталог /usr находится на отдельном разделе, а kerneld запускается до подключения раздела с каталогом /usr. Рекомендуемое решение - перенести libgdbm из каталога /usr/lib в /lib, или собрать kerneld со статическими библиотеками.

Затем, распакуйте исходные тексты ядра, и по своему желанию настройте и соберите ядро. Если вы этого никогда не делали, вам необходимо прочитать файл README в каталоге исходных текстов ядра Linux. Когда вы запустите make config, для настройки параметров сборки ядра, вы должны обратить внимание на вопросы, которые задаются вначале:

  Enable loadable module support (CONFIG_MODULES) [Y/n/?] Y
  (Разрешить поддержку загружаемых модулей (CONFIG_MODULES) [Д/н/?] Д)

Вам надо выбрать поддержку загружаемых модулей, иначе для kerneld просто не будет работы! Просто ответьте Да (Yes).

  Kernel daemon support (CONFIG_KERNELD) [Y/n/?] Y
  (Поддержка kerneld (CONFIG_KERNELD) [Д/н/?] Д)

Это, конечно, также необходимо. Затем, многие части ядра могут быть собраны в виде модулей - вы увидите вопросы типа

  Normal floppy disk support (CONFIG_BLK_DEV_FD) [M/n/y/?] 
  (Поддержка обычного флоппи-диска (CONFIG_BLK_DEV_FD) [M/н/д/?])

где вы можете ответить М ("Модуль"). В общем случае только драйверы, необходимые для загрузки системы (драйвер жесткого диска, драйвер корневой файловой системы), должны быть встроены в ядро; остальное можно собрать в виде модулей.

ПредостережениеОбязательные драйверы
 

Обязательные драйверы, то есть те драйверы, которые необходимы для загрузки системы, должны быть встроены в ядро, а не собраны в качестве модулей. Обычно это: драйвер жесткого диска и драйвер корневой файловой системы. Если у вас система с двойной загрузкой, которая зависит от файлов на другом разделе, то вы должны также встроить поддержку файловой системы этого раздела в ядро.

Когда вы закончите с make config, соберите и установите новое ядро командой make dep clean bzlilo modules modules_install.

Уффф.

ПодсказкаCompiling a Kernel Image
 

Команда make zImage помещает новое ядро в файл arch/i386/boot/zImage. Вам нужно будет скопировать его туда, где находится ваш загрузочный образ (boot-image), или впоследствии установить его в LILO.

За наиболее подробной информацией по настройке, сборке и установке вашего собственного ядра обращайтесь к Kernel-HOWTO (HOWTO по ядру системы), которое постоянно рассылается через группу новостей comp.os.linux.answers, а также доступно в Linux Documentation Project (и его зеркалах).

Проверка kerneld

Перезагрузитесь с новым ядром. Когда система загрузится, наберите ps ax, и вы должны увидеть там строку с kerneld:

    PID TTY STAT  TIME COMMAND
     59  ?  S     0:01 /sbin/kerneld

Одно из самых приятных свойств kerneld состоит в том, что после загрузки ядра и загрузки kerneld требуется очень мало дополнительных действий. Для начала попробуйте использовать один из драйверов, который вы собрали в виде модуля - наиболее вероятно, что он заработает без дальнейшей настройки. Я собрал драйвер флоппи-дисковода в виде модуля так, чтобы можно было вставить DOS диск в дисковод и

  osiris:~ $ mdir a:
   Volume in drive A has no label
   Volume Serial Number is 2E2B-1102
   Directory for A:/

  binuti~1 gz       1942 02-14-1996  11:35a binutils-2.6.0.6-2.6.0.7.diff.gz
  libc-5~1 gz      24747 02-14-1996  11:35a libc-5.3.4-5.3.5.diff.gz
          2 file(s)        26689 bytes

Итак, драйвер флоппи-диска работает - он автоматически загрузился kerneld, когда я обратился к флоппи-диску.

Чтобы увидеть, что модуль флоппи на самом деле загружен, запустите /sbin/lsmod, который выдает список всех загруженных модулей на данный момент:

  osiris:~ $ /sbin/lsmod 
  Module:        #pages:  Used by:
  floppy            11    0 (autoclean)

Примечание "(autoclean)" означает, что модуль будет автоматически выгружен kerneld, если будет неактивен больше одной минуты. Таким образом, 11 страниц памяти (= 44кб, одна страница - это 4 кб) будут использованы,только пока я обращаюсь к флоппи - если пауза в использовании превысит одну минуту, то эта память будет освобождена. Достаточно удобно, если вам не хватает памяти для ваших программ!


Пред.НачалоСлед.
Что такое kerneld? Как kerneld определяет, какой модуль загружать?
VPS в 21 локации

От 104 рублей в месяц

Безлимитный трафик. Защита от ДДоС.

🔥 VPS до 5.7 ГГц под любые задачи с AntiDDoS в 7 локациях

💸 Гифткод CITFORUM (250р на баланс) и попробуйте уже сейчас!

🛒 Скидка 15% на первый платеж (в течение 24ч)

Скидка до 20% на услуги дата-центра. Аренда серверной стойки. Colocation от 1U!

Миграция в облако #SotelCloud. Виртуальный сервер в облаке. Выбрать конфигурацию на сайте!

Виртуальная АТС для вашего бизнеса. Приветственные бонусы для новых клиентов!

Виртуальные VPS серверы в РФ и ЕС

Dedicated серверы в РФ и ЕС

По промокоду CITFORUM скидка 30% на заказ VPS\VDS

Новости мира IT:

Архив новостей

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 7861149
Пресс-релизы — pr@citforum.ru
Обратная связь
Информация для авторов
Rambler's Top100 TopList liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2019 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...