开发内核模块程序
更新时间:2026-06-04
安装依赖工具
在开始之前,请确保你的系统上已经安装了以下工具:
Plain Text
1# yum groupinstall "Development Tools"
编写内核模块
- 创建目录
Plain Text
1# mkdir /root/my_module
2# cd /root/my_module
- 创建模块文件
Plain Text
1# vim test_mod.c
2#include <linux/module.h> // 所有内核模块都需要这个头文件
3#include <linux/kernel.h> // 包含 KERN_INFO 等定义
4#include <linux/init.h> // 包含模块初始化和清理函数的宏
5
6MODULE_LICENSE("GPL"); // 模块许可证
7MODULE_AUTHOR("Your Name"); // 模块作者
8MODULE_DESCRIPTION("A simple Hello World Module"); // 模块描述
9// 模块初始化函数
10static int __init hello_init(void) {
11 printk(KERN_INFO "Hello, World!\n"); // 打印内核日志
12 return 0; // 返回 0 表示成功
13}
14// 模块清理函数
15static void __exit hello_exit(void) {
16 printk(KERN_INFO "Goodbye, World!\n"); // 打印内核日志
17}
18module_init(hello_init); // 指定初始化函数
19module_exit(hello_exit); // 指定清理函数
- 创建Makefile
在同一目录下创建一个名为Makefile的文件。
Plain Text
1# vim Makefile
2obj-m += test_mod.o
3all:
4make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
5clean:
6make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
编译内核模块
使用以下命令编译内核模块:
Plain Text
1# make

加载内核模块
- 使用insmod命令加载内核模块:
Plain Text
1# insmod test_mod.ko
- 要查看模块是否成功加载,可以使用以下命令:
Plain Text
1# lsmod | grep test_mod

查看内核日志
内核模块中的打印信息将显示在内核日志中。使用以下命令查看日志:
Plain Text
1# dmesg | tail

卸载内核模块
- 卸载内核模块
Plain Text
1# rmmod test_mod
- 查看内核日志
Plain Text
1# dmesg | tail

清理工作目录
在完成开发后,可以使用以下命令清理工作目录:
Plain Text
1# make clean
评价此篇文章
