Материал просмотрен 1,639 раз(а)

В конфигурации по-умолчанию, операционная система FreeBSDвключает в себя несколько десятков модулей ядра, которые расположены в директории /boot/kernel вместе с самим ядром (файлом kernel).

Каждый из модулей предоставляет дополнительные функции, или возможность поддержки новых устройств, которые могут отсутствовать в ядре GENERIC (ядро по-умолчанию).

Загружать и выгружать эти модули может только супер-пользователь (root).

К слову сказать, эти модули имеют расширение *.ko (kernelobject). В произвольный момент времени такой модуль может быть загружен и у нас появится возможность, например, читать нестандартную файловую систему или работать с новым устройством, работа с которым до этого была невозможна.

Для примера рассмотрим такой модуль как «smbfs.ko». Этот модуль предназначен для обеспечения поддержки такой файловой системы, как SMB – основа совместного использования файлов в сетях с Windows. По умолчанию такой поддержки в ядре GENERIC нет.

Абстрактная ситуация – у нас в сети есть сервер на Windows, расшаренную папку которого мы хотим примонтировать к нашей файловой системе на FreeBSD. Для этого добавляем поддержку SMBFS в ядро командой kldload:

# kldload smbfs

Вышеприведённая команда добавит в ядро модуль smbfs.ko, в чём можно убедиться выполнив команду kldstat

Выгрузить модуль из ядра можно командой kldunload

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

Существует способ автоматической загрузки нужных модулей при старте системы. Для этого служит файл /boot/loader.conf который состоит из строк вида

«имямодуля_load=”YES”»

Например «smbfs_load=”YES”»

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