设备驱动模型与sysfs
Linux在2.6版本引入了设备驱动模型,设备驱动模型负责统一实现和维护一些特性,诸如:热插拔、对象生命周期、用户空间和驱动空间的交互等基础设施
1.设备驱动模型基本概念
设备驱动模型主要包含:类(class)、总线(bus)、设备(device)、驱动(driver),它们的本质都是内核中的几种数据结构的“实例”
- 类的本质是class结构体类型,各种不同的类其实就是class的各种实例
- 总线的本质是bus_type结构体类型,各种不同的总线其实就是bus_type的各种实例
- 设备的本质是device结构体类型,各种不同的设备其实就是device的各种实例
- 驱动的本质是device_driver结构体类型,各种不同的驱动其实就是device_driver的各种实例
2.sysfs基本概念
sysfs其实就是/sys目录,其主要作用就是:展示设备驱动模型中各组件的层次关系,并将各组件的本体——内核中的数据结构以文件形式呈现,方便用户层查看及操作
3./sys目录结构与设备驱动模型
- /sys目录结构很好的展示了驱动设备模型,如图:
- 注意:同一个设备可能在/sys中存在多个设备文件,比如一颗led的设备文件可能在/sys/bus/platform/