大家好,欢迎来到我的厨房。我是Anakin,一名操作系统工程师。曾就职于华为、腾讯的Linux发行版研发团队。参与创建了国内两个发行社区openEuler和openCloudOS。我也是一个开源文化爱好者。顾名思义,这不是一间普通的厨房。我们要学习的不是烹饪食材,而是如何创建一个操作系统。也许你很快就会发现两者的目的是一致的。做一个开源操作系统就像开一家餐厅。首先要明确餐厅的定位,是中餐、西餐还是日餐。菜肴(套餐)的种类和数量完全不同。明确了餐厅的定位后,我们也知道要做哪些菜,而做出美味佳肴的第一步也是最重要的一步就是选择优质的食材(开源软件选择),以及我们要选择的供应商(上游社区)必须有良好的信誉和良好的服务(优良的品质,活跃的社区),才能保证做出来的菜肴能够满足顾客的要求。但是只有食材还不够,我们还需要为每一种食材准备菜谱(编写Spec文件),将它们烹饪成美味的菜肴(build),客户不需要感知烹饪(build,匹配环境,处理复杂的软件包依赖项),只需订购(安装)和品尝(运行)。制作RPM包,俗称打包,是指对软件和元数据(如软件的全名、描述、正常运行所需的依赖列表等)进行编译和捆绑的工作,其目的是允许软件用户轻松安装、删除或升级他们使用的软件。成为一名优秀的系统工程师就像成为一名顶级厨师。任何厨师成长的第一步,一定不是学习做菜,而是熟悉和辨别各种食材,能够熟练地洗菜和切菜。菜肴,掌握各种菜肴的特点。同样,封装也是系统工程师的一项基本技能。学习包装的过程就是学习选择和加工原料的过程。这个过程繁琐而繁琐,但无法绕过。只有这样才能逐渐了解食材的特性,培养做菜的品味(掌握开源软件的选型、搭建、安装、配置、依赖处理),做出真正美味的食物。为什么要写这样一个专栏?因为时至今日,国内操作系统和基础软件相关的人才还很薄弱:虽然国内程序员的数量与日俱增,但大部分还是集中在前端、Java/Go、人工智能等热门领域,等等,懂基础软件和操作系统程序的人虽然计算机专业在大学里很受欢迎,操作系统也是必修课,但是课程内容通常仅限于讲授理论知识,而且这些理论知识也集中在内核(内核)级别。没有课程教学生如何构建一个完整的操作系统,国外主流发行版如Ubuntu、Fedora、SUSE仍然是最受欢迎的。在本专栏中,我将分享有关构建Linux发行版的所有内容,包括但不限于打包、构建、许可、漏洞管理、生命周期、版本路线图等。这些知识直接来源于我在华为和腾讯学到的东西。我也在努力成为一名更好的系统工程师。本人知识有限,希望能为国内操作系统人才的培养贡献一点力量。欢迎批评和评论。建议。如果你准备好了,请走进系统厨房,和我一起烹饪最美味的操作系统发行版!
