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

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

  为了提高上课的学习效率,悟空在上课之前先预习一下,预习的时候发现了两个问题。一个是struct clocksource结构体中的read函数,这个函数是一个挂钩函数,那么这个挂钩函数最后调用的是什么函数呢?Linux内核又为什么要设计这个挂钩函数呢?直接调用不就得了吗?第二个就是这个函数返回的是一个cycle计数值,也就是时钟周期的计数值,要将这个值转换为时间,就必须知道时钟频率,而这个结构体中却找不到时钟频率。

  带着这两个问题,悟空来到课堂。悟空比较猴急,一上来就直奔主题。

  悟空:老师,为什么struct clocksource结构体中的read函数是一个挂钩函数?这个函数最后调用的是那个函数呢?

  达人:敏捷软件开发中有一个设计原则:依赖倒置原则(DIP),这个原则的意思就是抽象不应该依赖于细节,细节应该依赖于抽象。打个比方,思想这些抽象的东西不应该依赖于具体某个人的头,而是具体某个人的头应该依赖于思想。而这个函数之所以这么设计就是为了遵守这个原则。

  悟空听完达人的解释之后,感觉自己在腾云,没有听明白达人的意思,但是想再问,又不知道如何问。悟空想想还是不管这些原则的定义了,直接问这个原则有什么好处吧。

  悟空:老师,那么这样设计有什么好处呢?

  达人:遵守这个原则之后,设计的时候如果需要添加新的时钟驱动,设计新的读取时间的函数的时候,只需要修改这个挂钩函数就可以实现,而不需要修改太多的地方,这样就增强了代码的移植性。

  悟空:哦,原来是这样啊。原来一个小小的挂钩函数的背后还隐藏了这么多东西啊。

  待悟空准备问第二个问题的时候,下课的铃声响起了。

  达人大怒:你这猴头,每次都来课堂捣乱,这节课又害得我没有讲完。

  说完重重的敲了悟空四下之后离开了。

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

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

下课之后达人感到比较开心,因为今天悟空在课堂上提了不少的问题,达人心想今晚终于可以睡一个好觉了,所以达人今晚回家之后就早早的洗澡上床了。但是正当达人快要睡着的时候突然听到了外面有砰砰的敲门声,达人起来...
  • wukonglinux
  • wukonglinux
  • 2015年07月13日 10:11
  • 169

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

因为悟空昨晚好好研究了一下软中断,所以悟空今天上课心里终于有底了。   悟空:Linux内核采用softirq_action结构体来表示软中断,具体结构体如下   struct softirq_a...
  • wukonglinux
  • wukonglinux
  • 2015年07月14日 10:12
  • 156

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

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

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

为了尽快解决这个问题,悟空打算好好的研究一下该无线的驱动程序,悟空先花费了一晚的时间统计了一下驱动程序,总文件数为55个,总的代码行数为45954行。统计完之后悟空开始研究驱动的代码,可是看来看去,悟...
  • wukonglinux
  • wukonglinux
  • 2015年07月14日 10:21
  • 192

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

(Linux内核同步机制之自旋锁)   接着讲解自旋锁操作API!   spin_lock_init(x);   该宏用于初始化自旋锁x,自旋锁在真正使用之前必须先初始化,该宏用于动态初始化; ...
  • wukonglinux
  • wukonglinux
  • 2015年07月14日 10:36
  • 185

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

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

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

原来Linux内核中有一张代码地图呀,哈哈,悟空还是挺高兴的,心觉着吧,这下可以根据这张内核地图来研究内核代码了吧。怀着这兴致,打开内核根目录下的Makefile文件一看,哎呀!完全看不懂呀有木有?悟...
  • wukonglinux
  • wukonglinux
  • 2015年07月07日 16:06
  • 211

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

俗话说人怕出名,猪怕壮,八戒一直很低调,但是他现在又壮有出名。人气爆棚,但也为八戒带来了不少的麻烦,比如今天,明明是悟空的课,唐僧却硬是让八戒来讲。八戒打算给学生们讲软中断的执行,这是八戒最喜欢讲的一...
  • wukonglinux
  • wukonglinux
  • 2015年07月14日 10:14
  • 199

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

下课之后悟空百思不得其解,为什么达人老师要敲他四下,这四下代表了什么含义呢?悟空想了很久也没有想明白,这时只听到外面的打更的人连敲四下。悟空这才恍然大悟,以前菩提老祖敲三下意味着三更给他开小灶,达人敲...
  • wukonglinux
  • wukonglinux
  • 2015年07月10日 14:31
  • 246

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

(Linux内核同步机制之信号量)   从这篇开始就来讲讲Linux内核的同步机制吧!   首先我们来看看semaphore信号量吧;定义在   struct semaphore {   sp...
  • wukonglinux
  • wukonglinux
  • 2015年07月14日 10:34
  • 194
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:悟空学Linux专栏----第12篇
举报原因:
原因补充:

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