写点什么

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

  • 2022-04-08
  • 本文字数:1934 字

    阅读完需:约 6 分钟

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

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


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


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


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


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


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


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


(图/学习文档部分截图)


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


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


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


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


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


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


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


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


(图/BC-Linux V8.2安装界面)


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


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


  • 进一步加强软件包的开放,特别是一些二次开发依赖的软件包;

  • 增加软件包搜索功能,展示各版本软件包的修改日志,便于开发者快速获取软件包机器更新信息;

  • 开放社区编译平台,便于开发者使用社区的编译环境。


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


本文作者:


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

2022-04-08 16:482392

评论

发布
暂无评论
发现更多内容

SpringBoot代码混淆与反混淆加密工具详解

雪奈椰子

软件测试/测试开发|selenium NoSuchDriverException问题解决

霍格沃兹测试开发学社

数据可视化:数据仪表盘的定义及设计

2D3D前端可视化开发

大数据 数据分析 数据可视化 可视化图表 数据仪表盘

【第七在线】服装企业的商品计划策略:提高销售和库存管理的关键

第七在线

使用阿里云性能测试工具 JMeter 场景压测 RocketMQ 最佳实践

阿里巴巴云原生

阿里云 云原生 可观测

C++中的RAII机制及其智能指针的应用

高端章鱼哥

c++ 编程语言 RAII

JavaScript 文件优化指南

快乐非自愿限量之名

JavaScript 架构 前端 Web

1688商品列表数据接口(1688.item_search)

tbapi

1688商品列表接口 1688商品数据接口 关键词搜索1688商品接口 1688商品数据采集接口 1688API

加强用户教育和培训,提高用户对淘宝商品详情API的认知度和使用率

技术冰糖葫芦

API 接口

http代理错误代码表(详细列表)

巨量HTTP

代理IP IP地址 http代理

Java多线程系列7:JDK包中的管程实现

BigBang!

Java多线程

盘点超好用的 6 款低代码开发平台

伤感汤姆布利柏

低代码 JNPF

Ubuntu18.04分区方案教程。

百度搜索:蓝易云

云计算 Linux ubuntu 运维 云服务器

从一份IDC行业报告,解开智慧园区的“达·芬奇密码”

脑极体

AI 数字园区

学会使用 FastAPI 轻松实现定时任务与调度

Apifox

微服务 定时任务 后端 FastApi

Seata:打造行业首个分布式事务产品

阿里巴巴云原生

阿里云 云原生 dubbo

金融行业核心系统最佳搭档|如何基于PolarDB分布式版打造两地三中心架构?

阿里云瑶池数据库

金融行业 阿里云; 阿里云瑶池数据库

智能高效|AIRIOT智慧货运管理解决方案

AIRIOT

物联网 智慧货运 智慧系统

软件测试/测试开发|Ubuntu系统常用文件管理命令详解

霍格沃兹测试开发学社

Chappyz 生态迎重磅利好:多链应用程序启动、100% 收入共享计划开启

股市老人

Gemini自曝中文用百度文心一言训练,网友看呆:大公司互薅羊毛??

Openlab_cosmoplat

精彩回顾 | 《国产数据库共话未来趋势》技术沙龙成功举办!

阿里云数据库开源

数据库 阿里云 开源社区 polarDB 线下沙龙

使用 Amazon Fault Injection Service 演示多区域和多可用区应用程序弹性

亚马逊云科技 (Amazon Web Services)

S3 Amazon EC2 Amazon RDS Amazon DynamoDB Amazon ECS

【Web安全】DVWA漏洞靶场搭建流程(win系统下)

Geek_Angel

网络安全 WEB安全 DVWA 实验靶场

如何又快又好、又便宜地开发体育赛事直播平台

软件开发-梦幻运营部

【第七在线】新品上市与清仓计划:商品计划的关键策略

第七在线

从学到考,一图带你读懂开发者技能成长秘籍

亚马逊云科技 (Amazon Web Services)

Amazon

2023-12-20:用go语言,给定一个数组arr,长度为n,在其中要选两个不相交的子数组。 两个子数组的累加和都要是T,返回所有满足情况中,两个子数组长度之和最小是多少? 如果没有有效方法,返回-

福大大架构师每日一题

福大大架构师每日一题

拐点已至?2023中国企业数智化应用年度洞察

B Impact

软件测试/测试开发|测试用例设计方法——等价类划分

霍格沃兹测试开发学社

创梦天地与华为达成鸿蒙合作

新消费日报

学无止境的 Linux,以及我的第一个定制版本发布之路_文化 & 方法_魏明江_InfoQ精选文章