内核模块开发

来源:互联网 发布:古筝淘宝网 编辑:程序博客网 时间:2024/05/21 17:55

一.Linux内核模块基础

1.内核模块作用:节省内存的空间


2.内核模块特点:模块本身并不被编译进入内核文件;在内核运行期间动态的安装或者卸载


3.内核模块操作:

           3.1安装:insmod

   3.2卸载:rmmod

   3.3查看:lsmod


4.新的使用组件思路:动态加载和卸载。也就是需要这个组件的时候才去加载,不需要的时候,就卸载。这边是                                     我们所说的内核模块机制。


二.Linux内核模块设计

总体步骤 :1.头文件:<linux/init.h>和<linux/module.h>

                  2.调用加载函数:module_init();

  3.调用卸载函数:module_exit();

范例代码:

helloworld.c



Makefile:



三.Linux内核模块可选项

 1.模块申明:

MODULE_LICENSE(“遵守的协议”):申明该模块遵守的许可协议

MODULE_AUTHOR("作者"):申明模块的作者

MODULE_DESCRIPTION("模块的功能描述"):申明模块的功能

MODULE_VERSION(""):申明模块的版本


2.模块参数:

    通过module_param指定保存模块参数的变量。模块参数用于加载模块时传递参数给模块

    函数: module_param(name,type,perm)

    参数设置:name:变量的名字

     type:变量的类型

     perm:访问的权限 S_IRUGO:读权限  S_IWUSR:写权限


3.符号导出:

    内核符号的导出使用宏:EXPORT_SYMBOL(符号名)







      

0 0