关闭

Linux内核源码分析方法

发表于:2013-3-25 13:46

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:Florian    来源:51Testing软件测试网采编

  第七步:模块架构图

  透过模块间的依赖关系图,可以很清楚的表达模块在整个待分析代码中的地位和功能。基于此,我们可以将模块分类,整理出代码的架构关系。

  如cpufreq的模块依赖关系图所示,我们可以很清楚的看到所有的调频策略模块都是依赖于核心模块cpufreq、cpufreq_stats和freq_table的。如果我们把被依赖的三个模块抽象为代码的核心框架的话,这些调频策略模块都是建立在这个框架之上的,它们负责和用户层交互。而核心模块cpufreq提供了驱动等相关的接口负责与系统底层交互。因此,我们可以得到如下的模块架构图。

  当然,结构图并非模块的无机拼接,我们还需要结合查阅的资料去丰富架构图的含义。因此,这里的架构图的细节会随着不同的人的理解有所偏差。但是架构图主体的含义很基本一致的。至此,我们完成了待分析的内核代码的所有分析工作。

  四、总结

  正如文章开始所说,我们不可能对全部的内核代码进行分析。因此,通过对待分析的代码进行信息搜集,然后按照上述的流程分析出代码的原本始末是了解内核本质的有效手段。这种按照具体需要分析内核代码的方式,为快速进入Linux内核的世界提供了可能。通过这种方式,不断的对内核的其他模块分析,最后综合得到自己对Linux内核的理解,也就达到了我们学习Linux内核的目的。

  最后向大家推荐两本学习内核的参考书。一本是《Linux内核的设计与实现》,该书为读者快速精简的介绍了Linux内核的主要功能和实现。但不会把读者带入Linux内核代码的深渊中,是了解内核架构和入门Linux内核代码的非常好的参考书,同时该书会提高读者对内核代码的兴趣。另一本是《深入理解Linux内核》,该书的经典我不必多说。我只是建议,如果想更好的学习本书,最好是结合着内核代码一起阅读。由于这本书对内核代码描述的十分详细,所以结合代码进行阅读可以帮助我们更好的理解内核代码。同时,在分析内核代码的过程中,也可以在本书中找到具有参考价值的资料。最后,愿大家早日进入内核的世界,体验Linux带给我们的惊喜!

  本文转载自:http://www.cnblogs.com/fanzhidongyzby/archive/2013/03/20/2970624.html

55/5<12345
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号