Работа с ядром

Понятие ядра Linux

  • Ядро системы обеспечивает взаимодействие с аппаратными компонентами устройства

  • Для этого взаимодействия ядру нужны драйвера (модули в терминологии Linux)

  • У ядра есть различные способы обращения к этим драйверам:

    • initramfs (initial ram drive) - загружается вместе с системой, в него собираются драйверы перед установкой в систему

    • systemd-udevd - используется для взаимодействия с аппаратными компонентами, подключаемыми напрямую (например, USB Flash Drive), подгружая на лету драйвера устройства

    • modprobe - ручная загрузка драйвера

  • К ядру обращение происходит из шелла в пользовательском пространстве через syscall

Модули ядра

  • Модули ядра есть драйверы для взаимодействия с устройством

  • Большая часть модулей загружается с initramfs или systemd-udevd

  • modprobe используется для ручной загрузки модулей

    • modprobe -r - для выгрузки модулей

  • lsmod используется для отображения списка модулей

[root@centos8 ~]# lsmod
Module                  Size  Used by
binfmt_misc            20480  1
veth                   28672  0
nft_masq_ipv4          16384  1
nft_masq_ipv6          16384  1
nft_masq               16384  2 nft_masq_ipv6,nft_masq_ipv4
nf_conntrack_netlink    49152  0
xt_addrtype            16384  1
br_netfilter           24576  0
overlay               126976  0
fuse                  131072  3
rfcomm                 86016  6
xt_CHECKSUM            16384  1
ipt_MASQUERADE         16384  1
xt_conntrack           16384  1
ipt_REJECT             16384  1
nft_counter            16384  31
nf_nat_tftp            16384  0
nft_objref             16384  1
nf_conntrack_tftp      16384  3 nf_nat_tftp

Modprobe

  • Является наследником классической утилиты insmolt

    • insmolt не учитывал зависимости модулей, в отличии от modprobe

  • modinfo отображает параметры модуля

  • Для изменения конфигурации модулей используется /etc/modprobe.conf или файлы в /etc/modprobe.d

Использование proc

  • /proc является файловой системой, которая предоставляет доступ к информации в ядре

    • PID директории (информация о процессах)

    • Статусы файлов (состояния системы)

    • Настройки в /proc/sys

  • Через echo можно записать параметр в любой файл в /proc/sys для изменения настроек ядра

  • Для изменения настроек с сохранением после перезагрузки необходимо править /etc/sysctl.conf (последний способ - не рекомендуется)

    • sysctl -a покажет все текущие настройки

Обновление ядра

  • Фактически обновление ядра проходит заменой старого на новое, инкрементальное обновление не допускается

  • Это же позволяет загрузить прежнее ядро в случае отказа нового

  • yum update kernel используется для обновления ядра

    • yum install kernel как альтернативный вариант

Last updated

Was this helpful?