📚Linux内核修炼手册

2015年的夏天,彼时的我上大二。在图书馆勤工俭学的时光里,结识了一位软件专业的朋友。当他第一次向我展示安装的Ubuntu双系统时,当我看到一切操作都可以通过命令行操作时,我惊叹不已。那是我人生中第一次接触Linux。

后来,我也尝试自己安装虚拟机,安装Ubuntu系统来学习Linux。从shell指令到Linux应用编程,再到Linux内核的探索,我对Linux逐渐产生了浓厚的兴趣。 而今,我每天的工作已经离不开Linux:编译代码使用的服务器,部署device所用的系统,无一不是Linux系统。 本人业余时间喜欢看看书,写写文章。很久之前就萌生了来写一本Linux内核书籍的想法。虽然才疏学浅,即便市面上已经有诸多优秀的Linux内核书籍,但是通过一本书来记录我的学习过程,来追忆青春的轨迹,在我看来是有价值的。这便是这本电子书的由来。

还有一个重要原因,我预言未来随着AI的发展,解读内核代码+梳理程序流程图等工作AI都会轻松驾驭。那时,几乎所有的Linux内核书籍都会束之高阁。趁着自己还有点余热和动力,便更想撰写一本书当做纪念。

我们都知道操作系统是一个大管家,对上管理应用程序,对下管理硬件。这里借用刘超老师的比喻,假设,我们现在就是在做一家外包公司,我们的目标是把这家公司做上市。其中,操作系统就是这家外包公司的老板。我们把这家公司的发展阶段分为这样几个时期:

  • 初创期:这个老板基于开放的营商环境(x86 体系结构),创办一家外包公司(系统的启动)。因为一开始没有其他员工,老板需要亲自接项目(实模式)。

  • 发展期:公司慢慢做大,项目越接越多(保护模式、多进程),为了管理各个外包项目,建立了项目管理体系(进程管理)、会议室管理体系(内存管理)、文档资料管理系统(文件系统)、售前售后体系(输入输出设备管理)。

  • 壮大期:公司越来越牛,开始促进内部项目的合作(进程间通信)和外部公司合作(网络通信)。

  • 集团化:公司的业务越来越多,会成立多家子公司(虚拟化),或者鼓励内部创业(容器化),这个时候公司就变成了集团。大管家的调度能力不再局限于一家公司,而是集团公司(Linux 集群),从而成功上市(从单机操作系统到数据中心操作系统)。

整个Linux的学习过程也可以follow这个模型去学习,会更加具象化。

快速入口

Last updated