我觉得自己的目标很混乱,总是看这个又看那个.虽说这个习惯不好,可是也增加了许多见识.
今天尝试编写内核模块,写了一个hello,world,结果弄了1个小时。
主要参考了网上的人的说明,结果发现尽信书不如无书,很多人说的都不是很仔细,我觉得这对于初学者来说,很不好。
大家贴出来的东西,不仅仅给自己也是给别人,所以有时候一定要严谨,否则很可能误导别人。
首先贴出代码
1// 这两个头文件包含相应宏定义
2#include <linux/init.h>
3#include <linux/module.h>
4// 告知内核,这是free模块
5MODULE_LICENSE("GPL");
6
7// 模块进入函数
8static int __init hello_init(void){
9 printk(KERN_ALERT "Hello World\n");
10 return 0;
11}
12
13// 模块退出函数
14static void __exit hello_exit(void){
15 printk(KERN_ALERT "Hello World exit\n");
16}
17
18// 初始化
19module_init(hello_init);
20// 退出
21module_exit(hello_exit);
22// 作者声明
23MODULE_AUTHOR("Di Zhuang");
24MODULE_DESCRIPTION("A simple Hello World Module");
25MODULE_ALIAS("a simplest module");