第1章 Linux设备驱动程序模型
Linux系统中包含字符设备、块设备、网路设备三类基本的设备驱动程序。随着技术的不断进步,Linux驱动程序体系的拓扑结构越来越复杂,Linux 2.4内核已经不能适应这种形势的需求。为此2.6内核开发了全新的设备模型,它采用Sysfs文件系统,该文件系统是一个类似于proc文件系统的特殊文件系统,用于将系统中的设备组织成层次结构,并向用户态程序提供详细的内核数据结构信息。该模型在智能电源管理、热插拔以及与用户空间交互等方面具有明显的优势。本章主要介绍Linux内核中的驱动程序模型,包括三类设备的驱动程序、proc文件系统、Sysfs文件系统、Kobject等内容。
1.1 设备驱动程序基础
1.1.1 驱动程序的概念
所谓设备驱动程序就是控制与管理硬件设备数据收发的软件,它是应用程序与硬件设备沟通的桥梁。从本质上讲设备驱动程序主要负责硬件设备的数据读写、参数配置与中断处理。设备驱动程序是操作系统的一部分,通常运行在内核层。应用层通过系统调用进入内核层,内核层根据系统调用号来调用驱动程序对应的接口函数。图1-1说明了Linux驱动程序的运行原理。
图1-1 设备驱动程序的原理 |