Коли користувач стає більш, менш просунутим, він доходить до такої стадії, коли хоче знати: що в його системі є, і найголовніше навіщо він треба і чи можна без нього обійтися?
FreeBSD. як і майже будь-яка * nix-подібних ОС, є модульно-ядерної. Тобто, ядро, і є модулі, які в залежності від потреби завантажують або вивантажують. Розберемося докладніше в цьому.
1) Інтеграція в ядро або довантажувати?
Модулі можна компілліровать в ядро. Це збільшує швидкість їх роботи. Але це краще робити тільки тоді, коли извесно, що він буде використовуватися завжди. А якщо відомо, що через деякий час потрібно буде позбутися від цього модуля - то краще його довантажувати як модуль.
Модулі діляться на системні і призначені для користувача.
Системні - це ті, які йдуть в базовій комплектації до вашого дистрибутива. Вони по дефолту розташовуються в / boot / kernel.
Призначеним для користувача - це ті, які додаються в ОС в процесі використання, Нпрімер, при установці нових драйверів. Їх зазвичай складають в / boot / modules. Звичайно, їх можна складати і в / boot / kernel. але при перезібравши ядра, вони не будуть по дефолту враховані в новому, і перенесуться в / boot / kernel.old. в результаті, ваша ОС після цього не знайде їх (бо вона шукає в / boot / kernel, / boot / modules).
3) Управління модулями.
Для управління модулями при завантаженні ОС використовують файли /boot/default/loader.conf (для системних) і /boot/loader.conf (для призначених для користувача)
Якщо ОС вже завантажена, то довантажити модуль можна командної
соотвественно вивантажити модуль
і подивитися список завантажених модулів
4) Файли для завантаження модулів.
Конфігураційний файл (loader.conf) складається з безлічі секцій, в тому числі опції завантаження ОС, розділ з модулями, і багато іншого.
Опис модуля в цьому файлі складається з імені модуля, далі йде слово load і в кінці параметр «YES» або «NO» - соотвественно завантажувати даний модуль при завантаженні чи ні.
5) Перекомпіляція окремого модуля (окремої бібліотеки).
Іноді буває потреба пересобрать окремий модуль (вийшов патч, який усуває баг). Можна звичайно пересобрать ядро (пересоберётся ядро, і всі модулі). А можна пересобрать тільки окремий модуль. Робиться це так:
#cd / usr / src / sys / modules /<имя_модуля>
#patch.
#make obj make depend make make install
Після цього можна продовжувати працювати з модулем, наприклад довантажити. Природно, перед складанням, найкраще вивантажити модуль, пересобрать, потім заново завантажити, що б уникнути конфліктів.