02 内核模块.ppt

02 内核模块.ppt

ID:48715694

大小:873.00 KB

页数:10页

时间:2020-01-20

02 内核模块.ppt_第1页
02 内核模块.ppt_第2页
02 内核模块.ppt_第3页
02 内核模块.ppt_第4页
02 内核模块.ppt_第5页
资源描述:

《02 内核模块.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、内核模块Linux内核模块的定义和特点模块只是预先注册自己以便服务于将来的某个请求,然后就立即结束。模块可以是实现驱动程序,文件系统,或者其他功能。加载模块后,模块运行在内核空间,和内核链接为一体。思考:内核模块的实际意义是什么?内核模块#include#includestaticint__inithello_init(void){printk("Hello,world");return0;}staticvoid__exithello_exit(void){printk(

2、"Goodbyeworld");return;}module_init(hello_init);module_exit(hello_exit);MODULE_LICENSE("GPL");内核模块代码框架module_init和module_exit定义入口和出口函数__init和__exit宏GPL支持申明函数名和函数具体实现一般是我们开发人员可修改的部分代码的要点动手完成一个helloworld内核模块的例子程序动手练习Makefile的修改Kconfig的修改Makemenuconfig选择目标模块为内核模块,即选择

3、保存配置后编译内核Makemodules编译所有内核模块获取编译好的内核和内核模块文件(后缀名为ko的文件)内核模块的编译加载内核模块:insmod<模块文件名>比如:#insmod./myhello.ko卸载内核模块:insmod<模块名称>比如:#rmmodmyhello查询内核模块:lsmod比如:#lsmod内核模块的加载卸载模块在加载的同时可以使用参数功能格式:insmod模块名参数1=值1参数2=值2使用module_param声明参数Module_param(参数名,参数类型,参数属性)可以使用module_param_

4、array申明数组,实用性差,不要求掌握。模块参数例子:staticchar*whom=“world”;staticintweek=1;module_param(week,int,S_IRUGO);module_param(whom,charp,S_IRUGO);数据类型:charp,long,short,int,uint,ulong,ushort,bool等属性:S_IRUGO可读S_IWUSR可写模块参数完成一个模块,能手动输入2个参数,一个是名字,一个是星期,并打印出来动手练习

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。