华的专栏

讨论与进步

linux内核中等待队列(wait_event,wake_up...)

根据内核3.1.6版本源码、书籍和网上资料,对几个函数进行分析        介绍这几个函数,不得不先介绍等待队列wait_queue_head_t        等待队列用于使得进程等待某一特定事件的发生,无需频繁的轮询,进程在等待周期中睡眠,当时间发生后由内核自动唤醒。 等待...

2016-12-15 11:46:50

阅读数:318

评论数:0

Linux内核部件分析 设备驱动模型的基石kobject

之前我们分析了引用计数kref,总结了sysfs提供的API,并翻译了介绍kobject原理及用法的文档。应该说准备工作做得足够多,kobject的实现怎么都可以看懂了,甚至只需要总结下API就行了。可我还是决定把kobject的实现代码从头分析一遍。一是因为kobject的代码很重要,会在设备驱...

2016-06-19 10:50:51

阅读数:984

评论数:0

Linux内核部件分析 更强的链表klist

前面我们说到过list_head,这是linux中通用的链表形式,双向循环链表,功能强大,实现简单优雅。可如果您认为list_head就是链表的极致,应该在linux链表界一统天下,那可就错了。据我所知,linux内核代码中至少还有两种链表能占有一席之地。一种就是hlist,一种就是本节要介绍的k...

2016-06-19 10:49:52

阅读数:243

评论数:0

Linux内核部件分析 记录生命周期的kref

kref是一个引用计数器,它被嵌套进其它的结构中,记录所嵌套结构的引用计数,并在计数清零时调用相应的清理函数。kref的原理和实现都非常简单,但要想用好却不容易,或者说kref被创建就是为了跟踪复杂情况下地结构引用销毁情况。所以这里先介绍kref的实现,再介绍其使用规则。 kref的头文件在...

2016-06-19 10:49:05

阅读数:249

评论数:0

Linux内核部件分析 连通世界的list

在linux内核中,有一种通用的双向循环链表,构成了各种队列的基础。链表的结构定义和相关函数均在include/linux/list.h中,下面就来全面的介绍这一链表的各种API。 struct list_head {      struct list_head *next, *prev...

2016-06-19 10:47:25

阅读数:310

评论数:0

基数树(radix tree)

基数(radix)树 Linux基数树(radix tree)是将指针与long整数键值相关联的机制,它存储有效率,并且可快速查询,用于指针与整数值的映射(如:IDR机制)、内存管理等。 IDR(ID Radix)机制是将对象的身份鉴别号整数值ID与对象指针建立关联表,完成从ID与...

2016-06-06 10:01:47

阅读数:1770

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭