千家信息网

Linux如何管理kernel模块

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章主要介绍"Linux如何管理kernel模块"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"Linux如何管理kernel模块"文章能帮助大家解决问题。
千家信息网最后更新 2026年11月03日Linux如何管理kernel模块

这篇文章主要介绍"Linux如何管理kernel模块"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"Linux如何管理kernel模块"文章能帮助大家解决问题。

Linux内核模块化设计

1. Linux内核设计:单内核、模块化(动态装载和卸载)

(1) Linux:单内核设计,但充分借鉴了微内核体系的设计的优点;为内核引入了模块化机制;

(2) 内核的组成部分: kernel:内核核心,一般为bzImage格式,通常位于/boot目录,名称为vmlinuz-VERSION-release; 当系统启动之后该文件就不在使用,因为已经加载到内存,放置/boot下方便管理 kernel object:内核模块,一般放置于/lib/modules/VERSION-release/ 内核模块与内核核心版本一定要严格匹配;

2.内核模块:编译选择模式

[ ]:N,不编译此部分 [M]:Module ,以模块化编译,可以临时装载,占用磁盘空间,不占用内核空间 [*]:Y,编译进内核核心,可以直接调用

3.ramdisk:辅助性文件,并非必须,取决于内核是否能直接驱动rootfs所在的设备

ramdisk:一个简装版的根文件系统,可提供的驱动如下: 目标设备驱动,例如SCSI设备的驱动; 逻辑设备驱动,例如LVM设备的驱动; 文件系统,例如xfs文件系统;

内核模块信息获取和管理命令

1.ldd:打印二进制应用程序所依赖的库文件-print shared library dependencies

格式:ldd [OPTION] FILE

显示:

\1) 所依赖库文件名称 => 所依赖 库文件路径 (对应内存载入符号链接映射指向)

\2) 整个系统调用库的入口

linux-vdso.so.1 => (0x00007fff293fe000)/lib64/ld-linux-x86-64.so.2 (0x00007f0228073000)

2.uname:内核信息获取 -print system information

格式:uname [OPTION]… uname -a:显示内核所有信息 uname -v:内核的编译版本号 uname -r:内核的release发行号 uname -n:主机名

3.lsmod:列出内核模块

显示的内核来自于/proc/modules 模块名,大小,被引用的次数、被什么引用

4.modinfo命令:显示指定的模块的详细信息

格式:modinfo [-F field] [-k kernel] [modulename|filename…] -k kernel:多内核并存时若要查询另外一个kernel上的模块信息 -F field: 仅显示指定字段的信息; -n:显示文件路径; 通过读取/lib/modules/#######/*文件的原数据来显示相关信息

显示内容:文件名、协议、描述、作者、别名、适用于RHEL版本号、依赖的模块、签名单位、签名、加密算法

5.modprobe:实现模块的装载和卸载,同时会挂载依赖的模块

格式:modprobe [-r] module_name 模块的动态装载:modprobe module_name 动态卸载:modprobe -r module_name 注意:默认被装载的模块不要随意卸载

6.depmod:- Generate modules.dep and map files

内核模块依赖关系文件和系统信息映射文件的生成工具;

7.insmod、rmmod:模块的装载和卸载,不能自动解决模块依赖关系

insmod [filename] [module options…] filename:模块文件的文件路径; rmmod [module_name]

ramdisk文件的管理

1.mkinitrd(CentOS 5):为当前使用中的内核重新制作ramdisk文件

# mkinitrd [OPTION…] [] –with=:除了默认的模块之外需要装载至initramfs中的模块; –preload=:initramfs所提供的模块需要预先装载的模块; 示例: ~]# mkinitrd /boot/initramfs-(uname -r)

2.dracut(CentOS 6/7 , 兼容5): – low-level tool for generating an initramfs image

# dracut [OPTION…] [ []] 示例: ~]# dracut /boot/initramfs-(uname -r)

内核信息输出伪文件系统

1./proc:内核状态和统计信息的输出接口;还提供一个配置接口,/proc/sys

(1)参数: 只读:信息输出;例如/proc/#/,进程相关信息

可写:可接受用户指定一个"新值"来实现对内核某功能或特性的配置;/proc/sys/ 格式: /proc/sys: net/ipv4/ip_forward 相当于 net.ipv4.ip_forward

(2)修改参数方式

\1) sysctl命令 专用于查看或设定/proc/sys目录下参数的值; sysctl [options] [variable[=value]] 查看:# sysctl -a;# sysctl variable 修改其值:# sysctl -w variable=value

\2) 文件系统命令(cat, echo) 查看:# cat /proc/sys/PATH/TO/SOME_KERNEL_FILE 设定:# echo "VALUE" > /proc/sys/PATH/TO/SOME_KERNEL_FILE

\3) 配置文件:/etc/sysctl.conf, /etc/sysctl.d/.conf 立即生效的方式:sysctl -p [/PATH/TO/CONFIG_FILE]

(3)重要的内核参数 net.ipv4.ip_forward:核心转发; vm.drop_caches: kernel.hostname:主机名; net.ipv4.icmp_echo_ignore_all:忽略所有ping操作;

2./sys目录:Kernel 2.6版本后引入

sys文件系统:输出内核识别出的各硬件设备的相关属性信息,也有内核对硬件特性的可设置参数; 对此些参数的修改,即可定制硬件设备工作特性

udev:通过读取/sys目录下的硬件设备信息按需为各硬件设备创建设备文件; udev是用户空间程序;专用工具:devadmin, hotplug; udev为设备创建设备文件时,会读取其事先定义好的规则文件 一般在/etc/udev/rules.d/目录下,以及/usr/lib/udev/rules.d/目录下。

关于"Linux如何管理kernel模块"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。

内核 模块 文件 信息 设备 系统 装载 管理 参数 格式 目录 驱动 硬件 编译 命令 核心 版本 设计 输出 动态 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 北京路客互联网科技有限公司 科技互联网产品 互联网科技公司华为 互联网科技金融 成都互联网科技公司 广州互联网络科技有限公司 美国互联网前沿科技 卫星互联网科技股票 科技与互联网的利与弊 中国互联网有什么科技含量 以后互联网后是啥科技 互联网金融科技公司干啥的 华服互联网科技官网 互联网还是高科技吗 崇明区互联网教育科技诚信经营 河南住房之家互联网科技 企晟互联网信息科技有限公司 每天都有哪些好的互联网科技 2021世界互联网领先科技成果发布 世界互联网科技成果奖 互联网电商科技 互联网下的科技发展 科技类互联网 常德市电业局互联网科技部 链环科技传统企业怎么转型互联网 深圳育鹏互联网科技有限公司招聘 迪庆互联网科技招生 西安小鹰速贷互联网科技有限公司 中国互联网公司的科技投入 平安好医生打造互联网科技医疗
0