模块加载函数
Linux 内核模块加载函数一般以_ _init 标识声明
1 static int _ _init initialization_function(void)
2 {
3 /* 初始化代码 */
4 }
5 module_init(initialization_function);
模块卸载函数
Linux 内核模块卸载函数一般以_ _exit 标识声明
1 static void _ _exit cleanup_function(void)
2 {
3 /* 释放代码 */
4 }
5 module_exit(cleanup_function);
模块参数
导出符号
模块声明与描述
模块的使用计数
模块的编译
模块与 GPL
总结
本章主要讲解了 Linux 内核模块的概念和基本的编程方法。内核模块由加载/卸载函数、功能函数以及
一系列声明组成,它可以被传入参数,也可以导出符号供其他模块使用。
由于 Linux 设备驱动以内核模块的形式而存在,因此,掌握这一章的内容是编写任何类型设备驱动
所必须的。在具体的设备驱动开发中,将驱动编译为模块也有很强的工程意义,因为如果将正在开发中
的驱动直接编译入内核,而开发过程中会不断修改驱动的代码,则需要不断地编译内核并重启Linux,
但是如果编译为模块,则只需要rmmod 并insmod 即可,开发效率大为提高。