【发布时间】:2016-03-18 15:59:44
【问题描述】:
在学习了解Linux内核时,我在Kobject结构和容器中遇到了引用计数器。
那么,映射这些结构有何帮助?
下面给出的是 ULK 第 3 版中的一段。
kref 字段是一个
k_ref类型的结构,由单个refcount 字段组成。顾名思义,该字段是 kobject 的引用计数器,但它也可以作为 kobject 容器的引用计数器。kobject_get( )和kobject_put( )函数分别增加和减少引用计数器;如果计数器达到零值,则释放kobject使用的资源,并执行kobject的kobj_type对象的释放方法。该方法通常仅在动态分配 kobject 的容器时才定义,它会释放容器本身。
类似地,在更多上下文中使用了此引用计数器。 我想知道引用计数器的实际映射。
【问题讨论】:
-
你读过kref documentation吗?引入内核中使用的引用计数看起来不错。
-
谢谢,我是 linux 新手,我刚刚经历过。
标签: linux-device-driver device-driver reference-counting