内核驱动的本质——模块
在Linux中,驱动的本质就是一个模块。模块可以被选择“静态编译”或“模块化编译”
1. 静态编译:链接入内核镜像,默认永远被加载
2. 模块化编译:需要在内核运行时动态加载
这两种处理步骤详见驱动模块的编译与安装
当模块被加载时,可以认为模块即是内核的一部分
1.一个最简单的模块
#include <linux/module.h>
#include <linux/init.h>
static int var = 666;
module_param(var, int, S_IRUGO);
/*
* 用户定义的加载、卸载函数,需要与加载、卸载行为绑定
*/
static int __init chrdev_init(void)
{
printk(KERN_INFO