参考文章:http://www.wowotech.net/linux_kenrel/13.html
1. 简介
为了降低设备多样性带来的Linux驱动开发的复杂度,以及设备热拔插处理、电源管理等,Linux内核提出了设备模型的概念。设备模型将硬件设备归纳、分类,然后抽象出一套标准的数据结构和接口。
2. Linux设备模型概览
Linux设备模型是一个复杂的数据结构,图2.1是Linux设备模型示意图。
Linux设备模型使用一系列抽象,提供统一的设备管理视图,这些抽象包括:Bus,Class,Device,Device Driver。
基于上述4个抽象数据结构,驱动的开发,就简化为对内核所规定的数据结构的填充和实现。
图2.2 列出了Linux设备模型相关技术点。对于Linux驱动工程师来说,想要理解Linux设备模型,这些技术点是需要深刻学习理解的。
实际上,对于上层用户,只需要关心Bus,Class,Device,Device Driver。而对于Kobject,sysfs,uevent,上层用户是不需要关心的。