龙蜥开发者说 :戮力同心,砥砺前行,为国产操作系统发展出一份力 | 第 23 期

「龙蜥开发者说」第 23 期来了!开发者与开源社区相辅相成,相互成就,这些个人在龙蜥社区的使用心得、实践总结和技术成长经历都是宝贵的,我们希望在这里让更多人看见技术的力量。本期故事,我们邀请了龙蜥社区开发者李崇(Aubrey Li)来分享「戮力同心,砥砺前行,为国产操作系统发展出一份力」。

欢迎阅读上期故事《是挑战也是契机!我见证了国产操作系统的雄起》。开发者说系长期活动,对于积极投稿、多次分享的童鞋,我们还有神秘大礼鼓励!诚邀开发者们分享真实体验,以文会友、共同学习、一起进步。

图片

本期故事主角:李崇(Aubrey Li),龙蜥技术委员会委员、龙蜥 Intel Arch SIG Maintainer、英特尔软件和先进技术事业部云软件架构师,“龙蜥社区 2022 年度最佳研发团队-Intel 中国研发团队”成员,拥有二十年操作系统领域开发和架构经验,对 OpenSolaris 和 Linux 内核多个子系统均有贡献。

我和操作系统的渊源很深,从学校里做 uC/OS-II 开始,到 Vxworks、uClinux、OpenSolaris,再到 Linux,我的整个职业生涯,今年刚好二十年,一直都工作在操作系统第一线。这期间,我用过很多操作系统的发行版,但这里面绝大部分都是国际社区和国外企业的版本,很少用到国产操作系统。2020 年 12 月 8 日,Red Hat 宣布策略变更,终止了对 CentOS 的服务支持,这是系统软件界的一件大事,因为 CentOS 兼具 RHEL 的稳定性并且完全免费,在服务器操作系统领域占据了较大的使用份额,在政务和互联网行业也占有优势地位。CentOS 的停服,对国内操作系统的使用者影响是巨大的,这意味着系统漏洞更新的停止,企业业务的运行缺少了安全保障。在我看来,这也给了中国开源 OS 生态一次巨大的机会,国产操作系统的趋势已定,势在必行。

初识龙蜥社区是因为一通电话,一位老友向我介绍了国产操作系统新秀——龙蜥操作系统,Anolis is not only Linux.我对这个历经“双 11”大规模验证的系统颇有兴趣,跟他聊完后,我自己也初步去了解了一下龙蜥的开源版本,我认为完全兼容 CentOS 生态是龙蜥操作系统一个很好的切入点,这意味着用户的应用程序可以顺滑地迁移到龙蜥操作系统上。从那以后,身边越来越多我认为“靠谱”的人加入龙蜥社区,也进入了国产操作系统的大浪潮,我觉得这是一件“赶时髦”的事情,但心中更多的,是对国产操作系统的期待。所以,2021 年 6 月,我从上游社区的开发组转到做国内 OSV 和 CSP enabling 组,打算为国产操作系统尽一点自己的绵薄之力。

我当时在上游社区主要做 Intel 至强平台上的 performance 和 scalability 的优化工作,主要涉及内核调度器的部分,包括社区近期开发的 core scheduling 特性,我也曾经深度参与,并且有 patch 贡献。我在分析龙蜥源代码的时候,发现我们在上游社区所作的优化和新特性使能的工作并没有被包含在内,这个现象是上游社区和龙蜥操作系统内核版本的差异所造成的。那么在龙蜥的工作中,如何选择上游社区的优化和新特性来回合到龙蜥操作系统内核里去,是我面临的第一个问题,我需要在稳定性、性能和新特性之间做出权衡和取舍,来让操作系统更好地服务于客户的业务。

2021 年 10 月,龙蜥社区正式成立 Intel Arch SIG 组,我出任组长(Maintainer)一职,和阿里云操作系统团队的同事一起建立了 Intel Arch SIG 的门户网站,在 gitee 上创建了 Intel Arch SIG 的代码仓库。当时,我拿了一个上游社区内核 idxd 设备枚举的 patch,打通了代码从 Intel 内部到开源龙蜥操作系统的整个贡献流程,这期间,我也为打造 OpenAnolis Cloud kernel(ANCK)门禁小龙机器人提供了多项反馈意见。自此,我们对 OSV 和 CSP 的支持,完成了从点对点模式到社区模式的转变。

2022 年是我们支持第四代可扩展至强处理器(Sapphire Rapids)的大年,我们在龙蜥操作系统里面完整地支持了 Sapphire Rapids 平台的特性列表。这一年我印象最深的是对 Scalable I/O virtualization 项目的开发和支持工作。我在接手这个项目的时候,对这个领域的知识储备并不多,这个项目的软件栈对当时的我来说非常复杂,里面的概念、功能和子模块比较多,各个功能和模块之间具有高度的耦合性。另外,这个项目是有硬性的截至时间的,这是和上游社区项目很不一样的地方,因为 Sapphire Rapids 平台和 Anolis OS 发布的时间是确定的,所以我当时感觉压力非常大。幸运的是,Intel 团队和阿里云团队的小伙伴都非常给力,没有人犹疑,大家都在一步一步地往前推进,项目进度表上的方块每天都有新增的绿色块,最后我准备的一个 20K+ 行兜底的大 patch 也没用上。最终,我们成功地完成了这次挑战。这部分工作有 470+ patches,70K+ 代码,最后都被合入进了 Anolis OS 8.8 里面。在 I/O 虚拟化功能方面,Anolis OS 8.8 对于同行业的操作系统来讲,是具有领先性的

图片

(图/Intel 获“龙蜥社区 2022 年度最佳研发团队”奖)

我所在的团队隶属于 Intel 软件和先进技术事业部,前身是 Intel 开源技术中心(OTC),是英特尔开源开发工作的核心团队,从 Linux 内核到虚拟化,从嵌入式到桌面到云等各个领域都有着深厚的专业知识和经验,在全球为各种大型开源项目和社区都做出过很多贡献。今天,我们也深度参与龙蜥社区,在理事会,技术委员会和运营委员会推动龙蜥社区的规范标准化和生态共建,我们在 Intel Arch SIG、virtualization SIG、云原生 SIG、机密计算 SIG 等多个 SIG 贡献 Intel 技术,活动上,我们也组织了多场龙蜥走进理事系列之走进 Intel MeetUp,做技术和生态的推广。

图片

(图/龙蜥走进 Intel MeetUp 现场合照)

 展望未来,操作系统领域仍然面临着许多机会和挑战。举两个我看得到的例子,在算力多样性的今天,如何平滑地使用算力资源,减小不同类型的算力间通信带来的 overhead,让业务更顺畅的运行,是下一代操作系统需要解决的一个问题。在人工智能领域节节突破的背景下,如何让 AI 和 OS 深度结合,在数据中心里面更聪明地进行资源调配,更高效地进行能耗管理,也是下一代操作系统的一个机会。我希望下一代操作系统里面,能看到龙蜥,看到我们国产操作系统的身影。

对 Intel 来讲,我们会坚持打造好底座,以 Intel 体系为核心,继续为龙蜥社区发行版在 Intel 新平台上的适配工作赋能。我们会坚持技术创新,以业务需求为核心,为客户提供更佳合理的解决方案和最佳实践。我们也会和社区各合作伙伴一起,戮力同心,砥砺前行,推动国内操作系统开源社区生态的繁荣发展。

相关链接地址:

Intel Arch SIG 主页:https://openanolis.cn/sig/Intel-Kernel

—— 完 ——

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++项目:网络版本在线五子棋对战

目录 1.项目介绍 2.开发环境 3.核心技术 4. 环境搭建 5.websocketpp 5.1原理解析 5.2报文格式 5.3websocketpp常用接口介绍 5.4websocket服务器 6.JsonCpp使用 6.1Json数据格式 6.2JsonCpp介绍 7.MySQL API 7.1MySQL API介绍 7.2MySQL API使用 7.3实现增删改查…

目标检测后的图像上绘制边界框和标签

效果如图所示,有个遗憾就是CV2在图像上显示中文有点难,也不想用别的了,所以改成了英文,代码在下面了,一定要注意一点,就是标注文件的读取一定要根据自己的实际情况改一下,我的所有图像的标注文件…

汽车售后接待vr虚拟仿真实操演练作为岗位培训的重要工具和手段

汽车虚拟仿真教学软件是一种基于虚拟现实技术的教学辅助工具。它能够模拟真实的汽车环境和操作场景,让学生能够通过虚拟仿真来学习和实践汽车相关知识和技能。与传统的教学方式相比,汽车虚拟仿真教学软件具有更高的视觉沉浸感和互动性,能够更…

Bytebase 2.7.0 - ​新增分支(Branching)功能

🚀 新功能 新增支持与 Git 类似的分支(Branching)功能来管理 schema 变更。支持搜索所有历史工单。支持导出审计日志。 🎄 改进 变更数据库工单详情页面全新改版。优化工单搜索体验。SQL 审核规则支持针对不同数据库进行独立配…

【广州华锐互动】VR党建多媒体互动展厅:随时随地开展党史教育

随着科技的不断发展,虚拟现实(VR)技术已经逐渐渗透到各个领域,其中党建教育尤为受益。为了更好地传承红色基因,弘扬党的优良传统,广州华锐互动推出了VR党建多媒体互动展厅,让广大党员干部和人民群众通过现代科技手段&a…

VB:百元买百鸡问题

VB:百元买百鸡问题 Private Sub Command1_Click()ClsRem 百元买百鸡问题Print "公鸡", "母鸡", "小鸡"For x 0 To 20For y 0 To 33z 100 - x - yIf z Mod 3 0 ThenIf 5 * x 3 * y z / 3 100 ThenPrint x, y, zEnd IfEnd IfNe…

React 18 对 state 进行保留和重置

参考文章 对 state 进行保留和重置 各个组件的 state 是各自独立的。根据组件在 UI 树中的位置,React 可以跟踪哪些 state 属于哪个组件。可以控制在重新渲染过程中何时对 state 进行保留和重置。 UI 树 浏览器使用许多树形结构来为 UI 建立模型。DOM 用于表示 …

25 Linux可视化-Webmin和bt运维工具

25 Linux可视化-Webmin和bt运维工具 文章目录 25 Linux可视化-Webmin和bt运维工具25.1 Web运行环境简介25.2 Webmin的安装及使用25.2.1 安装webmin25.2.2 Webmin使用演示 25.3 bt(宝塔)的安装及使用25.3.1 安装宝塔25.3.2 宝塔Web登录Linux服务器25.3.3 找回宝塔登录密码 学习视…

re学习(36)看雪CTF 2017 -Crackme

百度网盘已收集,需要回顾在文件夹【CTF题库收集】查看即可 刚开始先运行一下 这是一道crackme类型题目,是一道看雪CTF上的竞赛题,用OD进行分析一下。 刚开始用的是IDA分析,分析了半天也没有看出来什么,然后就在网上搜…

汽车服务门店小程序模板制作指南

在数字化时代,一个小程序的力量不可忽视。它不仅是展示品牌形象和提供用户服务的重要工具,更是扩大客户群体和提高营收的关键手段。对于汽车服务门店来说,拥有一个精美且功能齐全的小程序,更将成为你在竞争激烈的市场中的重要武器…

终端登录github两种方式

第一种方式 添加token,Setting->Developer Setting 第二种方式SSH 用下面命令查看远程仓库格式 git remote -v 用下面命令更改远程仓库格式 git remote set-url origin gitgithub.com:用户名/仓库名.git 然后用下面命令生成新的SSH秘钥 ssh-keygen -t ed2…

1.Python操作txt文本

文章目录 1.Python读取一个txt文件的内容并将其写入到另一个txt文件2.Python读取一个未知编码的文件并将其设置为指定编码格式3.Python实现txt文件中字符串的替换 1.Python读取一个txt文件的内容并将其写入到另一个txt文件 # -*- encoding:gb2312 -*- import chardetdef read_…

Qt应用开发(基础篇)——日历 QCalendarWidget

一、前言 QCalendarWidget类继承于QWidget,是Qt设计用来让用户更直观的选择日期的窗口部件。 时间微调输入框 QCalendarWidget根据年份和月份初始化,程序员也通过提供公共函数去改变他们,默认日期为当前的系统时间,用户通过鼠标和…

indexDb使用

indexDb是什么? indexDb是除了cookie,localstorage,sessionstroage外的另一种前端存贮方式。 现有前端存贮比较 indexDb特点 无大小限制,适用于前端存贮数据较多场景存贮结构以对象仓库形式,可以存入任何类型数据&a…

无重叠区间【贪心算法】

无重叠区间 给定一个区间的集合 intervals ,其中 intervals[i] [starti, endi] 。返回 需要移除区间的最小数量,使剩余区间互不重叠 。 class Solution {public int eraseOverlapIntervals(int[][] intervals) {//先排序,按照左边界升序,注…

MySQL 数据库常用命令大全(详细)

文章目录 1. MySQL命令2. MySQL基础命令3. MySQL命令简介4. MySQL常用命令4.1 MySQL准备篇4.1.1 启动和停止MySQL服务4.1.2 修改MySQL账户密码4.1.3 MySQL的登陆和退出4.1.4 查看MySQL版本 4.2 DDL篇(数据定义)4.2.1 查询数据库4.2.2 创建数据库4.2.3 使…

接口自动化测试:mock server之Moco工具

什么是mock server mock:英文可以翻译为模仿的,mock server是我们用来解除依赖(耦合),假装实现的技术,比如说,前端需要使用某些api进行调试,但是服务端并没有开发完成这些api&#…

iOS import包

Frameworks Frameworks 顾名思义就是框架&#xff0c;是第三方打包完成看不到源码&#xff0c;可以直接使用的 在项目中引用方式 OC 引用某一个文件&#xff0c;Frameworks一般会提供一个h文件引用全部其他文件 #import <JLRoutes/JLRoutes.h>swift 引用一个包&#x…

vue使用qrcodejs2生成二维码

目录 概要 构建展示的vue组件qrcode.vue 组件的使用 概要 项目中用到需要展示二维码的样式&#xff0c;想到了qrcode 例如&#xff1a; 前提&#xff1a;安装包 npm install qrcodejs2 --save 构建展示的vue组件qrcode.vue <template><div style"width: …

JVM垃圾回收算法和CMS垃圾收集器

目录 判断一个对象是否死亡&#xff1f; 1、引用计数法 2、可达性分析算法 三色标记 垃圾收集算法 1、分代收集理论 2、垃圾回收算法 标记-清除 标记-复制 标记-整理 CMS&#xff08;Concurrent Mark Sweep&#xff09;收集器 CMS垃圾收集器步骤 CMS垃圾收集器优…