



下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精品文档-下载后可编辑Linux内核模块编程入门学习内核模块是Linux内核向外部提供的一个插口,其全称为动态可加载内核模块(LoadableKernelModule,LKM),我们简称为模块。Linux内核之所以提供模块机制,是因为它本身是一个单内核(monolithICkernel)。单内核的优点是效率高,因为所有的内容都集成在一起,但其缺点是可扩展性和可维护性相对较差,模块机制就是为了弥补这一缺陷。
模块是具有独立功能的程序,它可以被单独编译,但不能独立运行。它在运行时被链接到内核作为内核的一部分在内核空间运行,这与运行在用户空间的进程是不同的。模块通常由一组函数和数据结构组成,用来实现一种文件系统、一个驱动程序或其他内核上层的功能。
编写一个简单的模块
模块和内核都在内核空间运行,模块编程在一定意义上说就是内核编程。因为内核版本的每次变化,其中的某些函数名也会相应地发生变化,因此模块编程与内核版本密切相关。
程序举例
hellomod.c
001
//helloworlddriverforLinux2.6
004#include
005#include
006#include
/*必要的头文件*/
009staticint__initlkp_init(void)
{
printk(“1Hello,World!fromthekernelspace…\n”);
return0;
013}
015staticvoid__exitlkp_cleanup(void)
{
printk(“1Goodbye,World!leavingkernelspace…\n”);
018
}
020module_init(lkp_init);
021module_exit(lkp_cleanup);
022MODULE_LICENSE(“GPL”);
说明
第4行:
所有模块都要使用头文件module.h,此文件必须包含进来。
第5行:
头文件kernel.h包含了常用的内核函数。
第6行:
头文件init.h包含了宏_init和_exit,它们允许释放内核占用的内存。
建议浏览一下该文件中的代码和解释。
第9-12行:
这是模块的初始化函数,它必需包含诸如要编译的代码、初始化数据结构等内容。
第11行使用了printk()函数,该函数是由内核定义的,功能与C库中的printf()类似,
它把要打印的信息输出到终端或系统日志。字符串中的1是输出的级别,
表示立即在终端输出。
第15-18行:
这是模块的退出和清理函数。此处可以做所有终止该驱动程序时相关的清理工作。
第20行:
这是驱动程序初始化的入口点。对于内置模块,内核在引导时调用该入口点;
对于可加载模块则在该模块插入内核时才调用。
第21行:
对于可加载模块,内核在此处调用module_cleanup()函数,而对于内置的模块,
它什么都不做。
第22行:
提示可能没有GNU公共许可证。有几个宏是在2.4版的内核中才开发的(详情参见modules.h)。
函数module_init()和cleanup_exit()是模块编程
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 版权法与短视频平台-全面剖析
- 遗产地社区参与机制研究-全面剖析
- 铁路运输可持续发展策略-全面剖析
- 跨文化传播效果评估-全面剖析
- 隐私计算模型优化-第1篇-全面剖析
- 正规劳动合同书样本
- 基坑支护专业分包合同书
- 二零二五新员工试用期合同模板
- 劳务派遣协议书合同书样本二零二五年
- 二零二五商铺转让合同书协议书
- 2025年宁夏银川市唐徕中学南校区中考一模英语试题(原卷版+解析版)
- 乡村民宿开发管理运营手册
- 殡葬服务笔试题库及答案
- 2025年光大银行校园招聘笔试参考题库(带答案)
- 中医康复理疗师职业指导试题及答案
- 研究生教育高质量发展新动能推动方案
- 自然辩证法概论(视频课)知到课后答案智慧树章节测试答案2025年春安徽农业大学
- 宁波十校2025届高三3月联考语文试卷(含答案解析)
- 在线网课学习课堂《人工智能(北理 )》单元测试考核答案
- T-SDHIA 11-2024 4-72 离心风机标准
- 2025科技部直属事业单位招聘历年高频重点模拟试卷提升(共500题附带答案详解)
评论
0/150
提交评论