开篇词:欢迎来到系统厨房

你好,欢迎来到我的厨房。

我是 Anakin,一名操作系统工程师,曾先后就职于华为和腾讯的 Linux 发行版研发团队,参与过 openEuler 和 openCloudOS 两大国产发行版社区的创建工作,同时也是一名开源文化爱好者。

正如名字所说,这儿并不是一个普通的厨房,我们要学习的不是烹饪食材,而是如何创建一个操作系统,也许你很快就会发现,这两者有着异曲同工之处。

做开源操作系统就像开一家餐厅,首先要明确餐厅的定位,是做中餐、西餐还是日料,也就是说要面向服务器市场、嵌入式市场还是桌面市场,面向不同的市场,意味着要提供的菜肴(软件包)的种类和数量都完全不一样。

明确了餐厅的定位,也就明白了要做哪些菜,而做出可口饭菜的第一步也是最重要的一步,是选取优质的食材(开源软件选型),我们要选择的供应商(上游社区)一定是口碑好的、服务好的(质量过硬、社区活跃),才能确保做出的菜能满足客户的要求。但仅有食材是不够的,我们还要为每种食材编制菜谱(编写 Spec 文件),将它们烹制为可口的菜肴(构建),客户不需要感知烹饪(构建、配环境、处理复杂的软件包依赖关系)的过程,只需点菜(安装)和品尝(运行)即可。

制作 RPM 包,俗称打包,是指编译并捆绑软件与元数据(例如软件全名、描述、正常运行所需的依赖列表等等)的任务,目的是让软件使用者可以通过包管理器简单地安装、删除或者升级他们所使用的软件。

要成为一名优秀的系统工程师,就像成为一名顶级大厨,任何大厨成长的第一步一定不是上手学做菜,而是要熟悉、识别各类食材,能够熟练的洗菜、切菜,掌握各类菜式的品性。同样,打包也是系统工程师的基本功,学习打包的过程就是学习挑选食材、处理食材的过程,这一过程是冗长繁琐却又无法绕过的,只有这样才能逐渐了解食材的特点、培养做菜的品味(掌握开源软件的选型、构建、安装、配置、依赖关系处理),烹制出真正的美味。

为什么要写这样一个专栏呢?因为时至今日,国内操作系统和基础软件相关的人才依然很薄弱:

  • 虽然国内程序员的数量与日俱增,但大多集中在前端、Java/Go、人工智能等热门领域,懂基础软件和操作系统的程序员依然是少数;
  • 虽然大学里的计算机专业很热门,操作系统也是必修课,但课程内容通常局限于讲授理论知识,这些理论知识也集中在内核(kernel)层面,没有一门课程教给学生如何去构建一个完整的操作系统,Ubuntu、Fedora、SUSE 等国外主流发行版依然是最流行的。

在这个专栏,我将分享关于构建一个 Linux 发行版的一切内容,包括但不限于打包、构建、许可证、漏洞管理、生命周期、版本路线等知识。这些知识直接来自于我在华为和腾讯的实践所学,我本人也在努力成为更好系统工程师的道路上,所学有限,旨在为中国操作系统人才培养贡献一点绵薄之力,欢迎批评和建议。

如果你准备好了,就请走进系统厨房,和我一起,烹饪最美味的 OS 发行版吧!

你可能感兴趣的:(linux操作系统后端)