像看小说一样阅读Linux源码

博文小编

2024-04-11

每个程序员都有一个操作系统梦,而操作系统也是每个程序员的心结。

一知半解地了解一点儿操作系统的知识,已经无法满足当下程序员的需求。

但要深入剖析操作系统,又是大部分程序员都很惶恐的一件事。

如果要让程序员读一遍操作系统源码,那简直跟要了命一样。

其实,操作系统的源码并没有那么可怕。

有很多优秀的操作系统图书都是以 Linux-0.11 这个经典版本为研究对象进行讲解的,可为什么即便是 Linux-0.11 这种代码量最少的版本,仍然令很多人望而却步呢?

先不直接回答这个问题,我们看一下《天龙八部》的开头:

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

记住这个感觉没?我们再看某本Linux图书的开头:

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

好了,不用读下去了,这句话高瞻远瞩地从宏观上帮我们梳理了操作系统的体系结构,但对于尚不了解操作系统的人来说,可能完全不知道这句话在说什么。

虽然说思想很重要,但在没有任何细节做积累时强行进行思想的拔高,是拔不上去的,还不如一直保持一张白纸的状态。

反观《天龙八部》的开头,连人物的名字都没有,更别说梳理整个体系结构了,上来直接一个精彩镜头,让你迅速进入故事情节。可是读完整部小说的读者,无一不对里面的人物如数家珍,对大理的风光仿佛亲眼看见了一般,对宋辽矛盾的激烈感同身受。

为什么会这样呢?

因为一切的爱恨情仇,都是读者通过一个个人物和事件的刻画感悟出来的。

只有自己感悟出来的知识和靠自己总结出来的结论,才真正属于自己。而那些一上来就试图把整个脉络梳理清楚的尝试,对于新手来说可能徒劳无功,即便是死记硬背记住了,也终究不是属于自己的知识,无法感同身受。

我在学习操作系统的过程中,就有这样的感觉。

我曾一次次试图从较高的视角来看操作系统的知识体系,从宏观层面跟着大部头图书梳理操作系统的整体逻辑,但无一例外地以失败告终。而当我放下包袱,用读一本小说的心态去阅读 Linux源码时,我发现,我从来没有去想着梳理出什么体系,但不知道从哪一行代码开始,整个操作系统的体系结构已经较为清晰地出现在我面前了,竟是那么不知不觉。而且我也清晰地知道,这样的体系是怎么一步步从第一行代码开始,逐步建立起来的。

所以,我想把这个过程毫无保留地分享给大家,于是在 2021 年 11 月 8 日,我在我的微信公众号“程序员闪客”上开始连载 Linux-0.11 源码趣读这个系列,于 2022 年 9 月6 日发布最后一篇文章完结,共 50回。

在这个过程中,我收获了一大批对该系列感兴趣的读者,不断有读者对这个系列提出自己的想法、改进建议、内容勘误,甚至有不少读者将自己的读书笔记发给我。这些事让我非常感动,也是我能坚持下来不断更新并优化的动力。

后来,越来越多的读者建议我把这个系列整理成书,沉淀下来,我也越来越觉得这件事情非常有意义,同时也十分愿意去做,于是便有了《Linux源码趣读》这本书。

本书特色

我将用读一本小说的心态带你一起阅读 Linux-0.11 的源码,用通俗的语言帮你克服对操作系统源码的恐惧。

当然,只是用读小说的心态,并不是将各种技术都采用拟人化的方式讲解。

你将按照 Linux-0.11 源码的执行顺序,像按照时间线读一本小说一样,本着探索与发现的心态来阅读源码。

你会发现,原来阅读源码这么有趣,可以像读小说一样有种“上头”的感觉。

同时,本书在讲解晦涩难懂的技术原理和细节时,配有大量生动形象且准确的图解,会给你带来十足的画面感。

读者对象

如果你是一名程序员,但是计算机底层知识相对薄弱,又一直没有一个深入学习的突破口,那本书很适合你。

如果你是一名学生,不想仅停留在课堂中对操作系统概念上的学习,想要深入源码细节来加深自己的理解,那本书很适合你。

如果你是非技术领域的朋友,但是对操作系统非常感兴趣,或者想找到一个契机来较为深入地了解计算机原理,那本书也很适合你。

为什么要阅读Linux源码,价值在哪里?

正如Java开发同学去学习JVM的知识一样,虽然我们普通开发人员可能一辈子都不会直接涉及到Linux源码的知识,但通过学习Linux源码进而理解Linux本身乃至软件开发应用层的东西无疑是降维打击。

了解了操作系统背后的工作机制和原理细节后,有助于在面对性能问题排查和项目架构设计时更加深入。

同时也培养了阅读其他项目源码的方法技巧,在今后遇到新技术时能够直接从源码层面快速且深入地了解原理

为什么选用Linux 0.11这个版本?

Linux011是Linux系列最早的功能较为完整的版本!

它包含了一个成熟可用的操作系统应该包含的方方面面但设计相对又比较简单易懂,对于理解操作系统整体的工作机制非常有帮助。


读者评论

相关专题

相关博文

  • 社区使用反馈专区

    陈晓猛 2016-10-04

    尊敬的博文视点用户您好: 欢迎您访问本站,您在本站点访问过程中遇到任何问题,均可以在本页留言,我们会根据您的意见和建议,对网站进行不断的优化和改进,给您带来更好的访问体验! 同时,您被采纳的意见和建议,管理员也会赠送您相应的积分...

    陈晓猛 2016-10-04
    5437 739 3 7
  • 迎战“双12”!《Unity3D实战核心技术详解》独家预售开启!

    陈晓猛 2016-12-05

    时隔一周,让大家时刻挂念的《Unity3D实战核心技术详解》终于开放预售啦! 这本书不仅满足了很多年轻人的学习欲望,并且与实际开发相结合,能够解决工作中真实遇到的问题。预售期间优惠多多,实在不容错过! Unity 3D实战核心技术详解 ...

    陈晓猛 2016-12-05
    3302 36 0 1
  • czk 2017-07-29
    5874 28 0 1