前几天回家转了转,跟爸妈聊到深夜,嗬嗬,最后爸妈推荐了一部电视剧《青春期撞上更年期》,所以回来以后,电视剧就开看啦,不过我觉得这不算是浪费时间吧,好的电视剧能给人不少感悟、感动和成长。
下面开始继续我的笔记···
上次写到struct cdev,这次接着从struct kobject开始记录:
Linux 2.6引入新的设备管理机制kobject,通过这个数据结构使所有的设备在底层都具有统一的接口,kobject提供基本的对象管理,是构成Linux2.6设备模型的核心结构,它与sysfs文件系统紧密关联,每个在内核中注册的kobject对象都对应与sysfs文件系统的一个目录。多花一些时间来研究kobject是十分有意义的工作。下面我仔细研究了一下:
Kobject通常通过kset组织成层次化的结构,kset是具有相同类型的kobject的集合。在Linux 2.6.30内核
linux/include/linux/kobject.h中查看struct kobject结构体的实现如下:
1: struct kobject {
2: const char *name; //名称
3: struct list_head entry;
4: struct kobject *parent;//父指针
5: struct kset *kset;//kobject对象的集合体
6: struct kobj_type *ktype; //kobject对象被关联到的一种特殊的类型
7: struct sysfs_dirent *sd;
8: struct kref kref; //引用计数通过此结构体实现的
9: unsigned int state_initialized:1;
10: unsigned int state_in_sysfs:1;