上次阅读笨叔的《奔跑吧Linux内核(第2版) 卷2:调试与案例分析》时,由于无卷1的内容,导致后期阅读效率贼低(胡要是缺乏前面的知识点,后面讲解时依赖这些知识点,抓瞎了)。因此在看到新的一本linux内核相关的书籍,而且从目录上看是一本从前到后,内容逐步加深的《Linux内核深度解析》评测时,便第一时间填写了申请。在此感谢EEWorld提供的这次机会,让我可以系统化的补足之前的知识盲区,并在即将开始的基于4.x内核的项目中进行实战应用。
亮图
十分不幸的是,书很重,在翻看过程中,有一次手只拿了底部,导致封面直接裂开了,只能拿醋酸胶布粘起来了。
阅读方法
- 作者推荐使用Source Insight阅读源码,同样的,笨叔也有推荐使用此工具做源码阅读。虽然个人觉得Source Insight不太适合阅读大工程(工程太大,容易分不清该往哪跳转,甚至容易出现莫名其妙的闪退问题),但若控制好源码添加范围,Source Insight的模糊搜索功能和快速跳转功能的确能大大降低源码的阅读难度。
- 本书所讲解的内核版本为4.12,因此我们在对照书籍查看源码时,需选用4.12版内核源码
- 由于《Linux内核深度解析》是基于armv8-a平台,4.12版内核讲解的,因此作者也着重提到了armv8-a重要的两份资料,一本是《Cortex-A Series Programmer‘s Guide for ARMv8-A》,这本适合入门阅读,不知为何,这本书在官网上没找到对应的版本,只有v7版本的,因此此处贴出的资源是在其他渠道上找到的。另一本是《ARM Architecture Reference Manual ARMv8, for ARMv8-A architecture profile》,这本书适合作为工具书使用,在官网上能找到,但需要注意的是,找到的链接默认是最新版的,最新版的有有1.4W页,包括了很多armv8-a之后处理器的内容,因此在打开时,需切换到早期的版本下载,页数差不多是作者提到的6000页的版本即可。
- 本书的第一章讲armv8-a的内核启动过程,而bootload部分,选用了linux平台上常用的u-boot,由于此书的编写时间是在17至19年,因此需要最好下载此时间段以内的u-boot源码阅读,以免差异过大。
- 由于代码分支十分多,因此作者建议阅读源码时抓住主干内容,优先掌握所关注的信息,学完后再进行扩展