龙蜥开发者说:6 年前打开的开源“潘多拉盲盒”,如今都解了哪些未知数 | 第 15 期

news2024/11/18 12:21:01

「龙蜥开发者说」第 15 期来了!开发者与开源社区相辅相成,相互成就,这些个人在龙蜥社区的使用心得、实践总结和技术成长经历都是宝贵的,我们希望在这里让更多人看见技术的力量。本期故事,我们邀请了龙蜥社区开发者陈成来分享「 6 年前打开的开源“潘多拉盲盒”,如今都解了哪些未知数」。

欢迎阅读上期故事《众人拾柴火焰高!聊一聊我在社区的所思所想》。开发者说系长期活动,对于积极投稿、多次分享的童鞋,我们还有神秘大礼鼓励!诚邀开发者们分享真实体验,以文会友、共同学习、一起进步。

本期故事主角:陈成,系统运维 SIG Contributor、云原生 SIG Contributor,联通软件研究院软件开发工程师,主要负责云平台、容器化等方面工作。在龙蜥社区主要协助基于Anolis OS 8.2/8.4 的构建工作。

工作时间一长,有时会忘记我的开源路是从哪里开始的。但现在仔细想想,我第一次接触开源,还是在大学时期,当时是通过 Github下载样例程序,学习并行程序开发。

从求学时期接触开源代码,到工作中参与开源项目,其实时间算不上长,但是学到的内容不可谓不算多。遥想我第一次正式使用开源的项目,已经是 Apache 的 Hadoop。而第一次分享自己的开源项目也是涉及大数据可视化相关的工作。现在回想起来,这些都是 6 年前的事情了。

在我这些年的职业生涯中,逐渐接触了如 Mesos、Marathon、Kubernetes 等开源项目,和大多数的开发者一样,涉及到的内容更多是这些开源项目的集成和应用,并没有深入到提交 issue 和 PR。但还记得有一次我在使用 kubevirt 项目时,出现了挂载卷异常问题,当时我经过反复的测试确认,最终发现是由于代码中的一个 bug 导致了异常。发现问题后,我针对这个 bug 提交了 PR,最终代码被合入。虽然这次经历的问题很小,但我对开源代码的认识却因为这个小小的问题加深了许多,比如关于 PR 提交流程、issue 的书写方法等等。

很多时候,一些开发者也会抱着这样的想法:我对整个项目的代码并不熟悉,但在使用的时候发现了疑似是开源项目的 bug,我该如何甄别到底是改动哪里呢?其实这个时候我们就需要追踪项目源码。源码是基础,是所有顶楼的地基。接触了源码,就相当于开始了深入了解项目的过程。基于源码一步步追踪,找到最根本问题所在,找到最优解,并修改相关代码,就是我们需要做的事。一般开源项目都会有较为完善的回归测试,自动化的执行方式极大地加速了代码的提交和合入周期。以上面提到的kubevirt 项目举例,刚开始我处理这个 bug 时,以为要改动多个地方,最终经过反复确认后发现,仅需要简单地修改一个变量即可。即使仅仅是一行代码的数据量,却可以修复一个明显的错误,这大概就是大家所说的,细节决定成败

2021 年,我因工作关系与龙蜥社区结缘,我们当下正在构建基于龙蜥操作系统 Anolis OS 8.2 和 Anolis OS 8.4 两个版本的 CULinux 操作系统。在这个过程中,我们借助的都是开源软件的力量。

其实一开始,我对操作系统构建并不熟悉,甚至对 CentOS 的编译也关注甚少,但这并不能成为阻碍工作前进的步伐。我查阅过许多资料,参与了龙蜥开源社区包编译体提交,也了解到龙蜥后台使用的固件环境是基于开源软件 koji 搭建的。这个过程中,团队伙伴给予了我很多帮助,我们一起研究搭建起了内网的 koji 构建平台,并与代码仓库等联动起来,实现了内网 rpm 包的编译与 ISO 的构建

开源就像是打开了的“潘多拉魔盒”,将那些未知的东西完完整整地展示出来,使得参与者们可以共同增进、共享红利。

随着业务的需求增加,细粒度的观测、故障定位成为我的重点工作。通过了解社区的系统运维 SIG(Special Interest Group),此 SIG 中的开源项目 sysAK 和 sysOM 正好符合我们的需求。经过一番努力,我也在 sysOM 和 sysAK 中增加了几个小功能:如在 sysOM 中,支持对外暴露的 web 服务端口可自定义,sysAK 支持 CentOS 8.0 等等。这里要特别点赞社区的系统运维 SIG 社群维护同学和 T-One 测试平台,以及 Gitee PR 与 T-One 平台的联动集成,让我可以方便地观察测试进展、测试结果等等,同时也极大地提高了效率。

这一些小小的 PR,对社区项目而言或许微不足道,但对于我而言,却是在社区的勋章,它们包含了我在社区付出的努力,也包含了社区所有伙伴的认可与鼓励。同时,也激励我在龙蜥社区持续的贡献以及在开源的道路上不断的探索和前进,也希望通过自身不断的积累可以继续深度参与社区的工作,为开源事业贡献自己的一份力量。

相关链接地址:
系统运维 SIG 主页:
https://openanolis.cn/sig/sysom
云原生 SIG 主页:
https://openanolis.cn/sig/cloud-native
「人人都可以参与开源」活动链接:
https://openanolis.cn/community/activity

—— 完 ——

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/192076.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PTA L1-020 帅到没朋友(详解)

前言:本期是关于帅到没朋友的详解,内容包括四大模块:题目,代码实现,大致思路,代码解读 今天你c了吗? 题目: 当芸芸众生忙着在朋友圈中发照片的时候,总有一些人因为太帅…

如何将视频制作成高清gif?试试这一招快速完成

随着现在短视频平台的兴起,越来越多的小伙伴在刷到好玩有趣的视频时都会下载下来,进行分享。但是,视频的体积往往比较大,传输起来非常的不方便。这时候就可以将视频转换成gif动图来使用。接下来,小编给大家分享几个视频…

CobaltStrike之宏钓鱼及shellcode 实验详细

文章目录预备知识实验目的实验地址实验环境实验步骤一启动cs服务器客户端连入服务器生成office宏病毒利用宏病毒上线CS生成宏文件利用成功实验步骤二实验步骤三预备知识 CobaltStrike是一款渗透测试神器,常被业界人称为CS神器。CobaltStrike已经不再使用MSF而是作为…

css图片铺满浏览器窗口且不变形

今天项目中提到一个需求,需要把背景图片铺满浏览器全屏,且图片不变形。 也就是说显示的宽高是不确定的,我第一反应就是background-size: 100% 100%;但是这样做有一个弊端。 下面结合代码图具体讨论一下: 首先,设计一个…

请求上下文头信息:User-Agent ,Referer,Form,Server,Allow,Accept-Range

User-Agent User-Agent 的组成 由1个product和后面零个或多个product信息组成 product包含两个部分,token和token指向的软件的版本号 举例中 Mozilla 5.0 表示浏览器兼容Mozilla 5.0版本的,后面的window 信息,就属于conment部分 RWS由一个…

36. 实战:基于上一节的全面升级——实现某音批量下载功能

目录 前言 目的 思路 代码实现 1. 先将下载单个视频的功能封装成函数 2. 获取下载列表 3. 创建线程池调用下载函数 完整源码 运行效果 总结 前言 上一节我们实现了某短视频平台的去水印下载功能,本节我们实现批量抓取:给定某一个用户主页&…

Cache的PLRU替换策略

LRU(Least Recently Used)替换策略是cache的经典替换策略之一,然而,LRU替换策略的硬件开销较大。因此,一些现代处理器,例如Intel 486和PowerPC,它们使用的cache替换策略是PLRU(pseudo-LRU)。 PLRU是LRU的一种近似方法,本文介绍PLRU中的tree-PLRU(tree-based pseudo-…

VSCode 配置 C/C++ 开发环境( MSVC )

0.绿色版本下载地址:https://www.aliyundrive.com/s/DMK13owZSrC绿色版本采用 VSCode User 1.7.4.2 X64 版本。绿色便携版本采用的生成工具来自 Visual C 2010 版本提供的 32 位工具链。Win 7 Win10 Win 11 可以正常运行。使用方法,下载文件后&#xff0…

微信小程序021理发店美容预约系统java nodejs php

美容预约小程序微信端要求在系统的手机上可以运行,主要实现了管理端;首页、个人中心、用户管理、服务项目管理、美容师管理、预约管理、类型管理、系统管理,微信端;首页、预约、我的等主要功能模块的操作和管理。 小程序前端框架&…

ML LightGBM详细原理讲解+面试必考知识点

😄 三大竞赛杀器:XGBoost、LightGBM、CatBoost。之前我已更新完XGBoost的讲解,这次来讲讲LightGBM。我也是看网上看了多篇文章做总结的(我是遇到不会问题的就去搜,实在记不起来看过哪些,如果有侵权问题,可私…

Spark 读取、写入时序数据库TDengine以及TDengine概述

一、TDengine是什么TDengine 是一款高性能、分布式、支持 SQL 的时序数据库,其核心代码,包括集群功能全部开源(开源协议,AGPL v3.0)。TDengine 能被广泛运用于物联网、工业互联网、车联网、IT 运维、金融等领域。除核心…

Postman form-data、x-www-form-urlencoded的区别

我们在平时的postman请求调试,以及web的http请求开发时,常常能看到以下几种传参的形式 form-data、x-www-form-urlencoded、raw、binary,那么这些请求方式的区别是什么呢? 1、form-data: 就是http请求中的multipart/form-data,它…

一文读懂!2023量子计算行业发展方向

(图片来源:网络)量子计算是一个引人入胜的主题,放眼全球,很多文章报道了商业量子计算的项目和应用,关于量子计算行业在2023年的可能发展方向,本文从大量文章中筛选罗列了一些主要发展方向。McKi…

postman生成测试报告

一、newman插件生成测试报告安装nodejs官网下载适合自己设备的包,下载后直接傻瓜式安装;安装完成验证:打开终端,输入 node -v,即可查看安装版本;安装newman安装好nodejs后,通过npm来安装newman&…

VueJS 基础之组件

文章目录参考描述组件化开发组成templatescriptstylemain.js使用嵌套关系组件的使用LeftRight举个栗子全局组件及私有组件私有组件全局组件举个栗子main.jsApp.vue参考 项目描述VueJS官方文档搜索引擎Bing哔哩哔哩黑马程序员 描述 项目描述Edge109.0.1518.70 (正式版本) (64 …

计算机网路6-详述网路层:数据交换、路由算法和协议、网络协议

一、网络层基本概念 1、主要任务 把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务 2、网络层传输单位--数据报 数据报与分组之间关系: 分组是数据报通过切割划分出来的一个片段,多个分组组成数据报 3、网络层的几大功能 路…

LeetCode-122. 买卖股票的最佳时机 II

目录暴力递归动态规划贪心题目来源 122. 买卖股票的最佳时机 II 暴力递归 根据题意:由于不限制交易次数,在每一天,就可以根据当前是否持有股票选择相应的操作。「暴力搜索」在树形问题里也叫「回溯搜索」、「回溯法」。 首先画出树形图&…

如何实现报表集成?(二)——用户同步和单点登录

在上一篇,我们对报表集成进行了一个整体的介绍,从报表集成的背景、痛点、需求、集成架构等几个方面进行了阐述。 这一篇,我们来聊一下用户同步和单点登录。行文过程中得到了来自报表软件厂商 Smartbi 的报表产品:电子表格软件的协…

c++11 标准模板(STL)(std::multiset)(三)

定义于头文件 <set> template< class Key, class Compare std::less<Key>, class Allocator std::allocator<Key> > class multiset;(1)namespace pmr { template <class Key, class Compare std::less<Key>> usi…

怎么给视频配音好听?这些好方法快学起来

应该不少小伙伴每天都会刷各种短视频&#xff0c;有些视频很搞笑&#xff0c;有些却很无趣&#xff0c;让人想直接的划走。很多制作短视频的小伙伴应该都知道&#xff0c;很多视频都需要配音来衬托&#xff0c;吸引别人的眼球。当你想给自己的视频配上好听的声音&#xff0c;但…