内核之旅
文章平均质量分 84
cmhummer
这个作者很懒,什么都没留下…
展开
-
编写第一个内核模块
内核模块是Linux内核向外部提供的一个接口,其全称是动态可加载内核模块(Loadabkle Kernel Module,LKM)。Linux内核之所以提供模块机制,是因为它本身是一个单内核(monolithic kernel)。单内核的最大优点是效率高,因为所有的内容都集成在一起,但其缺点是可扩展性和可维护性相对较差,模块机制就是为了弥补这一缺陷。...原创 2011-03-30 20:07:18 · 170 阅读 · 0 评论 -
Linux内核链表
一、链表数据结构简介 链表是一种常用的组织数据的数据结构,它通过指针将一系列数据节点连接成一条数据链,是线性表的一种重要实现方式。相对于数组,链表具有更好的动态性,建立链表时无需预先知道数据总量,可以随机分配空间,可以高效地在链表中的任意位置实时插入或删除数据。链表的开销主要是访问的顺序性和组织链的空间损失。 通常链表包括两个域:数据域和指针域,数据域用于存储数据,指针域用于建立...原创 2011-04-01 17:28:24 · 96 阅读 · 0 评论 -
Linux内核链表(二)
4)遍历遍历是链表最经常的操作之一,为了方便核心应用遍历链表,Linux链表将遍历操作抽象成几个宏。在介绍遍历宏之前,我们先看看如何从链表中访问到我们真正需要的数据项:a)由链表结点到数据项变量由上面的分析可知,内核链表中仅保存了数据项结构中list_head成员变量的地址,那么我们如何通过这个list_head成员访问到作为它的所有者的节点数据呢?在list.h文件中有一个lis...原创 2011-04-01 22:06:43 · 114 阅读 · 0 评论