内核模块堆叠与参数传递实践
1. 模块堆叠
模块堆叠是一种在Linux内核编程中实现模块化设计的技术,通过构建多个内核模块并将它们“堆叠”在一起,实现功能的复用和扩展。
1.1 构建内核模块
我们将构建两个内核模块: core_lkm 和 user_lkm 。
- core_lkm :作为“库”模块,向内核和其他模块提供一些函数和数据。
- user_lkm :作为“用户”模块,调用 core_lkm 中的函数和使用其数据。
以下是 core_lkm.c 的代码示例:
#define pr_fmt(fmt) "%s:%s(): " fmt, KBUILD_MODNAME, __func__
#include <linux/init.h>
#include <linux/module.h>
#define MODNAME "core_lkm"
#define THE_ONE 0xfedface
MODULE_LICENSE("Dual MIT/GPL");
int exp_int = 200;
EXPORT_SYMBOL_GPL(exp_int);
/* Functions to be called from other LKMs */
void llkd_sysinfo2(void)
{
[...]
}
EXPORT_SYM
超级会员免费看
订阅专栏 解锁全文
3755

被折叠的 条评论
为什么被折叠?



