《Linux内核深度解析》 ---- 序言阅读及相关资源获取
<article data-content="[{"type":"block","id":"3060-1621846615933","name":"paragraph","data":{},"nodes":[{"type":"text","id":"p5PQ-1621846617594","leaves":[{"text":" 上次阅读笨叔的《奔跑吧Linux内核(第2版) 卷2:调试与案例分析》时,由于无卷1的内容,导致后期阅读效率贼低(胡要是缺乏前面的知识点,后面讲解时依赖这些知识点,抓瞎了)。因此在看到新的一本linux内核相关的书籍,而且从目录上看是一本从前到后,内容逐步加深的《Linux内核深度解析》评测时,便第一时间填写了申请。在此感谢EEWorld提供的这次机会,让我可以系统化的补足之前的知识盲区,并在即将开始的基于4.x内核的项目中进行实战应用。","marks":[]}]}],"state":{}},{"type":"block","id":"ukt6-1734438597694","name":"heading","data":{"level":"h1","style":{"textIndent":0}},"nodes":[{"type":"text","id":"FBAa-1734438597692","leaves":[{"text":"亮图","marks":[]}]}],"state":{}},{"type":"block","id":"B9u7-1734437256645","name":"paragraph","data":{"version":1,"style":{"textIndent":28}},"nodes":[{"type":"text","id":"ow7g-1734437256646","leaves":[{"text":"十分不幸的是,书很重,在翻看过程中,有一次手只拿了底部,导致封面直接裂开了,只能拿醋酸胶布粘起来了。","marks":[]}]}],"state":{}}]"><p> 上次阅读笨叔的《奔跑吧Linux内核(第2版) 卷2:调试与案例分析》时,由于无卷1的内容,导致后期阅读效率贼低(胡要是缺乏前面的知识点,后面讲解时依赖这些知识点,抓瞎了)。因此在看到新的一本linux内核相关的书籍,而且从目录上看是一本从前到后,内容逐步加深的《Linux内核深度解析》评测时,便第一时间填写了申请。在此感谢EEWorld提供的这次机会,让我可以系统化的补足之前的知识盲区,并在即将开始的基于4.x内核的项目中进行实战应用。</p>
<h1 id="KDBZ-1734438940905" yne-bulb-block="heading" yne-bulb-level="1">亮图</h1>
<p> 十分不幸的是,书很重,在翻看过程中,有一次手只拿了底部,导致封面直接裂开了,只能拿醋酸胶布粘起来了。</p>
<div style="text-align: center;"></div>
<article data-content="[{"type":"block","id":"q9xF-1734315491448","name":"heading","data":{"level":"h1","style":{}},"nodes":[{"type":"text","id":"yec1-1734315491447","leaves":[{"text":"阅读方法","marks":[]}]}],"state":{}},{"type":"block","id":"LYR2-1734362422362","name":"paragraph","data":{"version":1,"style":{"textIndent":28}},"nodes":[{"type":"text","id":"kyav-1734362422363","leaves":[{"text":"阅读方法方面,个人的习惯都是先读目录,从目录中大致确认书籍内容是否可能是自己需要的,并从中获取需要着重学习的部分。另外,拿到书籍后,我会优先读目前前的序,特别是作者自己写的自序部分,经常会有意想不到的收获。这次阅读也不例外。","marks":[]}]}],"state":{}},{"type":"block","id":"Efxn-1734362577481","name":"paragraph","data":{"style":{"textIndent":28}},"nodes":[{"type":"text","id":"Kh4N-1734362577479","leaves":[{"text":"从作者的自序中,我得到了以下信息:","marks":[]}]}],"state":{}},{"type":"block","id":"1NHa-1734363576888","name":"list-item","data":{"baseIndex":1,"listId":"B563-1734363551068","listType":"ordered","listLevel":1},"nodes":[{"type":"text","id":"QJxJ-1734363576886","leaves":[{"text":"作者推荐使用Source Insight阅读源码,同样的,笨叔也有推荐使用此工具做源码阅读。虽然个人觉得Source Insight不太适合阅读大工程(工程太大,容易分不清该往哪跳转,甚至容易出现莫名其妙的闪退问题),但若控制好源码添加范围,Source Insight的模糊搜索功能和快速跳转功能的确能大大降低源码的阅读难度。","marks":[]}]}],"state":{"index":1}},{"type":"block","id":"t2Po-1734363556312","name":"list-item","data":{"baseIndex":1,"listId":"B563-1734363551068","listType":"ordered","listLevel":1},"nodes":[{"type":"text","id":"Qaix-1734363556310","leaves":[{"text":"本书所讲解的内核版本为4.12,因此我们在对照书籍查看源码时,需选用","marks":[]}]},{"type":"inline","id":"1FV6-1734363752362","name":"link","data":{"href":"https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.12.tar.xz"},"nodes":[{"type":"text","id":"6jeW-1734363752361","leaves":[{"text":"4.12版内核源码","marks":[{"type":"underline"},{"type":"color","value":"#0366d6"}]}]}]},{"type":"text","id":"7c7P-1734363752365","leaves":[{"text":"","marks":[]}]}],"state":{"index":2}},{"type":"block","id":"IB7i-1734363605273","name":"list-item","data":{"baseIndex":1,"listId":"B563-1734363551068","listType":"ordered","listLevel":1},"nodes":[{"type":"text","id":"oz8T-1734363605272","leaves":[{"text":"由于《Linux内核深度解析》是基于armv8-a平台,4.12版内核讲解的,因此作者也着重提到了armv8-a重要的两份资料,一本是《","marks":[]}]},{"type":"inline","id":"acID-1734363184371","name":"link","data":{"href":"https://www.chinaaet.com/resource/share/2000005565"},"nodes":[{"type":"text","id":"NfoG-1734363184369","leaves":[{"text":"Cortex-A Series Programmer‘s Guide for ARMv8-A","marks":[{"type":"underline"},{"type":"color","value":"#0366d6"}]}]}]},{"type":"text","id":"Uo0C-1734363184374","leaves":[{"text":"》,这本适合入门阅读,不知为何,这本书在官网上没找到对应的版本,只有v7版本的,因此此处贴出的资源是在其他渠道上找到的。另一本是《","marks":[]}]},{"type":"inline","id":"0Rgw-1734363481600","name":"link","data":{"href":"https://developer.arm.com/documentation/ddi0487/aa/?lang=en"},"nodes":[{"type":"text","id":"5eoe-1734363481599","leaves":[{"text":"ARM Architecture Reference Manual ARMv8, for ARMv8-A architecture profile","marks":[{"type":"underline"},{"type":"color","value":"#0366d6"}]}]}]},{"type":"text","id":"PQUi-1734363481603","leaves":[{"text":"》,这本书适合作为工具书使用,在官网上能找到,但需要注意的是,找到的链接默认是最新版的,最新版的有有1.4W页,包括了很多armv8-a之后处理器的内容,因此在打开时,需切换到早期的版本下载,页数差不多是作者提到的6000页的版本即可。","marks":[]}]}],"state":{"index":3}},{"type":"block","id":"RCRU-1734363590400","name":"list-item","data":{"baseIndex":1,"listId":"B563-1734363551068","listType":"ordered","listLevel":1},"nodes":[{"type":"text","id":"WUJv-1734363590399","leaves":[{"text":"本书的第一章讲armv8-a的内核启动过程,而bootload部分,选用了linux平台上常用的u-boot,由于此书的编写时间是在17至19年,因此需要最好下载此时间段以内的","marks":[]}]},{"type":"inline","id":"JtQq-1734363936306","name":"link","data":{"href":"https://ftp.denx.de/pub/u-boot/u-boot-2017.09.tar.bz2"},"nodes":[{"type":"text","id":"c2Y7-1734363936304","leaves":[{"text":"u-boo","marks":[{"type":"underline"},{"type":"color","value":"#0366d6"}]}]}]},{"type":"text","id":"lsKs-1734363936309","leaves":[{"text":"t源码阅读,以免差异过大。","marks":[]}]}],"state":{"index":4}},{"type":"block","id":"nula-1734437382709","name":"list-item","data":{"baseIndex":1,"listId":"B563-1734363551068","listType":"ordered","listLevel":1},"nodes":[{"type":"text","id":"Ludy-1734437382708","leaves":[{"text":"由于代码分支十分多,因此作者建议阅读源码时抓住主干内容,优先掌握所关注的信息,学完后再进行扩展","marks":[]}]}],"state":{"index":5}},{"type":"block","id":"cZMh-1734438658893","name":"heading","data":{"level":"h1","style":{}},"nodes":[{"type":"text","id":"SlbN-1734438658892","leaves":[{"text":"后续计划","marks":[]}]}],"state":{}},{"type":"block","id":"OGNh-1734438674982","name":"paragraph","data":{"version":1,"style":{"textIndent":28}},"nodes":[{"type":"text","id":"QQZl-1734438674983","leaves":[{"text":"目前已看玩了序的部分,了解了本书的编写思路,后面会按照计划从前至后,配合实际项目一步一步的加深理解,在过程中补充之前的知识盲区。","marks":[]}]}],"state":{}}]">
<h1 id="EjFs-1734439010357" yne-bulb-block="heading" yne-bulb-level="1">阅读方法</h1>
<divyne-bulb-block="paragraph"> 阅读方法方面,个人的习惯都是先读目录,从目录中大致确认书籍内容是否可能是自己需要的,并从中获取需要着重学习的部分。另外,拿到书籍后,我会优先读目前前的序,特别是作者自己写的自序部分,经常会有意想不到的收获。这次阅读也不例外。</div>
<divyne-bulb-block="paragraph"> 从作者的自序中,我得到了以下信息:</div>
<div>
<ol yne-block-type="list">
<li style="white-space:pre-wrap; word-break:break-word; color:#000000; background-color:rgba(0, 0, 0, 0);Microsoft YaHei", STXihei; list-style-type:decimal">作者推荐使用Source Insight阅读源码,同样的,笨叔也有推荐使用此工具做源码阅读。虽然个人觉得Source Insight不太适合阅读大工程(工程太大,容易分不清该往哪跳转,甚至容易出现莫名其妙的闪退问题),但若控制好源码添加范围,Source Insight的模糊搜索功能和快速跳转功能的确能大大降低源码的阅读难度。</li>
<li style="white-space:pre-wrap; word-break:break-word; color:#000000; background-color:rgba(0, 0, 0, 0);Microsoft YaHei", STXihei; list-style-type:decimal">本书所讲解的内核版本为4.12,因此我们在对照书籍查看源码时,需选用<a href="https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.12.tar.xz" target="_blank">4.12版内核源码</a></li>
<li style="white-space:pre-wrap; word-break:break-word; color:#000000; background-color:rgba(0, 0, 0, 0);Microsoft YaHei", STXihei; list-style-type:decimal">由于《Linux内核深度解析》是基于armv8-a平台,4.12版内核讲解的,因此作者也着重提到了armv8-a重要的两份资料,一本是《<a href="https://www.chinaaet.com/resource/share/2000005565">Cortex-A Series Programmer‘s Guide for ARMv8-A</a>》,这本适合入门阅读,不知为何,这本书在官网上没找到对应的版本,只有v7版本的,因此此处贴出的资源是在其他渠道上找到的。另一本是《<a href="https://developer.arm.com/documentation/ddi0487/aa/?lang=en">ARM Architecture Reference Manual ARMv8, for ARMv8-A architecture profile</a>》,这本书适合作为工具书使用,在官网上能找到,但需要注意的是,找到的链接默认是最新版的,最新版的有有1.4W页,包括了很多armv8-a之后处理器的内容,因此在打开时,需切换到早期的版本下载,页数差不多是作者提到的6000页的版本即可。</li>
<li style="white-space:pre-wrap; word-break:break-word; color:#000000; background-color:rgba(0, 0, 0, 0);Microsoft YaHei", STXihei; list-style-type:decimal">本书的第一章讲armv8-a的内核启动过程,而bootload部分,选用了linux平台上常用的u-boot,由于此书的编写时间是在17至19年,因此需要最好下载此时间段以内的<a href="https://ftp.denx.de/pub/u-boot/u-boot-2017.09.tar.bz2">u-boo</a>t源码阅读,以免差异过大。</li>
<li style="white-space:pre-wrap; word-break:break-word; color:#000000; background-color:rgba(0, 0, 0, 0);Microsoft YaHei", STXihei; list-style-type:decimal">由于代码分支十分多,因此作者建议阅读源码时抓住主干内容,优先掌握所关注的信息,学完后再进行扩展</li>
</ol>
</div>
<h1 id="pHs8-1734439010386"yne-bulb-block="heading" yne-bulb-level="1">后续计划</h1>
<divyne-bulb-block="paragraph"> 目前已看玩了序的部分,了解了本书的编写思路,后面会按照计划从前至后,配合实际项目一步一步的加深理解,在过程中补充之前的知识盲区。</div>
</article>
</article>
<p>用Source Insight阅读源码,甚至容易出现莫名其妙的闪退问题,这是什么原因</p>
Jacktang 发表于 2024-12-18 07:30
用Source Insight阅读源码,甚至容易出现莫名其妙的闪退问题,这是什么原因
<p>原因及不知道了,毕竟SI是闭源的。这个更多的是根据经验来看的,我原先用SI4带license授权的应用访问ssh共享的DAB工程,那工程很大,但肯定没到linux级别,就很容易突然出现闪退。换成其他文件数少点的工程,甚至删掉一些暂时不需要关心的目录,就一直不会有问题。</p>
<p>找个Source Insight看看。。。。。这是个很古老小众的编辑器吧?<img height="48" src="https://bbs.eeworld.com.cn/static/editor/plugins/hkemoji/sticker/facebook/smile.gif" width="48" /></p>
<p>这本书咋样?流水账还是真有干货?</p>
hellokitty_bean 发表于 2024-12-18 09:23
找个Source Insight看看。。。。。这是个很古老小众的编辑器吧?
<p>确实古老,而且更新很慢</p>
freebsder 发表于 2024-12-18 19:58
这本书咋样?流水账还是真有干货?
<p>从现在看完的内容看,还不算流水账,讲的很细。</p>
freebsder 发表于 2024-12-18 19:58
这本书咋样?流水账还是真有干货?
<p>看了下背景,确实是第一线的攻城狮。。。。。。。。。。应该还可以。</p>
oxlm_1 发表于 2024-12-19 09:07
确实古老,而且更新很慢
<p>我去下个回来装上了,前面一版是2017年的,现在最新版本2024年6月。</p>
<p><img height="48" src="https://bbs.eeworld.com.cn/static/editor/plugins/hkemoji/sticker/facebook/loveliness.gif" width="48" /></p>
<p>一直用source insight看代码的,有时在source insight上面修改好再传到ubuntu,感觉挺好用的</p>
<p>这本书讲的很细,跟着书籍去看代码挺不错的。</p>
<p>顺带请问 下面这个电子档能帮忙放在附件吗?直接下载来看看。那个论坛没有账号<br />
</p>
beyond_笑谈 发表于 2024-12-20 13:10
这本书讲的很细,跟着书籍去看代码挺不错的。
顺带请问 下面这个电子档能帮忙放在附件吗?直接下载来看 ...
<p>指南在这</p>
beyond_笑谈 发表于 2024-12-20 13:10
这本书讲的很细,跟着书籍去看代码挺不错的。
顺带请问 下面这个电子档能帮忙放在附件吗?直接下载来看 ...
<p>好像发布了文章后就不能二次编辑加附件了,只能先单独回了</p>
oxlm_1 发表于 2024-12-21 09:42
指南在这
<p>收到,谢谢。这个没有中文版?英文版可以直接下载,内容太多了,看起来太费时间</p>
beyond_笑谈 发表于 2024-12-21 09:46
收到,谢谢。这个没有中文版?英文版可以直接下载,内容太多了,看起来太费时间
<p>原版更全吧,中文翻译过来总会少那么些信息,而且还经常翻译错</p>
oxlm_1 发表于 2024-12-21 16:00
原版更全吧,中文翻译过来总会少那么些信息,而且还经常翻译错
<p>感谢分享咯。。。。。。。。。。。。。。。。。。<img height="48" src="https://bbs.eeworld.com.cn/static/editor/plugins/hkemoji/sticker/facebook/smile.gif" width="48" /></p>
beyond_笑谈 发表于 2024-12-20 13:07
一直用source insight看代码的,有时在source insight上面修改好再传到ubuntu,感觉挺好用的
<p>以前我也使用SI看代码,不过后来切换到VSC上了,因为VSC能提供SI不能提供的git文件管理,代码格式化(确切的说,其实SI也能通过集成astyle命令行命令实现,但配置复杂),精准跳转,甚至通义灵码之类的AI辅助功能。</p>
页:
[1]