点击围观!腾讯 TAPD 助力金融行业研发提效、敏捷转型最佳实践! 了解详情
写点什么

操作系统快速发展,openEuler 如何先行一步

  • 2021-06-09
  • 本文字数:3915 字

    阅读完需:约 13 分钟

操作系统快速发展,openEuler如何先行一步

2019 年 12 月 31 日,openEuler 正式开放源代码、镜像及开发测试环境。时至今日,短短一年半时间,openEuler 已经发布了三个版本,拥有 4700+ 社区开发者,社区版本下载量超 6 万。社区迅速发展壮大,版本如期稳定发布,InfoQ 独家专访了 openEuler 技术委员会委员熊伟,请他聊聊在陪伴 openEuler 成长背后的故事与感悟。

采用 Linux 内核 5.10,openEuler 21.03 已先行一步


谈到社区,人们总是会关心它的产品发展如何。自开源以来,目前已经发布了三个版本,分别 20.03 LTS、20.09 和 21.03。其中 20.03 LTS 是长维护周期版本,也是被众多的 OSV 和合作伙伴所广泛使用的社区版本。20.09 和 21.03 则是两个创新版本。



图源 openEuler 官网


openEuler 21.03 是最新发布的版本,与前面两个版本相比,熊伟表示 21.03 版本有很多技术创新,例如采用全新的 Linux 5.10 内核、开发了内核热升级框架、提供内存分级扩展能力等诸多创新特性。


首先,21.03 版本最大的不同就是内核发生了重大变化,它采用了 Linux 5.10 内核。5.10 内核对新的体系架构如 RISCV 支持更好,使得 x86 、ARM64 和 RISCV 不同体系的架构终于可以在一个版本下得到完善的支持。除此之外,明年 openEuler 将发布的第二个 LTS 版本 22.03 也将采用 5.10 内核,LTS 版本对于质量的要求很高,因此内核的选型一定要提前,稳定性、可靠性都要经过长时间验证,因此 openEuler 21.03 也承担着为 22.03“趟路”的重要职责。


其次,21.03 版本实现了工业界一直期望的新特性——内核热升级。在关键领域、关键业务中,有些核心应用要求不停服,而操作系统可能会有安全漏洞,需要频繁更新,如何在不停机的情况下切换内核就成为了大家梦寐以求的技术。内核热升级就是一种 OS 漏洞修复及升级解决方案,实现内核快速热升级,业务不感知。openEuler 社区首次开发了内核热升级的原型系统,对于 mysql、nginx 等应用可以做到业务无感知的内核热升级。当然,目前内核热升级还属于原型系统,我们希望在社区里大家一起完善它,尽早实现商用可交付。


再次,openEuler 21.03 实现了一个新的软件框架——内存分级扩展系统 etmem,该系统可以用来统一管理多种层次的存储介质,实现系统存储容量平滑扩展。该功能可以通过内核态的内存页面忙闲统计机制,精确识别进程内存页面访问冷热分布,支持 SCM、XL Flash、NVMe SSD 等多种介质作为扩展内存,然后根据介质自身访问速度指定内存冷热分层方案,以达到扩展内存并减少性能损失的目的。据悉,在 MySQL 数据库上使用这个功能,性能提升可以达到 40%-50%。


最后,openEuler 社区的合作伙伴也为 21.03 版本贡献了很多新的功能,例如 OpenStack Victoria 集成和 HA 高可用集群方案。OpenStack 支持是中国联通与其它合作公司一起开发的,拥有这个特性之后,openEuler 就可以提供完整的 IaaS 层支持;HA 高可用集群方案则是麒麟软件贡献的,支持故障秒级切换,为用户提供业务连续性保障、数据持续保护、灾难恢复的高可用环境。


除此之外,参与 openEuler 社区其它伙伴也都为 21.03 做了贡献,在这里就不一一列举了,具体的特性大家可以参看 21.03 的技术白皮书,或者直接与相关的 SIG 组进行了解和讨论。

接轨上游社区,连通下游厂商,openEuler 遍地生花


相信前段时间大家都关注到了一个消息,Linux 内核 5.10 版本的维护周期将从 2 年延长到 6 年,而 openEuler 即将发布的下一个 LTS 版本刚好采用的 Linux 内核 5.10。对此,熊伟表示:


Linux 内核维护周期对于操作系统版本的生命周期来说是非常重要的,如果内核维护周期短于操作系统版本的维护周期,那么就意味着社区需要投入更大的力量来进行维护,反之则可以借助社区和全球的伙伴们一起进行维护,使之成为全球厂商共同的选择,降低所有厂商的维护成本。因此,在决定 22.03 版本采用 Linux 内核 5.10 之后,openEuler 就在积极与上游社区沟通,并最终获得了社区的认同。


支持多处理架构是 openEuler 的重要特性之一,也是 openEuler 支持多样化算力的具体体现。对于具体的芯片支持,目前社区有两种适配方式,一种是芯片厂商将自己芯片的特性、驱动代码等发送给社区,由社区审核后合并到 openEuler 版本中,从而支持该芯片;另一种方式是芯片厂商自行适配 openEuler,最后将相关适配结果反馈给社区,由社区再进行发布。不论哪种方式,openEuler 都欢迎。


作为一款开源操作系统,任何伙伴都可以免费获取 openEuler 社区版本并商业化。据了解,目前共有 8 家企业基于 openEuler 发布了商业发行版操作系统,其中包括麒麟、普华、深度等国内 OS 领军公司。


除了在国内的发展,2020 年,熊伟在接受采访时曾明确表示过 openEuler 有国际化发展计划。现在时间来到 2021 年,openEuler 的国际化发展是否已经有进展了呢?


据熊伟介绍,openEuler 在海外已经有了落地案例。有一家俄罗斯公司基于 openEuler 构建了俄罗斯本土的商业化版本。除此之外,openEuler 在全球各地都部署了镜像,方便全球用户下载使用,在后台统计中也确实发现,全球各大洲都有不少的下载量。另外基于 openEuler 的树莓派的 OS 镜像也已经进入到树莓派官方 repo 了。未来,我们会更进一步的推动 openEuler 的国际化,更加积极的融入到全球软件体系中。

要技术,更要社区:开放治理带来飞速发展


国产操作系统总免不了“套皮”质疑,国内开源项目也总免不了“KPI 项目”质疑… 这样的质疑,openEuler 自然也经历过,但在经历了三次发版之后,大家已经从一开始的单纯质疑转变为关注 openEuler 社区又做了哪些事情?


在熊伟看来,大家一开始对 openEuler 及社区有疑问是可以理解的,长期以来,“换皮”开发是众多厂商的选择,但这样的模式既无法建立独立演进的体系,也无法形成完善的生态系统。而 openEuler 选择了“正确但是困难”的道路,那就是彻底自底向上地构建一个独立体系——构建一个“原生开源操作系统”。至于社区发展,熊伟也表示,在开放治理的模式下,组成社区的三个关键因素——组织、人和技术,在过去一年多发生了很大的变化。


在组织方面, openEuler 社区在过去的一年内,治理遵循扁平化原则,建立起来了包括理事会、技术委员会、安全委员会、市场委员会等基本的组织架构,构建了一个完善的社区治理机制,同时在运作过程中逐步形成了配套的运作流程,这在中国开源发展史上具有里程碑的意义。


在具体的运作过程中,以社区技术委员会为例,社区遵循开放治理的原则,目前技术委员会成员有 50% 是来自华为以外的企业代表。


在社区工程组织层面,截至 6 月 6 日,openEuler 的 SIG 组已达 84 个。这些 SIG 组既包括面向公共技术的通用技术小组,也包括面向具体业务场景的解决方案小组。而且最新的 SIG 组申请都是结合业务场景、垂直的解决方案 SIG,这是一个重要的标志,标志着 openEuler 已经开始从补齐功能向着业务纵深发展,这是一个可喜的变化。


在人员方面,操作系统领域一直面临着这样一种情况,虽然操作系统领域很“热”,大家都在谈论,但实际上真正的从业人员很少。openEuler 社区发展的一年半时间,为这个行业沉淀了一批优秀的工程师,一批优秀的运营人才,一批开源基础设施人才。大家逐步熟悉了社区的玩法,习惯了社区化的开发方式,这不但保证了 openEuler 社区长期健康发展,也为整个行业储备了人才队伍。熊伟相信这些人中一定会成长出未来开源行业、操作系统行业的领军人物。


在技术方面,发布的 LTS 版本已经在各行各业获得了广泛使用,商用部署规模持续扩大,而且经过严酷的商业环境的考验,证明整个 OS 的质量也是过硬的。其次,openEuler 社区的目标并不只是做一个 OS 的发行版本,更期待社区成为创新的孵化器,目前社区已经孵化很多自主研发、从零构建的新项目,比如 iSula、stratoVirt、secGear、etmem 等等项目,这个势头是很好的,期待在不远的将来,社区里能孵化出世界级的高水平软件。


自开源以来,经过 500 多天社区建设,openEuler 社区已经形成了比较完善的管理流程。


以技术委员会为例,openEuler 社区每两周就会召开一次技术委员会例会。诸如 SIG 组的建立申请,SIG 组运作审视,技术裁决,新技术分享等,都可以申报议题,在例会上进行讨论或者决策。决策表决的策略也很简单,就是简单多数原则。如果是新建立的 SIG 组,技术委员会会指定一个委员作为 Mentor 加入到 SIG 组,帮助大家尽快融入社区。


在很多人的印象中,openEuler 的所有技术都是由技术委员会决定的。而熊伟则表示这其实是一个误解。


技术委员会并不是大家想象中“技术上帝”,站在上帝视角来指导技术的方向。技术委员会的任务更多是制定技术策略,技术原则,规范开发流程,监督开发过程,审视 SIG 组运作,协调技术冲突等工作,但是对于具体技术的选择权力是充分放权给 SIG 组,例如 22.03 LTS 版本决定采用 Linux 内核 5.10 就是由内核 SIG 小组自行讨论决定并报技术委员会审批通过的。openEuler 社区坚信,专业的事情一定要交给专业的团队,只有充分相信团队的专业性才能保证产品正确的发展方向,并带来越来越多的创新。


开放治理带来飞速发展,经历了之前的道路摸索,openEuler 社区已经走上了快车道。


openEuler 开源社区的整个组织架构已经初步形成了,社区会坚持扁平化治理原则,技术权力下放,由技术专家和骨干引领技术走向。在人才培养方面,要让更多社区开发者熟悉整个社区的运作模式。目前 openEuler 社区孵化出了很多很好的新项目,相信假以时日,这些新项目“小树苗”会成长为“参天大树”。在千行百业数字化转型的今天,作为底层基石的操作系统也迎来了快速发展的春天,而在这其中,开源操作系统 openEuler 已经先行一步。


最后祝 openEuler 能够在未来取得更大的成就,我们也期待着下一次对熊伟的采访,期待他为我们带来更多新鲜的进展。

2021-06-09 14:393631
用户头像

发布了 497 篇内容, 共 288.8 次阅读, 收获喜欢 1861 次。

关注

评论 1 条评论

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

前端懒加载和预加载

hellocoder2029

JavaScript

从历史讲起,JavaScript 基因里写着函数式编程

掘金安东尼

前端 11月月更

SAP UI5 BarcodeScannerButton 的初始化逻辑 - feature 检测,Cordova API 检测等逻辑

Jerry Wang

前端开发 Fiori SAP UI5 ui5 11月月更

如何使用清源CleanSource SCA建立软件物料清单(SBOM)

安势信息

SCA 软件物料清单 SBOM 清源CleanSource SCA

软件测试面试真题 | 经典SQL查询

测试人

数据库 软件测试 面试题 sql 测试开发

JavaScript刷LeetCode拿offer-并查集

Geek_07a724

JavaScript LeetCode

你需要知道的webpack高频面试题

Geek_02d948

webpack

在数据增强、蒸馏剪枝下ERNIE3.0分类模型性能提升

汀丶

nlp 文本分类 11月月更 ernie

程序员的浪漫(代码猜诗词)

叶秋学长

程序员 11月月更 诗词 专属浪漫

这是你没见过的MindSpore 2.0.0 for Windows GPU版

华为云开发者联盟

人工智能 华为云 企业号十月 PK 榜

小程序如何开通流量主

源字节1号

微信小程序 软件开发 小程序开发

一文全面了解火山语音无监督预训练技术的落地实践

科技热闻

程序员买啥游戏机,自己动手做一个体感小游戏

华为云开发者联盟

人工智能 华为云 企业号十月 PK 榜 体感小游戏

体验一把 Flowable 三种常见网关

江南一点雨

Java spring springboot flowable JavaEE

文盘Rust -- 把程序作为守护进程启动

京东科技开发者

rust 后端 进程 守护进程 rust语言

【LeetCode】被围绕的区域Java题解

Albert

算法 LeetCode 11月月更

赛迪网|专注财务全流程数字化,元年科技PaaS平台再上新台阶

元年技术洞察

方舟

一文彻底读懂webpack常用配置

Geek_02d948

webpack

“企业级零代码黑客马拉松”决赛圆满落幕

明道云

黑客 零代码 无代码 黑客马拉松 黑客松

安全可信丨两个项目新入选可信边缘计算推进计划!

天翼云开发者社区

理解NodeJS多进程

coder2028

node.js

数据标准化红宝书权威发布!一文速读核心内容~~

博文视点Broadview

OKR之剑·实战篇01:我们的OKR制定落地

vivo互联网技术

团队管理 OKR 目标管理

JavaScript刷LeetCode拿offer-贪心算法

Geek_07a724

JavaScript LeetCode

乐高式扩展:在Seal软件供应链防火墙中轻松集成代码规范工具

SEAL安全

开源 DevOps 云原生 DevSecOps 软件供应链安全

webpack高级配置

Geek_02d948

webpack

令人头疼的Javascript隐式&强制转换

hellocoder2029

JavaScript

快出数量级的性能是怎样炼成的 审核中

jiangxl

深聊Nodejs模块化

coder2028

node.js

深度阐述Nodejs模块机制

coder2028

node.js

计算机网络:数据报与虚电路

timerring

计算机网络 11月月更 数据报 虚电路

操作系统快速发展,openEuler如何先行一步_语言 & 开发_田晓旭_InfoQ精选文章