【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】
很多学习linux kernel的同学都会陷入到一个误区当中。一方面,他们希望自己学习的东西大而全,恨不能理解全部的kernel代码;另外一方面,他们常常无法将学习到的知识应用到工作当中,这会导致一种感觉,好像学习了很多东西,但是基本上都没有什么用。
所以,这里我建议同学们可以从这几个角度去理解内核就可以了。既可以学习到知识,也可以在现实中发挥作用。
1)注重对kernel整体结构的把握
这主要包括kernel怎么启动,怎么加载驱动,怎么加载文件系统,怎么编译等等。
2)了解kernel内核层、中断的处理流程
这主要包括了kernel是如何处理系统调用和中断的。
3)了解kernel的编译和调试。
大多数同学喜欢看 linux 的书籍,却不怎么去调试,其实用qemu仿真学习是最好的学习方法,没有之一。
4)了解vmlinux.txt
了解vmlinux.txt,即kernel dump出来的文件,这是学习汇编最好的方法,没有之一。
5)了解arch目录下某一个体系结构的代码
现在的代码分工非常严格,比如kernel支持很多的cpu,每一个cpu又可以有很多的soc,每一个soc又可以有很多的platform。一定要了解一款。
6)了解kernel驱动代码
大部分kernel开发的同学都是以驱动开发为主,所以platform device/ platform driver/bus一定要好好掌握。
7)signal机制
signal机制是unix/linux os的重要特性,一定要好好掌握。
8)实践比理论更重要
看太多的书,不如自己实践一下。代码十行不如手写一行,手写十行不如汇编一行,说的就是这个基本道理。
希望大家都能找到适合自己的kernel学习方法。:-)
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 我们