深入Linux系统编程 (序)

这是这一系列的第一篇文章,先来唠叨唠叨写这些内容的初衷吧。

记得小时候玩航模,最开始的兴趣是因为好奇,好奇飞机那么大的铁家伙,怎么就能飞上天呢?后来开始玩简单的手扔的飞机模型,渐渐知道了机翼的外形会如何影响飞机的飞行路线,如何调整能让扔出去的飞机飞得稳,飞得远;再后来,学会了给飞机加上动力,加上遥控,当然零件都是买的现成的,照着说明书装上去,再微调下配重和机翼就可以飞了;然后在这个过程中开始对动力和遥控感兴趣,开始研究电机的结构和工作原理,了解无线发射和接收装置的工作原理;然后再进一步,为了能获得更强劲的动力,换成了燃油的发动机,玩的过程中对内燃发动机的工作原理也有了了解。虽然我的航空之旅到此为止就没有再继续深入下去了,但是从这个过程过来之后,始终没有影响我对航空技术的兴趣,我也很清楚在这一领域我如果想继续深入下去的话该走的方向:空气动力学,燃烧理论,控制技术等等。偶尔看一些内容稍微深入一点的航空技术科普文章,也能看懂大部分。

学习本该就是这样一个过程。

但是我后来加入了软件行业之后,我却没有顺应这个本该自然的过程。Linux是个巨大的代码宝库,汇聚了全世界顶级头脑的智慧。我想到这个宝库中去一探究竟,获取丰富的营养。于是我花了不少的业余时间到这里面,试图深入理解Linux内核。我很吃力地看懂了段页式内存管理,明白了内核中的进程数据结构,知道了Linux如何处理中断,如何处理时钟信号,如何调度程序的执行,然后呢?对我的工作有启发吗?有指导吗?只能说,有,但是性价比不太高。关键是这个过程很痛苦,很多时候都处于:这是什么鬼东西,这又是什么鬼东西的状态。所以在这件事情上,我认为自己其实很不成功。

忽然有一天,我认识到,这是不是就像让一个对飞机很好奇的小孩一开始就学习电动机结构,数字电路原理,而不是先让他动手去玩个简单的飞机一样?这个小孩没有从此失去对飞机的兴趣就已经是万幸了。

要深入一个东西之前,是不是应该先在宏观上把这个东西能干什么,有什么表现看清楚再去深入?

于是,我决定开这么一个专题先从宏观上了解一下Linux系统,从他外围的方方面面看清楚他到底都能干些什么,能提供哪些功能?有些地方顺带着深入一点点,也许会对我们手头的工作有大的启发。

虽然题目叫每周已深入,但其实内容相对于内核来说,一点也不深入;同时如果相比程序员应对大部分日常工作使用的技术来说呢,又有那么一点点深入。就像对一个航模飞机调整配重,扩展零件,调整外形一样,当然有时候我们也会在某处敲敲打打,或者撬开外壳看看里面精巧的结构,但也只是看一眼而已。

我平时的工作也很忙,基本是996,所以每周写一篇已经是我能接受的最高频率了。计划每周介绍那么两三个知识点吧。目前依我看的话,要把Linux周身看一遍,怎么也得50个周,也就是得持续一年左右,前提是如果我能坚持下来的话。如果稍微偷一下懒,可能就得持续两年了。

我希望我写作的过程,也是和广大网友共同交流,共同提高的过程。如果还能在这里得到读者的指点,也算是对我付出的精力的奖赏,在此先行谢过。

你可能感兴趣的:(深入Linux系统编程 (序))