关于开源这件事,openEuler到底做得怎么样了?

2020-11-03 16:43:59 浏览数 (1)

文 |魏启扬

来源 | 智能相对论(ID:aixdlun)

开源对于计算产业很重要,但到底有多重要,特别是基础软件开源,很少有人能完全解释清楚。

开源发展至今,无数的参与者为之贡献,产生了无数的软件和库类,同时又有无数人在使用,其中受益的不仅仅是企业组织、开发者群体,更是这个世界上的每一个你我。

有关开源的讨论实在太多,在刚刚结束的由CCF主办的计算领域年度盛会,中国计算机大会(CNCC 2020)开源操作系统分论坛上,由教育部国产基础软件工程研究中心主任、麒麟操作系统常务副总师吴庆波和openEuler 社区理事长江大勇联手主持,来自国内顶尖高校和行业领军企业的19位学术大咖和资深技术专家带来了来自开源项目一线的干货分享。

1

开源,一个没有结局的故事

在本次论坛上,优麒麟操作系统负责人余杰博士、清华大学计算机系长聘副教授陈渝、统信软件副总裁张磊、华为计算产品线鲲鹏openEuler操作系统首席SE管延杰分别做了主题演讲。

内容包括从开源操作系统在产业实践的经验体会,到通用操作系统发展趋向的探讨,再到开源操作系统推广及高校人才培养的深入探索。专家们将开源操作系统的现状、困境和趋势以及openEuler如何构建最具活力的开源社区等话题进行了深入剖析。

开源操作系统现状到底怎样,行业中最具分量的Linux内核维护项目很能说明问题。

在今年7月的线上开源峰会与嵌入式Linux大会上,Linux缔造者Linus Torvalds 亲口承认这个项目正在面临着继任者难寻的窘境。其中很大一个原因在于随着Linux系统的不断成长,系统内核维护这件事正变得越来越难。

虽然这件事情很难,但开发者将其视为提升自己技术和影响力、为技术圈做出一些贡献的选择;有企业和组织将其视为展示公司技术实力、对行业产生影响力的一种方式,因而目前仍有21000多人参与Linux内核开发,贡献代码,华为就是其中的一员。

最新发布的Linux Kernel 5.8版本中,华为成为内核代码贡献排名第二。

从公司贡献角度来说,华为提交的补丁数量位列第二名,占比8.6%,代码修改行位列第一,占比达27.8%。

事实上,华为为社区贡献代码已经足足10年时间了,目前华为在社区已经拥有20 Maintainer,在容器所使用的核心功能Cgroup,软硬件解耦ACPI on ARM64,文件系 F2FS/EROFS,RAS EDAC框架,Media子系统,IIO子系统,以及Perfon ARM64等子系统上,华为都为社区贡献了代码。

此次发布的Linux Kernel 5.8版本,华为贡献的1399个补丁中,除了前文中提及的系统特性外,还有包括网络、文件系统、perf 调测、安全等关键子系统的200 的bugfix补丁,这些都是Linux能够正常运行所需的基础软件系统,对于Linux是非常重要的。

华为持续释放着自己在基础软件上的实力。去年年底宣布Linux内核开发的服务器操作系统EulerOS正式开源,在本次开源操作系统论坛上,华为计算产品线鲲鹏openEuler操作系统首席SE管延杰详细讲解了openEuler当前的能力建设与未来展望,分享了华为构建最具活力开源社区的经验与方法。

很明显,通过openEuler,华为又开启了一段新的开源征程。

2

打造最具活力的开源社区,openEuler 是如何做到的?

openEuler开源之前,华为在这个项目上的技术投入和积累已经超过10年,当时这套操作系统就能够满足企业全云化、多场景业务、智能化弹性部署等一系列ICT产业变革需求。

2019年华为全联接大会上,华为首次宣布了计算产业“硬件开放、软件开源”的核心战略,openEuler成为软件开源的第一站。同年12月,openEuler操作系统源代码正式上线,宣布开源之路启动。今年3月,openEuler开源社区发布openEuler 20.03 LTS版本,9月发布openEuler 20.09创新版。如今,openEuler开源社区已经取得了阶段性成果。openEuler吸引到越来越多的全球开发者参与,社区整体朝向“共建、共享、共治”的目标稳健发展。

在分论坛的演讲中,华为计算产品线鲲鹏openEuler操作系统首席SE管延杰详细解读了20.09版本的几大特点,其中包括:

1、支持多处理架构

新版本增加了新的架构和芯片支持,除了之前的X86和ARM架构之外,还与中科院软件所合作,发布了国内首个RISC-V Linux尝鲜版,同时还增加对中科海光芯片的支持。对于开源开发者,20.09版本增加了对树莓派的支持。

支持的架构和芯片越来越多,在一定程度上说明openEuler正在以更开放的心态和更低的开发门槛迎接开发者们加入项目。

2、性能更强

针对目前核与核之间,物理CPU与物理CPU之间,越来越不均衡的现状,新版本为了更好的去释放这些硬件的算力,对内核进行了协同反馈式的调度,通过内核共享资源并行优化等技术手段,进一步释放多核之间的算力,实现性能提升20%。

新版本在为行业提供新的多核算力解决方案的同时,也进一步在外界展示在华为在开源操作系统领域的硬实力。

3、使用更易

在虚拟化方面,新版本通过StratoVirt iSula组合构建了一个极致轻量化的安全容器全栈,甚至可以说是下一代的虚拟化技术。

通过RUST语言和VMware的接口,针对数据的迁移,包括镜像的构建,提供了比较丰富应用的一个工具,通过这些构建,让容器使用起来更加简单。

这个方案既有虚拟机的隔离性,又有相关实时和轻量化,面对未来的Severless计算平台,特别是函数计算这一方面,是一个非常完美的选择。

4、效率更高

为了更好地对OS进行基于业务场景的调优,新版本的A-Tune工具针对于应用业务场景进行了系统画像,把所支持的应用场景扩大到了10大类20多款应用,可以调节的对象参数达到200多个。

由于A-Tune是对运行在操作系统上的业务建立精准模型,动态感知业务特征并推理出具体应用,根据业务负载情况动态调节给出最佳的参数配置组合,从而使业务运行于最佳系统性能状态下,大大提升了调优效率。

总的来说,除了增加新的架构和芯片支持之外,新版本的大多数升级都是围绕提升易用性展开的,其目的也是为了降低了开发者参与到openEuler开源项目的门槛。

2020年 9月30日,openEuler开源社区发布openEuler 20.09创新版。本次版本发布是openEuler社区中的多个公司、团队、独立开发者协同开发的成果,在openEuler社区的发展进程中具有里程碑式的意义,也是中国开源历史上具有标志性的事件。比如此次新版本的更新中:中科院软件所贡献了RISC-V新指令集架构支持;麒麟软件为社区共享了赏心悦目的桌面UKUI系统;云原生虚拟化平台StratoVirt和iSula容器升级版,两者的结合重构了轻量级云原生基础架构;BiSheng JDK为Java应用带来更强的性能;IMA完整性度量架构和secGear机密计算框架,给开发者在多平台安全应用的开发效率带来倍级提升。

3

从内核探索到行业场景,一个更加纷繁壮丽的未来

20.09 版本是openEuler开源以来的一个高峰, 从管延杰在分论坛中的演讲内容来看,openEuler未来还将经历更多高峰。

根据openEuler的版本发布规划,今后每2年会发布一个LTS版本,每年3月和9月份还会各发布一个创新版本。

对于下一个21.03版本的展望,管延杰表示,新版本将进行更多的内核探索。

比如,目前Memory最大的变化在于新介质,以SCM为代表的廉价,超大容量,较高性能的存储介质给体系结构也带来一些变化,21.03版本将对新介质的内存管理进行更加深入的探索。

再比如,Linux Kernel代码快速增长,CVE数量也同步走高,而这些CVE只有不到20%的CVE能够用热补丁来进行修复,超过80%只能用冷补丁,冷补丁给大家带来的问题就是整个系统需要复位、重启,OS的修复需要很长一段时间,或将对用户业务造成影响。

在这一背景下,21.03版本将推出内核热替换技术,对内核热的替换之后,系统能够快速恢复,包括PCI的设备状态,以及内存里的业务数据等,整个替换时间在百毫秒到2秒之间,用户业务在“飞行途中换引擎”的同时,Bug修复效率也会有一个质的提升。

此外,openEuler 21.03版本还将有麒麟、DDE、Gnome三个桌面供使用者选择,增加repo仓库,让ISV的发布、分发效率更高,用户这更容易获取。

新版本面向云、边缘和端侧将提供一整套完善方案,支持在云上实现极致性能、高效运维和安全可靠;在边缘上提供轻量、敏捷、实时的系统;在端侧,提供一整套的工具集,让用户可以自由地对OS进行定制。

降低进入门槛仍然是21.03版本的重要任务,除此之外,在用户体验和落地连接侧,21.03版本则力图变得更“好用”,这也让我们对openEuler明年的这次更新产生了更多的期待。

在整个项目最难的生态建设和人才培养方面,华为表示将从学习扶持、构建扶持、上市扶持全面支持合作伙伴提升商业竞争力,同时联合清华大学发布openEuler、openGauss专业技术书籍,普及操作系统和数据库的基础知识,并融入国内重点大学的相关课程中,从高校教育开始,赋能个人开发者。

未来复旦大学、同济大学、华中科技大学等十所院校会第一批开设相关课程。此外, openEuler认证计划也于10月正式启动,首批HCIA 认证开放30位openEuler认证。

openEuler一路走来,完成了从上线到开源,从社区建设到OSV合作体系建设等一系列工作,完成了从0到1的起步,正在进行着从1到10,到100,到1之后无数个0的生态生态建设,从上文提到的openEuler版本发行节奏以及社区建设规划来看,openEuler的开源之路还将长期进行。

0 人点赞