悟空学Linux专栏----第5篇

原创 2015年07月08日 10:48:32

  悟空决定按照Linux达人教的方法研究Linux内核,他想首先研究Linux内核中数据结构,第一个吸引悟空的是Linux双向链表。

  很多程序设计双向链表的方式是如下:

  Struct fox{

  Int tail_length;

  Int weigth;

  Struct fox *next;

  Struct fox *prev;

  };

  但是Linux内核的双向链表采用了另外一种方式来实现上面的结构体的双向链表,具体的实现如下:

  Struct list_head {

  Struct list_head *next;

  Struct list_head *prev;

  };

  Struct fox{

  Int tail_length;

  Int weigth;

  Struct list_head list;

  };

  虽然这个结构体Struct list_head相当的简单,但是却是Linux内核中最为通用的一个结构体,被很多复杂的结构体包含着。然而令悟空感到神奇的是为什么,Linux要采用这种方式来管理Linux的双向链表,而没有采用通用的方式。

  悟空翻阅了很多资料都没有找到答案,最后终于在《Linux内核的设计与实现第三版》这本书中找到了答案。原来采用第一种设计的时候,几乎每种类型的结构体都需要实现双向链表的管理接口,这直接导致了双向链表的管理复杂,而且无法统一管理,和Linux的设计精神简单、高效背道而驰。而采用了第二种双向链表的实现方式,使得双向链表的管理变得相当简单,只需要一套简单的接口就能管理所有的双向链表,其主要的接口如下:

  初始化链表元素:void INIT_LIST_HEAD(struct list_head *list);

  链表头插入:list_add(struct list_head *new,struct list_head *head);

  链表尾插入:list_add_tail(struct list_head *new,struct list_head *head);

  删除元素:list_del(struct list_head *entry);

  这大大的简化了双向链表的管理难度,真是简单即美。

版权声明:本文为博主原创文章,未经博主允许不得转载。

悟空学Linux专栏----第36篇

一直以来“2号童鞋”都感觉自己比较笨,之所以感觉自己比较笨是因为这个世界有很多问题无法想明白,比如上节课老师为什么没有讲软中断的注销函数。为了想明白这个问题,“2号童鞋”失眠了好几晚,可是失眠了好几晚...

悟空学Linux专栏----第1篇

孙悟空完成了护送唐僧到西天取得真经的任务之后,被如来封为“斗战胜佛”。可这“斗战胜佛”是个闲差,整天无所事事,这一晃1400多年就这么过去,最近孙悟空感觉自己都跟不上这个时代了,想学点新的本领。于是跑...

悟空学Linux专栏----第29篇

今天悟空要讲的是中断的约束,这让悟空想起了师傅的紧箍咒,所以悟空一看到约束两字就有点不爽,总觉得这两个字扎眼。   悟空:中断是内核中执行最敏感的任务,因此需要满足一些约束。   A童鞋:那么需要...

悟空学Linux专栏----第27篇

由于唐僧请来了这么多木人上课,一下子增加了不少的人气,所以最近唐僧的这里迎来了很多学生报名试听,这着实让唐僧高兴了好一阵,唐僧心想终于不用对着木人上课了。所以唐僧打算好好上一下课,争取留住这些学生。为...

悟空学Linux专栏----第16篇

悟空觉得课堂估计是去不了,所以自己打算在家里继续自学,悟空知道达人老师接下来需要讲的是低分辨率的定时器。所谓定时器就是设定一个未来的时间,让系统在这个未来的时间触发一个特定的事件,执行一些预先设定的程...

悟空学Linux专栏----第24篇

今天八戒比较开心,原因是最近考试考了满分。这让大家对八戒刮目相看,大家没想到八戒每天在课堂睡觉,竟然最后还能考满分。所以悟空和沙僧来向八戒道贺。   悟空:看不出来啊,你这猪脑袋竟然能记住这么多东西...

悟空学Linux专栏----第31篇

自从悟空答应了“2号童鞋”下节课讲解Linux系统为什么不使用C++,而使用C作为主要语言之后。悟空就头大,查阅了很多资料,最后都没有得出一个比较有说服力的结论。这让悟空很是郁闷,心想自己要食言了,最...

悟空学Linux专栏----第33篇

最近八戒比较开心,自从上次他的18层梦的事情被媒体大肆报道之后,八戒就一下子成了网络红人。也正因为八戒的网上人气的不断攀升,所以越来越多的学生喜欢八戒的课了。这着实让八戒有点受宠若惊,所以八戒决定邀请...

悟空学Linux专栏----第28篇

由于唐僧上的课很多笑声,加上唐僧比较帅,所以“西游嵌入式培训班”一下子火了,很多人纷纷跑来报名,其中美女最多。这着实让唐僧高兴了很久,但是高兴之后唐僧也纠结,这么多的学生,需要多少老师啊?唐僧要求他的...

悟空学Linux专栏----第22篇

下课之后达人感到比较开心,因为今天悟空在课堂上提了不少的问题,达人心想今晚终于可以睡一个好觉了,所以达人今晚回家之后就早早的洗澡上床了。但是正当达人快要睡着的时候突然听到了外面有砰砰的敲门声,达人起来...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:悟空学Linux专栏----第5篇
举报原因:
原因补充:

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