bus 是容器 中间有两个链表 分别连接了 device、 和driver
device 是一个抽象出来的 设备 提供fops open read write等等操作 他调用 driver提供的接口 面向接口编程
driver 是对芯片的controller进行操作, 特定的逻顺序的操作寄存器 来实现特定功能 玩过单片机的都知道 一般驱动开发 就是写这部分
device和 driver通过match 相互锁定 他们在注册的时候 都会在bus容器中进行遍历 ,如果找到了 就会调用probe函数,进行内存映射,申请中断,硬件初始化什么的 。
在此之上还有抽象 ,spi master ,i2c adapter ,input 子系统等等
在此之下是 kobject kset等等
好处在于 可以即插即用,节省资源,框架固定方便扩展 。