玩蛇网提供最新Python编程技术信息以及Python资源下载!

新手Linux内核学习入门解读

玩蛇网推荐图文教程:python 列表

这是一篇关于Linux内核学习解读的文章。从一个初者的角度,聊聊Linux内核学习方法,及容易遇到的问题。

首先,学习内核的好处很多,在学习过程中不仅可以夯实大量理论基础,还可以学习到很多编码惯用法,提升学习能力和分析能力。但是如果问其如何学习Linux内核,不每个人的答案都不会相同。
可能有的人会告诉你先去看看0.11的内核源码,也会有人告诉你一定要看看《Linux内核设计与实现》这类的图书。还有会说先把内存寻址学懂,然后再开始考虑网络协议栈和文件系统之类的内容。做为一个初学者,你要如何选择?

记得我刚接触时,我也一定会给出同样的答案,不过今天的内容并不从这几个角度去介绍,而是介绍一些我学习过程中的一些小技巧。

一、高度决定视角,视角决定行动

在学习内核过程中最容易犯的错误,也是非常难掌握的其实是你站在一个什么样的高度上去学习。
什么样的高度去学习也与自身的能力相关,所以这个问题其实更多是在新开始学习的学习者感到非常痛苦的一件事。一方面又希望自己能学懂,但是又不知道如何开始入手。


谈谈如何学习Linux内核

这里有几个简单的例子:
像是我一开始就看源码时,最开始我也做过这种事,内核有什么都不知道,结果就想着啃0.11的内核,结果很显然,2天立马放弃,完全看不懂。
翻开书从第一页开始往下啃,如果这本书比较薄还好,如果比较厚,比如《深入Linux内核架构》,那看2天也得放弃。
看书从不喜欢看目录,不喜欢快速浏览,就想着一个一个字眼的往下抠。如果本身有一定基础,看的时候还不会觉得腻,但是很快就发现,看了半天,什么都没有记住。
还有很多类似的问题,这些都是我们平时学习的时候特别容易出现的一些误区。这些其实都是没有正确审视自己的能力,胡乱挑选高度导致。

二、你理解的高度是什么?

这个高度到底是什么?我这里给一个我自己的界定:高度:指切入问题时采取的抽象程度。

语文不好,说的乱七八糟,说的直白一些,也就是说:
高度越高,也就是越偏向于理解各种抽象概念,倾向于构建对整体结构的一个认知,忽略一些不必要细节,不关心技术实现手段。
高度越低,也就是越偏向于对使用技术的选择,倾向于代码实现的各个细节,但是前提一般会在某个抽象的概念领域内进行各种细节性的讨论。

我们的大脑更倾向于理解抽象的内容,但是在行动时,我们却更倾向于去把握细节性的内容。结果导致的内容就是,我们总是希望通过学习细节来构造对抽象概念的理解,最后被细节性内容中各种噪声干扰思绪,产生一种“这东西好难”的错觉。在理解了这点,那高度对我们的行为有和指导意义也就呼之欲出了?以读书为例

站的越高,意味着自己看的内容越粗糙,也就是看书的时候不会去逐字逐句的看,而是一个章节一个章节的看,极端的情况就是只看目录,在这个过程中主要集中精力构建整体结构,对核心的概念进行抽象。
这时候学的内容都相对表面,但是好处就是对以后的学习有很强的指导意义,缺点很明显,会让人底气不足,而且在达到一定程度后,很容易到达瓶颈,发觉怎么看都看不懂了。站的越低,意味着自己看的内容很细致,看书的时候就是一个个字眼的扣,极端情况就是开始阅读源码,去看开源社区的各种问题。但是就像诗句说的,站的越低,也就常有一种“不识庐山真面目,只缘身在此山中”的感觉。这种情况下特别容易被各种细节干扰,例如为什么要有这些参数,为什么这里需要判断这个条件等等这些细枝末节的问题。

三、如何正确的运用高度
一篇博文给我的印象很深刻,作者理解的学习曲线划分成了两个比较大的过程,上升的过程就是一个不断学习积累的过程,而平缓没有增长的过程则是对之前积累到饱和的知识进行消化的过程。我将这个学习过程进行进一步的划分,我觉得在学习积累的前半部分应该以偏向学习抽象概念为主,而后半部分应该偏向学习实现细节。

最后,新手Linux内核学习入门解读,个人的心得是从高到低的学习,在一个新的学习阶段,应该先多花点时间学习一些概念化的内容,这时候不要去看具体的实现方法;而是需要多考虑如何在大脑中构建各种抽象模型,对整体的架构有所概念了,然后开始学习一些细节性的内容,比如开始看些源码,抠写书上的字眼,读读一些具体的博客什么的。

玩蛇网文章,转载请注明出处和文章网址:https://www.iplaypy.com/linux/l7040.html

相关文章 Recommend

玩蛇网Python互助QQ群,欢迎加入-->: 106381465 玩蛇网Python新手群
出炉日期:2017-01-03 21:39 玩蛇网 www.iplaypy.com

您现在的位置: 玩蛇网首页 > linux入门教程 > 正文内容
我要分享到:

必知PYTHON教程 Must Know PYTHON Tutorials

必知PYTHON模块 Must Know PYTHON Modules