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_……