内核链表-解析

1.内核中的链表

linux内核链表与众不同,他不是把将数据结构塞入链表,而是将链表节点塞入数据,在2.1内核中引入了官方链表,从此内核中所有的链表使用都采用此链表,千万不要在重复造车轮子了!链表实现定义在<linux/list.h>,使用内核链表时,包含此文件。

1.1.传统的双向链表和内核中的双向链表的区别

  • 有个单独的头结点(head)
  • 每个节点(node)除了包含必要的数据之外,还有2个指针(pre,next)
  • pre指针指向前一个节点(node),next指针指向后一个节点(node)
  • 头结点(head)的pre指针指向链表的最后一个节点
  • 最后一个节点的next指针指向头结点(head)

传统的链表有个最大的缺点就是不好共通化,因为每个node中的data1,data2等等都是不确定的(无论是个数还是类型)。linux中的链表巧妙的解决了这个问题,linux的链表不是将用户数据保存在链表节点中,而是将链表节点保存在用户数据中.linux的链表节点只有2个指针(pre和next),这样的话,链表的节点将独立于用户数据之外,便于实现链表的共同操作。

 

 转载:linux内核中的链表 - wangLinuxer - 博客园

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
前言.........................................................................................................................................................5 本书的组织形式..............................................................................................................................6 精华版方法论部分导读......................................................................................................................8 Linux大史记...................................................................................................................................9 内核学习的方法论..........................................................................................................................9 驱动开发的方法论........................................................................................................................12 Linux内核问题门..........................................................................................................................13 缅怀已逝的十八年(1991~1998) ............................................................................................14 Linux诞生记.................................................................................................................................15 泰坦尼克的狂潮............................................................................................................................16 缅怀已逝的十八年(1999~2002) ............................................................................................17 提前发生的革命............................................................................................................................17 和平、爱情和Linux ......................................................................................................................19 缅怀已逝的十八年(2003~2006) ............................................................................................20 Ubuntu4.10 ...............................................................................................................................2

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值