今天在公司看linux driver,相关,上午一直不想看代码,可能是昨天看的太头痛,一直不想看,所以打算看会书,不如设计模式啥的,看了一个状态机的模式,听说上个公司的主板的就是用的状态机。看了一下,就是根据当前的不同状态state,执行不同的代码。没看多长时间。效率不高。下午继续看驱动代码。看了具体驱动是怎样继承这个driver-model,添加自己内容的。比如i2c的驱动,首先注册了一个i2c_type对象,然后创建了client和i2c_driver分别继承device和device_driver。然后就是注册device和devie_driver。这是驱动程序的根部的结构。不管上边的对象怎么复杂的继承添加内容,但是底部的结构框架,就是这个bus device device_driver模型,怎么也不会变。所有的驱动相关的对象,内核都是通过这个模型来保存和维护的。其实内核其他的代码也是,只要知道这些对象是怎么串起来的、用什么结构维护的,也就彻底掌握了这套代码。以后添加或者修改都不是问题。