资料介绍
Linux驱动程序工作原理简介
Linux驱动程序工作原理简介
一、linux驱动程序的数据结构 1
二、设备节点如何产生? 2
三、应用程序是如何访问设备驱动程序的? 3
四、为什么要有设备文件系统? 3
五、设备文件系统如何实现? 4
六、如何使用设备文件系统? 4
七、具体设备驱动程序分析 5
1、 驱动程序初始化时,要注册设备节点,创建子设备文件 5
2、 驱动程序卸载时要注销设备节点,删除设备文件 7
参考书目 8
一、linux驱动程序的数据结构
设备驱动程序实质上是提供一组供应用程序操作设备的接口函数。
各种设备由于功能不同,驱动程序提供的函数接口也不相同,但linux为了能够统一
管理,规定了linux下设备驱动程序必须使用统一的接口函数 file_operations 。
所以,一种设备的驱动程序主要内容就是提供这样的一组file_operations接口函数
。
那么,linux是如何管理种类繁多的设备驱动程序呢?
linux下设备大体分为块设备和字符设备两类。
内核中用2个全局数组存放这2类驱动程序。
#define MAX_CHRDEV 255
#define MAX_BLKDEV 255
struct device_struct {
const char * name;
struct file_operations * fops;
};
static struct device_struct chrdevs[MAX_CHRDEV];
static struct {
const char *name;
struct block_