把外包公司做上市的过程,就是我们对 Linux 操作系统从入门到精通的过程。要做到对 Linux 了如指掌,我认为你需要爬 6 个陡坡。
第一个坡:抛弃旧的思维习惯,熟练使用 Linux 命令行
上手 Linux 的第一步,要先从 Windows 的思维习惯,切换成 Linux 的“ 命令行 + 文件”使用模式。不过,在这个专栏里,命令行并不是我们的重点,但是考虑到一些刚起步的同学,在第一部分我会简单介绍一些能够让你快速上手 Linux 的命令行。专栏每一模块的第一节,我都会有针对性地讲解这一模块的常用命令,足够你把 Linux 用起来。
第二个坡:通过系统调用或者 glibc,学会自己进行程序设计
用代码操作 Linux,可以直接使用 Linux 系统调用,也可以使用 glibc 的库。如果说使用命令行的人是吃馒头的,那写代码操作命令行的人就是做馒头的。你会发现,你平时用的一个简单的命令行,却需要 N 个系统调用组合才能完成。其中每个系统调用都要进行深入地学习、读文档、做实验。经过一段时间的学习,你已经很接近操作系统的原理了,你能看到另一番风景。
第三个坡:了解 Linux 内核机制,反复研习重点突破
进一步了解内核的原理,有助于你更好地使用命令行和进行程序设计,能让你的运维和开发水平上升一个层次。Linux 内核机制是我们这个专栏重点要讲述的部分,我会基于最新 4.x 的内核进行讲解,当然我也意识到了内核机制的复杂性,所以我选择通过 故事性和图形化 的方式,帮助你了解并记住这些机制。
第四个坡:阅读 Linux 内核代码,聚焦核心逻辑和场景
一旦爬上这个坡,对于操作系统的原理,你应该就掌握得比较清楚了。这个时候,你就可以有针对性地去做课题,把所学和你现在做的东西结合起来重点突破。例如你是研究虚拟化的,就重点看 KVM 的部分;如果你是研究网络的,就重点看内核协议栈的部分。
第五个坡:实验定制化 Linux 组件,已经没人能阻挡你成为内核开发工程师了
纸上得来终觉浅,绝知此事要躬行。从只看内核代码,到上手修改内核代码,这又是一个很大的坎。例如,你可以自己实现一个设备驱动程序,实现一个自己的系统调用,或者实现一个自己的文件系统等等。专栏最后一个部分,我专门设计了两个实验,帮你度过这个坎。只要跟着我的步伐进行学习,接下来,就没人能够阻挡你成为一名内核开发工程师了。