zoukankan      html  css  js  c++  java
  • 一个初学者该如何学习内核?

    一个初学者该如何学习内核?

    第一步:先会使用它。连Linux 是什么、基本操作都不会就去研究内核,纯属扯淡,“门”都没有。
    第二步:看懂内核源码需要一些操作系统、C 语言等的基础。
    第三步:找本合适的内核参考书,让它帮助你对内核有个整体的理解和认识,
    第四步:要能够动手配置编译内核,还要基本看得懂内核中的Kconfig 和Makefile 文件。
    最后,记住:“学习内核,就是学习内核的源代码,任何内核有关的书籍都是基于内核,而又不高于内核的。内核源码本身就是最好的参考资料,其他任何经典或非经典的书最多只是起到个辅助作用,不能也不应该取代内核代码在我们学习过程中的主导地位。”因此你要做得是选择内核的一个部分或子系统,严谨而细致得理解每一段代码的实现,多问多想多记。切勿抱着走马观花,得过且过的态度。

    Linux内核学习经验
    1. 内核学习的心理误区
    心理上的问题主要有两个,一个是盲目,就是在能够熟练使用Linux 之前,对Linux为何物还说不出个道道来,就迫不及待的盲目的去研究内核的源代码。重述Linus 的那句话:要先会使用它;第二个就是恐惧。人类进化这么多年,面对复杂的物体和事情还是总会有天生的惧怕感,体现在内核学习上面就是:那么庞大复杂的内核代码,让人面对起来该情何以堪啊!有了这种恐惧无力感存在,心理上就会去排斥面对接触内核源码,宁愿去抱着情景分析,搜集各种各样五花八门的内核书籍放在那里屯着,看了又忘,忘了又看,也不大情愿去认真细致得浏览源码

    2. 学习内核就是学习内核的源代码
    学习内核,就是学习内核的源代码,任何内核有关的书籍都是基于内核,而又不高于内核的。内核源码本身就是最好的参考资料,其他任何经典或非经典的书最多只是起到个辅助作用,不能也不应该取代内核代码在我们学习过程中的主导地位。

    3. 要抱着严谨细致的态度分析内核源码
    既然要学习内核源码,就要经常对内核代码进行分析,而内核代码千千万,还前仆后继的不断往里加,这就让大部分人都有种雾里看花花不见的无助感。不过不要怕,孔老夫子早就留给我们了应对之策:敏于事而慎于言,就有道而正焉,可谓好学也已。这就是说,做事要踏实才是好学生好同志,要遵循严谨的态度,去理解每一段代码的实现,多问多想多记。如果抱着走马观花,得过且过的态度,结果极有可能就是一边看一边丢,没有多大的收获。只要你使用这样的态度开始分析内核,那么无论你选择内核的哪个部分作为切入点,比如USB,比如进程管理,在花费相对不算很多的时间之后,你就会发现你对内核的理解会上升到另外一个高度,一个抱着情景分析,抱着0.1 内核完全注释,抱着各种各样的内核书籍翻来覆去的看很多遍又忘很多遍都无法达到的高度。

    4. 通过Kconfig 与Makefile 定位目标代码
    毫不夸张地说,Kconfig 和Makefile 是我们浏览内核代码时最为依仗的两个文件。基本上,Linux 内核中每一个目录下边都会有一个Kconfig 文件和一个Makefile 文件。 对于一个希望能够在Linux 内核的汪洋代码里看到一丝曙光的人来说,将它们放在怎么重要的地位都不过分。Kconfig 和Makefile 就是LinuxKernel 迷宫里的地图。地图引导我们去认识一个城市,而Kconfig 和Makefile 则可以让我们了解一个Kernel 目录下面的结构。我们每次浏览kernel 寻找属于自己的那一段代码时,都应该首先看看目录下的这两个文件。就像利用地图寻找目的地一样,我们需要利用Kconfig 和Makefile 来寻找所要研究的目标代码。




  • 相关阅读:
    小心服务器内存居高不下的元凶WebAPI服务
    注册登录过程点滴(二):使用MVC Remote验证的注意点
    .net framework 4.5为啥在IIS中找不到了
    windows平台下载Android源码
    unix及linux文件锁
    分布式软件系统
    C++ base
    linux目录结构
    linux中pkill的简单用法
    Linux中Kill进程的N种方法
  • 原文地址:https://www.cnblogs.com/qinkai/p/2431520.html
Copyright © 2011-2022 走看看