悟空学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专栏----第27篇

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

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

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

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

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

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

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

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

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

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

今天悟空得到了一个好消息,就是八戒竟然主动邀请他去上课了,这让悟空很是意外,意外之余有点小感动。所以悟空一大早就来到了课室,看到八戒正在那里睡觉。   悟空:你是猪啊,怎么还睡啊?   八戒:猴哥...

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

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

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

悟空最近比较郁闷,因为2号童鞋最近老是问悟空一些奇怪的问题。虽然大家都说2号童鞋很傻,但是悟空却觉得2号童鞋很聪明,因为如果悟空无法回答一个很傻的问题,那不是说明悟空更傻。悟空坚信自己不傻,所以悟空觉...

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

最近八戒比较开心,自从上次他的18层梦的事情被媒体大肆报道之后,八戒就一下子成了网络红人。也正因为八戒的网上人气的不断攀升,所以越来越多的学生喜欢八戒的课了。这着实让八戒有点受宠若惊,所以八戒决定邀请...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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