在Linux内核中,采用对象机制组织和管理各种功能单元,包括CPU、内存、总线、外部设备、驱动程序等等。一方面有利于各种功能的的动态增减;也有利于系统快速定位各种设备,提高响应速度。在linux内核中,采样kset/kobject结构的组合来管理各种设备。
kset/kobject结构
每一个具体的对象用kobject结构来表示。一系列kobject构成的集合用kset来表示。相互关系如下图所示:
kobject的定义如下:
structkobject {
const char *name; //kobject名
struct list_head entry; //该kobject的链表头部,含前向指针和后向指针。
struct kobject *parent; //该kobject的父kobject,经常是包含该kobject
//的kset中的