这一次,让我们用读小说的心态拿下Linux源码

你好,我是闪客,欢迎和我一起学习Linux源码。

每个程序员都有一个操作系统梦,想要深入理解操作系统,品读源码是必经之路。

很多优秀的操作系统书籍,都是以 Linux 0.11 这个经典版本为研究对象进行讲解的,比如《Linux 内核设计的艺术》《Linux 内核完全注释》等,毕竟挑战最新版本难度过大,Linux 0.11的知识含量更匹配初学者需要,也足以让我们建立对操作系统的基本认识。

但为什么即便是 Linux 0.11 这种代码量最少的版本,仍然令很多人望而却步呢?

我们看看《Linux 内核设计的艺术》的开头:

对于操作系统而言,稳定且可靠地运行是最重要的。现行技术方案是将用户进程与用户进程之间、用户进程与操作系统之间进行分离,操作系统可以管理用户进程,但是用户进程之间不能相互干预 ……

怎么样?你是不是看了个开头,就有点昏昏欲睡?因为这些图书已经建立了宏观视野,仿佛“上帝”俯瞰源码,一切了然于胸。然而对于还没入门的我们来说,跟着大部头书籍梳理操作系统的整体逻辑,往往就会以失败告终。

而同样都是大部头书籍,为什么很多小说就能让我们欲罢不能,看得直呼过瘾。我们看一下《天龙八部》的开头。

青光闪动,一柄青钢剑倏地刺出,指向中年汉子左肩,使剑少年不待剑招用老,腕抖剑斜,剑锋已削向那汉子右颈。那中年汉子……

感觉很不一样吧?在我们没有深厚积累的时候,强行做思想拔高是拔不上去的,还不如保持一张白纸的状态,轻装上阵,看到哪里算哪里。随着情节的展开,你会迅速地沉浸其中。

于是,我试着用读小说的心态,去阅读 Linux 源代码。我不再企图一下子就能梳理出什么思想、体系,但不知道从哪一行代码起,整个操作系统的来龙去脉,已经清晰地出现在我的面前了,这个过程竟然是不知不觉的。

一开始,我只是想简单分享一下自己借助Linux 0.11 源码学习操作系统的感受。当我把自己理解后的内容梳理出来,没想到一下就写了50多讲。

因为有了自己一点点的推导和理解,我不再需要刻意记忆那繁杂的知识点。读着读着,我已经清晰明白这样的体系,是如何一步步从第一行代码逐步建立起来的。

这些程序如何“起承转合”,都完美融合在了我阅读 Linux 0.11 这个大故事背景下,十分自然。

这一次,让我们用读小说的心态拿下Linux源码_第1张图片

我把这个系列课程分成了五大部分。[strong_begin]本课程是 Linux0.11 源码趣读第一、二季。[strong_end]

第一部分:进入内核前的苦力活,这是我们第一季的内容,这部分会讲述从开机后的那一刻,一直到 Linux 内核的 main 方法,到底经历了什么。这些工作与 Intel CPU 的开发手册高度相关。通过这一部分的学习,你将会对开机后发生的事情,以及 Intel CPU 的体系结构有个清晰的认识。

第二部分:大战前期的初始化工作,这是我们第二季的内容,讲述 main 方法中的各种初始化函数,这些函数是操作系统各个模块得以运作的基础,因为它建立了内核中相当重要的数据结构。比如在进程调度初始化时,建立了 task_struct 结构,这是进程调度的核心。其实之后操作系统各个模块的运作原理,就是不断和这些数据结构打交道而已。

第三部分:一个新进程的诞生,讲述了从内核态切换至用户态,并建立起第一个用户进程的全部过程。有了第一个进程的建立,后面第二个、第三个进程的建立几乎是完全一样的道理。学完这部分,你将会理解一个多进程的操作系统是如何建立和运作的。

第四部分:shell 程序的到来,主要讨论如何将磁盘中存储的 shell 程序加载到内存中来,并最终交给 CPU 去执行。 shell 程序本身会不断接收用户的输入,然后通过用户的输入信息,创建一个新的进程,将硬盘中的数据加载到内存中来,再交给 CPU 去执行,完美闭环至此形成。

第五部分:一条 shell 程序的执行。我们就会跟着一条 shell 程序“走南闯北”,从用户输入给电脑一个一个字符串开始,一直讲到该shell程序最终被执行。这个过程几乎涉及到操作系统全部模块的知识。通过这一部分,你就能把前四个模块,以及整个操作系统的知识体系做一个串联,掌握一条程序执行的全部细节。

列出全景图,是为了让你有所期待,不过别有负担,就把它当本小说,从头跟着我一步步学习就好啦。

在这个专栏里,我并不会总把操作系统的体系架构挂在嘴边,而是通过一行行代码逐渐把你带入情节,最终让你不知不觉地发现:原来整个操作系统的体系就这样一点点建立起来了。

希望你跟我走完这个系列,也能发出一句感叹,原来操作系统源码不过如此,就是这么个破玩意而已!

最后简单介绍一下自己,我是低并发编程的公号作者。业余时间我很喜欢研究各种底层技术,并擅长用通俗易懂的语言讲解复杂的技术原理。

我们的第一、二季内容包含20讲,短小精悍,却能帮你有效推导操作系统的核心工作原理。

点击免费领取全集>> https://time.geekbang.org/ope...

或保存海报微信扫码领取
这一次,让我们用读小说的心态拿下Linux源码_第2张图片

你可能感兴趣的:(后端)