Linux常用的数据结构

转载 2015年11月18日 21:56:25
内核使用的数据结构有双向链表,单向链表和hash链表。另外,基树和红黑树也是内核使用的数据结构。实际上,这也是程序代码中通常使用的数据结构,一些偏僻难的数据结构并不常见。

1. container

  container是linux很重要的一个概念。有了container方法,才能实现对对象的封装。

  分析一下container方法。

======================================================================

#define container_of(ptr, type, member) ({               \

        const typeof( ((type *)0)->member ) *__mptr = (ptr);      \

        (type *)( (char *)__mptr - offsetof(type,member) );})


#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)

  这个方法巧妙的实现了通过结构的一个成员指针找到整个结构的地址。有了container方法,list才

成为了一个通用的数据结构,通过container方法,还可以实现内核的封装,程序之间不暴露

内部的数据。

Linux内核常用数据结构要点

简单总结一下Linux Kernel常用数据结构和选取原则
  • ace_an
  • ace_an
  • 2016年12月22日 13:56
  • 946

Linux内核常用宏和数据结构二(学习内核必备)

3. HASH表   HASH表适用于不需要对整个空间元素进行排序,而是只需要能快速找到某个元素的场合,是一种以空间换时间的方法,本质也是线性表,但由一个大的线性表拆分为了多个小线性表,由于只需要...

linux内核常用数据结构和函数解释

1.struct hrtimer:高精度定时器 struct hrtimer { struct timerqueue_node node; ktime_t _softexpires; ...

Linux内核常用数据结构要点

Linux中最重要最常用如下四种: LIST:链表 Linux内核的标准链表就是采用“环形、双向”链表形式实现沿着链表移动智能是线性移动需要随机访问的数据,一般不使用链表链表...

linux内核中常用的数据结构和操作详解

目前在学习研究linux系统,作为一名初学者,感觉很吃力,通过网友指点和自己琢磨,总结出,首先理解linux关键数据结构,对理解linux系统大有裨益,故总结下文——详述相关关键数据结构。 1. 前言...

Linux的常用数据结构之链表

操作系统内核常需要维护数据结构的链表。Linux 内核已经同时有几个链表实现。为减少复制代码的数量, 内核已经创建了一个标准环形双向链表,并鼓励需要操作链表的人使用这个设施. 使用链表接口时,应...

Linux内核常用宏和数据结构一(学习内核必备)

本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性,严禁用于任何商业用途。 msn: yfydz_no1@hotmail.com 来源:http...

Linux 驱动中常用的数据结构

但凡阅读过Linux内核代码的工程师都有一个概念,Linux内核遍布着各种各样的链表结构。Tasklets、Workqueue、Hash、目录树等地方都用到数据链表。可以认为是Linux内核最重要的数...

Linux内核中的常用数据结构-双向链表(1)

Linux的内核代码,网上很多,例如http://docs.huihoo.com/doxygen/linux/kernel/3.7/include_2linux_2types_8h_source.ht...

Linux内核常用数据结构

Linux内核链表、哈希链表、红黑树....
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Linux常用的数据结构
举报原因:
原因补充:

(最多只允许输入30个字)