Відмінності між версіями «Динамічні модулі ядра»

Матеріал з Wiki TNEU
Перейти до: навігація, пошук
м (Захист на Динамічні модулі ядра встановлено (‎[edit=sysop] (безстроково) ‎[move=sysop] (безстроково)))

Версія за 00:16, 21 вересня 2012

Модулі ядра

Ядро 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> 

Параметри командного рядка включають в себе-d, при цьому відображається короткий опис модуля і-p, що показує параметри, підтримувані модулем. Повний список параметрів ви знайдете на сторінці керівництва modinfo (man modinfo).

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

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