范例中以一个经典的hello驱动程序为例
$vim hello.c创建源码文件
程序有几个重要的部分
a. 引用两个基本的头文件linux/init.h、linux/module.h;
b. MODULE_LICENSE("Dual BSD/GPL")
此申明是告诉内核,该模块采用自由许可证,没此申明则内核在装载该模块时会产生抱怨,就好像内核在说,你(此模块)遵循GNU GPL规定,有问题的话后果自负;
c. module_init(func_init),insmod加载内核时,会调用func_init初始化函数
module_exit(func_exit),rmmod卸载内核时,会调用func_exit退出函数
程序代码如下
///START/
#ifndef __KERNEL__
# define __KERNEL__
#endif
#ifndef MODULE
# define MODULE
#endif
#include <linux/init.h>
#include <linux/module.h>
#include <linux/sched.h>
#include <linux/kdev_t.h>
#include <linux/fs.h>
#include <linux/cdev.h>
//定义模块的版本
#define MODULEVERSION "1:1.0"
MODULE_LICENSE("Dual BSD/GPL");//申明此模块遵循GPL规定
MODULE_AUTHOR("jayson_jang");//