爬过这6个坡,你就能对Linux操作系统了如指掌(6)

发布于2019-04-21 20:15:11

在平时的生活中,我们几乎时时刻刻都在使用操作系统,只是大部分时间你都意识不到它的存在。操作系统到底在背后默默地做了哪些事情,才能让我们轻松地使用电子设备呢?不知道你有没有产生过这些疑问:

对于普通用户来讲,其实只要会用就行了,但是咱们作为专业人士,要深入探究一下背后的答案。操作系统其实就像一个软件外包公司,其内核就相当于这家外包公司的老板。为什么这么说呢?

假设,我们现在就是在做一家外包公司,我们的目标是把这家公司做上市。其中,操作系统就是这家外包公司的老板。我们把这家公司的发展阶段分为这样几个时期:

把外包公司做上市的过程,就是我们对Linux操作系统从入门到精通的过程。要做到对Linux了如指掌,我认为你需要爬6个陡坡。在《趣谈Linux操作系统》这个专栏里,我会基于下面这6个陡坡,用“图解”和“趣谈”的形式,带你一步一步进入Linux操作系统的大门,让基础变成你技术生涯的左膀右臂。

第一个坡:抛弃旧的思维习惯,熟练使用Linux命令行

上手Linux的第一步,要先从Windows的思维习惯,切换成Linux的“命令行+文件”使用模式。不过,在这个专栏里,命令行并不是我们的重点,但是考虑到一些刚起步的同学,在第一部分我会简单介绍一些能够让你快速上手Linux的命令行。专栏每一模块的第一节,我都会有针对性地讲解这一模块的常用命令,足够你把Linux用起来。

第二个坡:通过系统调用或者glibc,学会自己进行程序设计

用代码操作Linux,可以直接使用Linux系统调用,也可以使用glibc的库。如果说使用命令行的人是吃馒头的,那写代码操作命令行的人就是做馒头的。你会发现,你平时用的一个简单的命令行,却需要N个系统调用组合才能完成。其中每个系统调用都要进行深入地学习、读文档、做实验。经过一段时间的学习,你已经很接近操作系统的原理了,你能看到另一番风景。

第三个坡:了解Linux内核机制,反复研习重点突破

进一步了解内核的原理,有助于你更好地使用命令行和进行程序设计,能让你的运维和开发水平上升一个层次。Linux内核机制是我们这个专栏重点要讲述的部分,我会基于最新4.x的内核进行讲解,当然我也意识到了内核机制的复杂性,所以我选择通过故事性和图形化的方式,帮助你了解并记住这些机制。

第四个坡:阅读Linux内核代码,聚焦核心逻辑和场景

一旦爬上这个坡,对于操作系统的原理,你应该就掌握得比较清楚了。这个时候,你就可以有针对性地去做课题,把所学和你现在做的东西结合起来重点突破。例如你是研究虚拟化的,就重点看KVM的部分;如果你是研究网络的,就重点看内核协议栈的部分。

第五个坡:实验定制化Linux组件,已经没人能阻挡你成为内核开发工程师了

纸上得来终觉浅,绝知此事要躬行。从只看内核代码,到上手修改内核代码,这又是一个很大的坎。例如,你可以自己实现一个设备驱动程序,实现一个自己的系统调用,或者实现一个自己的文件系统等等。专栏最后一个部分,我专门设计了两个实验,帮你度过这个坎。只要跟着我的步伐进行学习,接下来,就没人能够阻挡你成为一名内核开发工程师了。

第六个坡:面向真实场景的开发,实践没有终点

说了这么多,我们都只是走出了万里长征第一步。我始终坚信,真正的高手都是在实战中摸爬滚打练出来的。

如果你是运维,仅仅熟悉上面基本的操作是不够的,生产环境会有大量的不可控因素,尤其是集群规模大的更是如此,大量的运维经验是实战来的,不能光靠读书。

如果你是开发,对内核进行少量修改容易,但是一旦面临真实的场景,需要考虑各种因素,并发与并行,锁与保护,扩展性和兼容性,都需要真实项目才能练出来。

这些内容,都出自我在极客时间的第二个专栏《趣谈Linux操作系统》。在接下来的四个月,我会带你一起来一场“爬坡计划”,按照这个路径稳步前进,攻克 Linux 操作系统。

值得说明的是,在专栏里,我希望用一种更轻松地方式,让你掌握Linux操作系统呢。我根据自己多年云架构师的经历,总结了一套独家的Linux操作系统学习方法论,通过“图解”和“趣谈”的方式,让你更轻松地学习Linux操作系统。

1、趣谈,将枯燥的基础知识结合某个场景,生动具体的讲述,帮你加深理解、巩固记忆、夯实基础。就像前面图片里描述的,我会延伸这家外包公司的故事,把它的发展分为几个阶段,并在专栏详细地逐一讲解。

2、图解一图胜千言。我会通过图谱的方式,将Linux复杂的概念、数据结构、流程表现出来,用一张图串起一篇文章的知识点。最终,整个专栏下来,你如果能把这些图都掌握,你的知识就会形成体系和连接。在此基础上再进行深入学习,就会如鱼得水、易如反掌。

文件操作在各个层的数据结构的关联

作者介绍

刘超,网易杭州研究院云计算技术部首席架构师,QCon2019 广州专题出品人。我有 15 年云计算领域研发及架构经验,出版过《Lucene 应用开发解密》。

极客时间的老用户都知道,我也是极客时间“趣谈网络协议”专栏的作者,这个专栏目前有超过 3 万人订阅,我收到很多用户的反馈,说非常认可我这种“像小说一样”的“趣谈”形式,讲得通俗易懂,可以更好的理解底层知识。

大家的学习热情也十分高涨,光互动留言就超过了 5 万字。在和很多同学交流后,我发现很多人希望我继续延续“趣谈”的形式,讲一讲 Linux 操作系统。这也是《趣谈 Linux 操作系统》专栏诞生的初衷。

出处:极客时间《趣谈Linux操作系统》专栏