什么是驱动?
以下百度百科中对驱动解释。
驱动(计算机软件术语)
驱动程序全称设备驱动程序,是添加到操作系统中的特殊程序,其中包含有关硬件设备的信息。此信息能够使计算机与相应的设备进行通信。驱动程序是硬件厂商根据操作系统编写的配置文件,可以说没有驱动程序,计算机中的硬件就无法工作。
可以看到,驱动相对于一般的软件而言最大的区别是,它是直接与硬件设备进行通讯的。
Linux驱动的分类
Linux中,将设备分为三种基本的类型。
- 字符设备
- 块设备
- 网络接口
Linux中还有一个很重要的概念,模块。
可在运行时添加到内核中的代码被称为模块。
一般来说一个设备驱动总是被写成一个模块。
一个简单的模块
#include <linux/init.h>
#include <linux/module.h>
MODULE_LICENSE("Dual BSD/GPL")
static int hello_init(void) {
printk(KERN_ALERT "Hello world");
}
static void hello_exit(void) {
printk(KERN_ALERT "Bye");
}
module_init(hello_init);
module_exit(hello_exit);
这里看到两个特殊的宏mo