Linux内核模块的特点:
模块本身并不被编译进内核文件;
可以根据需求在内核运行期间动态的安装或卸载;
无main入口;
使用printk()来输出;
模块加载函数(必须的)
通常使用module_init宏来指出
模块卸载函数(必须的)
通常使用module_exit宏来指出
模块可选信息
MODULE_LINENSE(“相应的证书”);告诉内核,该模块带有一个证书如“GPL”等
MODULE_AUTHOR(“作者”);作者声明
MODULE_DESCRIPTION(“…”);模块描述
MODULE_VERSION(“…”);模块版本
MODULE_ALIAS(“…”);模版别名
module_param(name, type, perm);模版参数,name:模版参数的名称 type表示这个参数的类型
perm:表示参数访问权限如:S_IRUGO:任何用户都对/sys/module中出现具有读权限 S_IWUSR:允许root用户修改/sys/module中访问。 |