学无止境的 Linux,以及我的第一个定制版本发布之路

简介: 遥记当年大学第一次上 C 语言课的时候,由于之前基本上没接触过计算机,所以我一直无法理解为什么“a=a+1”,但就通过这门课,让我体会到了编程的魅力。

从小白开始,我的 Linux 学习之路

遥记当年大学第一次上 C 语言课的时候,由于之前基本上没接触过计算机,所以我一直无法理解为什么“a=a+1”,但就通过这门课,让我体会到了编程的魅力。

我当时学的是机械专业的,只能通过选修课和自学来了解计算机科学,幸运的是学校的选修课程还是很丰富的。几年之后,即将走出校门步入社会的我开始找寻第一份工作,经过小小的纠结之后,我就决定放弃本专业工作,得益于自学的编程知识,进入了一家通信公司从事软件开发工作。

经过了几年“持续而稳定的工作”,我感觉自己的工作越来越没有挑战,也逐渐失去了工作的激情,因此我打算换个方向。于是在四年之前,我加入了中国移动云能力中心,开始从事 Linux 操作系统开发的相关工作。

虽然之前也从事软件相关的工作,但是一直没多少机会接触 Linux 操作系统。在这四年时间里,我从一个 Linux 小白开始,逐渐开始了解 Linux 系统的方方面面,从 shell 脚本到 ansible、从内存管理到任务调度、从容器到虚拟化、从性能优化到故障诊断,一个个工单经在我手中解决,一个个版本从我手里发布。

同时,越是学习我越是发现自己的不足。Linux 系统包含的东西太多了,经常需要面对新的问题、了解新的领域、学习新的知识,但这也正是我喜欢这个工作的主要原因之一。

我为自己建了一个 Linux 学习的文档,从一开始几个知识点、十几页的文档,到现在上百个知识点、两百多页的文档,而且还在持续增长中。Stay hungry, Stay foolish。

image.png

打造移动云的国产化操作系统

说回我目前的工作,在去年之前,我们一直基于 CentOS 社区进行操作系统的定制开发,借助其开源、免费、稳定、良好的兼容性等特点,使得我们的 Linux 系统得到迅速发展并进行了大量的应用部署。

随着 2020 年 CentOS 项目宣布 CentOS 8 将停止更新之后,我们就开始积极应对相关变化。先后与国内主流操作系统厂商以及开源社区进行交流,也因此有机会接触到了龙蜥社区。随着一次次的交流、讨论,我们逐渐了解龙蜥社区“开源、中立、开放”的宗旨,还有背后强大得技术能力和良好的应用生态等,最终选择与龙蜥社区一起打造移动云的国产化操作系统。

第一个版本我们选择了 Anolis OS 8.2 作为上游版本进行开发,我在其中主要负责一些基础软件的定制以及版本制作、发布工作。

由于是首次基于龙蜥操作系统进行版本定制开发,我遇到了很多新的问题,比如编译失败、软件包安装失败、依赖缺失、启动失败等。为了能够按时发布版本,我也加快了自己的工作节奏,积极与经验丰富的同事讨论交流,短时间无法解决的就向社区求助,发现的社区问题也及时提交 issue。

在我们的产品测试阶段,发现一个某软件包安装失败问题。经过分析、并使用社区原版系统进行了对比,最终确认是一个基础软件包的安全策略有问题。由于临近发布日期,由我自己进一步分析、修改可能无法及时完成。于是向社区提交了 issue,并通过社区与我们对接的接口人跟踪问题进展,最后由社区小伙伴们提供了解决方案完成问题修复。

还有一次是开发期间进行软件包编译时报了一个依赖冲突的问题。我初步分析了下怀疑是社区的镜像源有问题,向社区提交 issue,当天问题就得到了回复,社区修复了镜像源,我同步到本地之后,问题得到了解决。

还有一些类似的问题就不一一描述了。总之,得益于龙蜥社区的帮助,经过几个月的研发,最终与去年 7 月移动云首个基于龙蜥社区深度定制的商用版服务器操作系统BC-Linux V8.2 版本正式发布,借此机会向龙蜥社区各位小伙伴表示感谢。

image.png

在与龙蜥社区开展交流合作的同时,我也获得了 2021 年度开发者「突出贡献奖」,后续我将继续深入参与社区建设,打造更安全、高效、稳定的企业操作系统。当前我们正基于 Anolis OS 8.4 版本进行新版本系统的研发,并与龙蜥社区在系统故障诊断工具、全栈国密、系统迁移工具等多个方面开展合作,更加深入地参与到社区的各个项目中去。

龙蜥社区作为一个年轻的社区,自身也在高速发展中,希望后续能够为开发者提供一些更便捷的措施,主要有以下三点:

  • 进一步加强软件包的开放,特别是一些二次开发依赖的软件包;
  • 增加软件包搜索功能,展示各版本软件包的修改日志,便于开发者快速获取软件包机器更新信息;
  • 开放社区编译平台,便于开发者使用社区的编译环境。

后续我们也会继续与龙蜥社区合作,持续推出 Linux 服务器操作系统,为移动云各项目提供自主可控、安全稳定的操作系统技术底座能力。

本文作者:

魏明江,软件开发工程师,2021 年度龙蜥社区开发者「突出贡献奖」获得者。2017 年开始一直从事大云天元操作系统(BC-Linux)的开发工作,主导参与多个 BC-Linux 版本的发布工作,擅长 Linux 系统的定制化开发、镜像制作、安装启动、系统运维等方面。参与社区建设期间,基于 Anolis OS 版本定制开发 BC-Linux V8.2 产品,在测试期间提交多个 issue。

了解更多软件开发与相关领域知识,点击访问 InfoQ 官网:https://www.infoq.cn/,获取更多精彩内容!

目录
相关文章
|
3月前
|
Ubuntu Linux
Ubuntu 23.04 用上 Linux 6.2 内核,预计下放到 22.04 LTS 版本
Linux 6.2 带来了多项内容更新,修复了 AMD 锐龙处理器设备在启用 fTPM 后的运行卡顿问题,还增强了文件系统。
|
3月前
|
Ubuntu Linux
Ubuntu24.04LTS默认采用Linux 6.8内核,实验性版本可通过PPA获得
IT之家提醒,当下的 Ubuntu 23.10 也是一个“短期支持版本”,该版本将在今年 7 月终止支持,而今年 4 月推出的 Ubuntu 24.04 LTS 长期支持版本将获得 5 年的更新支持。
|
3月前
|
Ubuntu 安全 小程序
linux|ubuntu.v18.10版本即将发布,linux桌面让您动心
如果你使用闭源系统,那永远也就别想了!有了这样的需求,也许最终将linux带到人类大众通用市场的是我们中国!
118 0
|
3月前
|
Web App开发 Ubuntu Linux
又该换Linux版本了!
如果你经常用谷歌搜索,使用终端输入命令,推荐你使用Fedora而不是Ubuntu。 如果你不是一个技术用户或程序员,仍推荐使用Ubuntu,还不动手去试试,别忘了将你的体验留在评论区哦~
|
4月前
|
Linux Docker Windows
windows docker安装报错适用于 Linux 的 Windows 子系统必须更新到最新版本才能继续。可通过运行 “wsl.exe --update” 进行更新。
适用于 Linux 的 Windows 子系统需更新至最新版本(如 wsl.2.4.11.0.x64.msi)以解决 2025 年 Windows 更新后可能出现的兼容性问题。用户可通过运行 “wsl.exe --update” 或访问提供的链接下载升级包进行更新。
1677 0
|
6月前
|
消息中间件 NoSQL Linux
Redis的基本介绍和安装方式(包括Linux和Windows版本),以及常用命令的演示
Redis(Remote Dictionary Server)是一个高性能的开源键值存储数据库。它支持字符串、列表、散列、集合等多种数据类型,具有持久化、发布/订阅等高级功能。由于其出色的性能和广泛的使用场景,Redis在应用程序中常作为高速缓存、消息队列等用途。
916 16
|
9月前
|
应用服务中间件 Linux nginx
【Azure App Service】基于Linux创建的App Service是否可以主动升级内置的Nginx版本呢?
基于Linux创建的App Service是否可以主动升级内置的Nginx版本呢?Web App Linux 默认使用的 Nginx 版本是由平台预定义的,无法更改这个版本。
263 77
|
Kubernetes Linux 测试技术