没学过操作系统课程,对内核的各种机制没有概念,比如页缓存,块缓冲区,硬件缓存。晕了。
更有甚者,不知道进程间通信、进程、调度的概念。
我是电子信信专业的,毕业后真不知道这些,直到自学了freeRTOS。
RTOS的内存管理比linux简单很多,因为没有虚拟内存。
书太厚。浮躁。---- 找个不需要下了班加班的工作。挤时间。
代码太多,不知道怎么开始看。---- 非重点,不需要看的别看。
代码层次逻辑深了,看不懂。---- 多本书互相印证,网上资料等。实在不行,先跳过。。。
编译不知道哪个文件是实际参与编译的。
解决方法: source insight 文件列表工具。 vscode 使用 bear工具。
bear+vsc方法,韦东山:https://blog.csdn.net/thisway_diy/article/details/127426986
生成si文件列表:https://blog.csdn.net/tao475824827/article/details/106562452
si需要Samba服务配置。vsc只需要软件内的ssh,比较简单。
总想找个更好,更合适的书来看。去看了很多跟linux内核不太相关的书:
操作系统导论OST(开源书),
UNIX操作系统设计(linus写linux参考了这本书)
xv6/mcore/各种自己实现玩具os
Linux那些事儿(任桥伟说硬啃代码)
看再多,也跟linux没有鸡毛关系,学linux内核只看linux内核。。。
以为学会了对内核进行perf,就学会了内核。
ftrace、ebpf等等分析大法。只是辅助作用,学半天这玩意,你还是不懂内核。
学习方法:就这本书,肝就完了。
【我大致看完了一遍,用了半年时间。这次自己重新阐述一遍,再巩固一下。】
学完了2.6.11还得学高版本的内核,我是从情景分析2.4版本内核开始学的,版本太高了看不懂。
【情景分析也看了半年多】
深耕多年,可能也无法找到Linux方面的工作,沉没成本很高,适用于有业余时间,又实在不知道学什么的人。。。
或者,岁数大了,马上面临失业,抓住这最后一根稻草,再拼一次的人。
前置必走,非弯路,《操作系统真象还原》熟悉x86汇编,x64我也还没学。
我会将x86体系结构融入到文章里面。
文章内容:
1.用自己的话,重新阐述一遍《深入理解linux内核》。
2.代码流程图,数据结构图,关键概念,关键API。
3.是什么,为什么,怎么做。
4.调试代码,观察对用户态内核态有什么影响。