类是一个设备的高层视图,抽象出了底层的实现细节。类允许用户空间使用设备所提供的功能,而不关心设备是如何连接的,和它们是如何工作的。类子系统是向用户空间导出信息的最好方法。
类的核心数据结构是class,在分析device中介绍过,这个class不如bus,device,driver好理解,我理解它的主要功能是一是设备管理,二是抽象出一类设备的公共属性。
前面分析subsys_private时说过,class和bus_type很类似,我们在设备总线驱动模型中创建设备时,要指定它所属的bus,那么在创建类设备的时候也需要指定它所从属的类,class也离不开kobject,因此如果你了解总线设备驱动模型,你就会发现,其实真的都是差不多的东西。
设备驱动一般在注册的时候都会调用此类class的一些函数,主要作用就是在sys目录里面创建一些节点,比如cd到/sys/class下面可以看到这一类的设备,如: