一、对象管理和引用计数
内核中很多地方都需要跟踪记录C语言中结构的实例。尽管这些对象的用法大不相同,但各个不同子系统的某些操作非常类似,例如引用计数。这导致了代码复制。由于这是个糟糕的问题,因此在内核版本2.5的开发期间,内核采用了一般性的方法来管理内核对象。所引入的框架并不只是为了防止代码复制,同时也为内核不同部分管理的对象提供了一致的视图,在内核的许多部分可以有效地使用相关信息,如电源管理。
一般性的内核对象机制可用于执行下列对象操作:
引用计数;
管理对象链表(集合);
集合加锁;
将对象属性导出到用户空间(通过 sysfs 文件系统)。
kobject实现面向对象管理机制,在内核中每注册一个kobject对象都对应于sysfs文件系统中的一个目录,而不是文件。
1、 一般性的内核对象
下列数据结构将嵌入其他数据结构中,用作内核对象的基础。
<linux/kobject.h>