Динамічні модулі ядра

Матеріал з Wiki TNEU
Перейти до: навігація, пошук

Модулі ядра Ядро Linux має модульну структуру. При завантаженні, тільки мінімальна резидентне ядро завантажується в пам'ять. Після цього, якщо користувач викликає функцію, відсутню в резидентном ядрі, потрібний модуль ядра динамічно завантажується в пам'ять. Якщо модуль не використовується певний час, він може бути видалений з пам'яті. Механізм, який реалізує динамічне завантаження модулів у потоці ядра, називається kmod. Модулі завантажуються, тільки якщо вони потрібні. Коли ядро запитує модуль, він завантажується разом з модулями, від яких він залежить. У Red Hat Linux також включена завдання cron, що видаляє всі невживані модулі кожні десять хвилин. Це завдання cron описана в файлі / etc / cron.d / kmod. Коли ви встановлюєте Red Hat Linux, виконується виявлення обладнання, а ви визначаєте, як планується використовувати систему і які програми повинні бути завантажені. Залежно від знайденого устаткування і певних вами параметрів системи, програм установки вирішує які модулі необхідно завантажувати при завантаженні. Програма установки непомітно для вас налаштовує механізм динамічного завантаження. Якщо ви зберете власне ядро, ви повинні зробити це самостійно. Якщо ви додасте нове обладнання після установки, для підтримки якого необхідний модуль ядра, ви повинні налаштувати механізм динамічного завантаження. Програма Kudzu зазвичай визначає сучасне обладнання. Вы Ви можете також додати новий драйвер, відредагувавши файл конфігурації модулів, / etc / modules.conf. Наприклад, якщо у вашому комп'ютері в момент установки був встановлений мережний адаптер SMC EtherPower 10 PCI, файл конфігурації модулів буде містити наступну рядок: alias eth0 tulip Якщо ви встановите після встановлення такої ж мережевий адаптер, додайте такий рядок в / etc / modules.conf: alias eth1 tulip


Управління модулями ядра Дляперегляду, завантаження і вивантаження модулів ядра використовуються декілька команд. Ці команди допоможуть вам спробувати різні модулі або визначити, чи успішно завантажений модуль. Команда /sbin/lsmod выводит список загруженных в данный момент модулей. Команда / sbin / lsmod виводить список завантажених у даний момент модулів.

Прикладвиконаннякоманди lsmod Module Size Used by Module Size Used by sr_mod 15264 0 (autoclean) sr_mod 15264 0 (autoclean) mga 95984 1 mga 95984 1 agpgart 23392 3 agpgart 23392 3 nfs 79008 1 (autoclean) nfs 79008 1 (autoclean) lockd 52464 1 (autoclean) [nfs] lockd 52464 1 (autoclean) [nfs] sunrpc 61328 1 (autoclean) [nfs lockd] sunrpc 61328 1 (autoclean) [nfs lockd] autofs 11264 4 (autoclean) autofs 11264 4 (autoclean) 3c59x 25344 1 (autoclean) 3c59x 25344 1 (autoclean) ipchains 38976 0 (unused) ipchains 38976 0 (unused) ide-scsi 8352 0 ide-scsi 8352 0 scsi_mod 95104 2 [sr_mod ide-scsi] scsi_mod 95104 2 [sr_mod ide-scsi] ide-cd 26848 0 ide-cd 26848 0 cdrom 27232 0 [sr_mod ide-cd] cdrom 27232 0 [sr_mod ide-cd] usb-uhci 20720 0 (unused) usb-uhci 20720 0 (unused) usbcore 49664 1 [usb-uhci] usbcore 49664 1 [usb-uhci]

Як показано в прикладі, команда lsmod виводить розмір, лічильник використання, і модулі, пов'язані з кожним з завантаженим. Щоб завантажити модуль ядра, виконайте команду / sbin / insmod, вказавши в параметрах ім'я модуля ядра. За замовчуванням, insmod намагається завантажити модуль з каталогів, розташованих в / lib / modules / <kernel-version> / kernel / drivers. Для кожного типу модуля тут створено окремий каталог, наприклад, у каталозі net перебувають мережні драйвера. Деякі модулі ядра мають залежності - перед ними повинні бути завантажені інші модулі. Щоб вирішити ці залежності, ви можете або завантажити модулі, від яких залежить потрібний вам, а потім завантажити його, або скористатися командою / sbin / modprobe передавши в параметрах ім'я модуля, який буде завантажений разом зі своїми залежностями. Наприклад, команда /sbin/modprobe tulip / Sbin / modprobe tulip

завантажує модуль мережевого інтерфейсу tulip. Щоб вивантажити модулі ядра, виконайте команду / sbin / rmmod вказавши в параметрах ім'я модуля. Команда rmmod вивантажує модулі, якщо не використовуються вони безпосередньо і модулі від них залежні. Наприклад, команда /sbin/rmmod tulip / Sbin / rmmod tulip

вивантажує модуль мережевого інтерфейсу tulip. Іншою корисною командою управління модулями ядра є modinfo. Ви можете виконати команду / sbin / modinfo щоб переглянути інформацію про модуль ядра. Загальнийсинтаксиснаведенонижче: /sbin/modinfo [options] <module> / Sbin / modinfo [options] <module>

Особисті інструменти
Простори назв

Варіанти
Дії
Навігація
Інструменти