- 1、本文档共24页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Linux 内核模块 proc文件系统
Linux内核模块
proc文件系统
Linux内核模块
§ 内核模块是内核的扩展,它供了在内核运
行过程中动态加载的特性.
§ 模块被加载进系统后,就在内核态下运行了,
成了内核的一部分,可以读写内核数据结构.
§ 内核模块通常用来实现设备驱动程序.
模块的工作原理
§ 模块运行Linux内核空间
§ 内核符号表保存了内核导出一些符号(APIs和全
局变量)
§ 内核动态的加载模块,模块导出的所有符号成为
内核符号表的一部分
§ 模块可以使用导出的符号
§ /proc/kallsyms 记录了所有的符号
EXPORT_SYMBOL(name)
EXPORT_SYMBOL_GPL(name)
Hello World例子(2.6 内核模块)
#include linux/init.h
#include linux/module.h
MODULE_LICENSE(Dual BSD/GPL);
static int hello_init(void)
{
printk(KERN_ALERT Hello, world\n);
return 0;
}
static void hello_exit(void)
{
printk(KERN_ALERT Goodbye, cruel world\n);
}
module_init(hello_init);
module_exit(hello_exit);
模块初始化和释放
§ 模块的初始化函数负责注册模块所供的
任何设施.
§ module_init在模块的目标代码中增加一个
特殊的段,用于说明内核初始化函数所在的
位置
static int __init initialization_func(void)
{
/*初始化代码*/
}
module_init(initialization_func);
§ 清除函数,该函数在模块被移除前注销接口并向系
统返回所有资源
§ module_exit 帮助内核找到模块的清除函数,如
果一个模块未定义清除函数,内核就不允许卸载该
模块
§ 宏 __init 和 __exit可以使函数在运行完成后自动
回收内存
static void __exit cleanup_func(void)
{
/*这里是清除代码*/
}
module_exit(cleanup_func)
编译模块(2.6 内核)
§ 必须使用Makefile
§ Makefile文件
obj-m := hello.o
§ 编译命令
make –C ~/kernel-2.6 M=`pwd` modules
§ obj-m := Module.o表示编译后生成Module.ko模块
§ -C 内核源码路径 M= 外部模块 `pwd`该模块文件
所在路径
命令
§ insmod 加载模块
§ rmmod 卸载模块
§ lsmod 列出当前系统所有已加载模块
§ modinfo 查看模块信息
§ dmesg 查看内核系统日志
模块相关宏
§ 模块参数
module_param(变量名称,类型,sysfs入口项访
问许可掩码)
§ 参数值在insmod装载模块时赋值
§ 模块说明相关宏
Ø MODULE_LICENSE() 说明代码许可类型
Ø MODULE_DESCRIPTION() 模块述
Ø MODULE_AUTHOR() 作者
Ø MODULE_VERSION()模块版本
内存操作
§ 内核空间与用户空间
§ 内核空间与用户空间的数据交换
get/put_user(x, ptr)
cop
您可能关注的文档
最近下载
- 2021-2022学年初中化学人教版九年级上册 4.4.4 有关相对分子质量的计算 同步习题.docx VIP
- 浙教版科学九年级上册化学方程式汇总复习.docx
- WWT 0050-2014 文物建筑维修基本材料+青瓦.pdf
- 砂浆作业指导书.doc
- TCI 313-2024 碳酸锂中碳酸锂含量测定 电位滴定法.pdf
- 垃圾填埋场飞灰安全填埋专区扩建及环境综合整治工程可行性研究报告.pdf
- (新课标)新冀人版小学科学五年级上册第五单元12课《火山》说课稿.docx
- 中国基层房颤中心认证标准(试行).PDF
- 快递行业研究框架:“战国”时代,静待改善.pdf
- 《指向高中历史核心素养的大单元教学设计研究》课题研究方案.doc
文档评论(0)