互联网技术 / 互联网资讯 / 营销 · 2022年9月26日 0

openEuler:与伟大同行的机遇

openEuler:与伟大同行的机遇

文 | 曾响铃

来源 | 科技向令说(xiangling0815)

创造一个让每个人的梦想都能实现的智能世界,可能是每个开发者心中都有的梦想。

可是开发者们的第一步该从何入手呢?

选择一种语言语法,用几十行代码来实现一个小小的功能?

还是通过数百行的数据结构,或是上千行的算法和优化,甚至高达几万行代码的架构来构建一个具体事项的解决方案?

如果开发者有足够的“野心”,他一定会选择数十万甚至上百万行代码的操作系统,作为一切软件开发的基础,创造出一个庞大且纷繁的生态。

那么问题来了,开发者如何才能参与到操作系统级别基础软件的开发工作当中去呢?

不久前,openEuler对外发布了openEuler 20.09版本,打开了一扇让我们看到多样计算未来的窗口,同时也给所有的开发者们提供了一个与伟大同行的机会。

openEuler:与伟大同行的机遇

一、Linus老矣,Linux的未来在哪?

每个开发者都想参与系统内核的开发,真正控制所有将在计算机中发生的事情,在接受这项挑战之前,开发者对这项工作的难度有多大的心理预期?

我们可以一起来看看Linux的内核维护项目。

作为当前世界上最为流行的操作系统,Linux在超过20亿的设备上运行。

十九年前初代Linux系统内核开源时,代码总量约11万行,经过了近百万次的提交,无数个版本迭代,目前源代码已经超过了2780万行。Linux也成为人类技术发展中不可或缺的一部分。

可就是这样一个在行业内极具影响和分量的项目也面临着后继乏人的窘境。

在今年7月的线上开源峰会与嵌入式Linux大会上,Linux缔造者Linus Torvalds谈到了为开源操作系统寻找未来维护者时的种种挑战。

目前,Linux内核维护者主要还是即将年满51岁的Linus和一些50或60后的老程序员,当Linux社区开始考虑交接变革时,并没有合适的年轻开发者可以接棒。

之所以会如此,除了Linus过于严厉,让年轻人望而却步之外,还有两个原因。

其一是如何获得社区的信任需要一个长时间的过程。

作为内核维护者,则意味着你必须长期存在,每天都要在电脑前阅读来自全球各地的电子邮件,对邮件做出反应,Linus坚持这项工作整整30年了。

当然,也并不是说你有时间,愿意为项目付出,就能成为合格的内核维护者。因为随着Linux系统不断进化,越来越多的人和智能化的开发都依赖于Linux内核,相应的,代码贡献者们对内核维护者的要求和期望也越来越高。

内核维护者必须“德高望重”,具有领导者的气质才能获得代码贡献者乃至整个社区的信任,而这都是需要时间的。

其二是这项工作确实很难。

由于学习门槛太高,缺乏曲线平滑的学习资料,一些资深的程序员,用各种不同的语言编写了20多年代码,在面对Linux内核开发时,仍然不知道该从哪里开始才能对项目作出有用的贡献。

事实上,Linux社区并不是没有意识到建立一个由浅及深、完善的学习文档和示例对于整个项目吸引新人才的意义,但根据Linux内核项目当今的体量,要做出一份完美的文档是一件非常艰难的工作。

与十几年前相比,Linux内核项目的上手难度已呈指数倍增长,一个新人开发者几乎要花费几个月甚至1年多的时间才能有可能掌握Linux内核的全貌,这是一个巨大的、艰难的过程。

二、华为啃下硬骨头,窥视多样计算的未来

世上无难事,只怕有心人。

在过去的十九年时间内,为Linux系统贡献过代码的开发者不计其数,目前仍在参与开发的还有21000多人。

如果说处理器是硬件的核心,那操作系统就是整个软件生态的根基,从上文提到的Linux内核维护项目的现状来看,建立一个属于自己的操作系统和软件生态,仅仅走出第一步,肩上就已经有数不清的枷锁。

在多样性计算时代大门悄然打开之际,华为站了出来,尝试着与那些桎梏行动的枷锁进行搏击,华为深知,这是自身脱离技术封锁困境的机会,也是作为开发者的目标和使命。

于是,我们看到了在最新发布的Linux Kernel 5.8版本中,华为一跃成为内核代码贡献排名第二。

openEuler:与伟大同行的机遇

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

openEuler:与伟大同行的机遇

或许会有疑问,这么难的一件事情,华为是怎么做到的?

对照着Linux内核维护项目,我们一起来看看华为是如何将问题逐一排除的。

首先,华为就像Linus所说所做的那样,做到了长时间的坚持。

10年前,华为在Linux社区合入了第一个patch,整整10年,华为始终坚持在社区贡献代码,在自身获得成长的同时,也赢得了社区和开发者们的尊重与认可。

社区和开发者们的认可来自于华为这10年来在基础软件上所体现出的全面实力。

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

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

其次,为降低开发门槛和提升开发效率,华为开发了自动内核缺陷发现机器人HULK Robot(Huawei Unified Linux Kernel Robot)来辅助开发。

开源模式下除了带来业务生态快速催熟等各种红利外,也引入了越来越多的挑战:海量频繁的补丁合入、成千上万的开发人员、一行修改百倍测试等等。

HULK Robot融合了大数据机器学习和语义分析技术,集成基于场景语意的模糊测试技术、全系统函数级故障注入配合精准的单元测试,使HULK Robot成为一个高效、精准的可