(一) LINUX“内核模块”的开发:
1. 如何使用需要的组件
a) 把所有的组件都编译进内核文件:
i. 缺陷1:内核文件过大
ii. 缺陷2:如果要添加或删除某个组件,需要重新编译整个内核
b) 使用“内核模块”的机制:
i. 模块本身并不被编译进内核文件
ii. 以根据需求,在内核运行期间动态的安装或卸载。
2. 程序结构:例:vi hello.c
a) #include <linux/init.h>
b) #include <linux/module.h> 头文件
c) static int hello_init(void)
d) {
e) printk(KERN_WARNING “Hello, world !\n”); 打印函数
f) return 0;
g) }
h) static void hello_exit(void)
i) {
j) printk(KERN_INFO “Goodbye, world\n”);
k) }
l) module_init(hello_init); 模块加载函数(必需)
m) module_exit(hello_exit); 模块卸载函数(必需)
3. 模块的编译:使用Makefi