写点什么

在中国做操作系统研发 20 年是种什么体验?丨 openEuler 英雄汇

2020 年 12 月 26 日

在中国做操作系统研发 20 年是种什么体验?丨 openEuler 英雄汇

20 年的操作系统从业经历,让武延军对技术、生态与商业有了深刻的理解。在他眼里,国内操作系统走过的历程虽然漫长,但发展方向总体上仍在往前推进。制约中国操作系统行业发展的问题出现在哪些方面?为什么中科院软件所会选择与 openEuler 一起合作?一个成功的操作系统应该是怎样的?带着这些问题,InfoQ 记者采访了中国科学院软件研究所特聘研究员、博士生导师,副总工、智能软件研究中心主任武延军。


20 年从业者视角下的操作系统行业


1997 年,武延军就读于清华大学计算机系,大三的时候有幸进入中科红旗实习,从此以后就与操作系统行业结下了不解之缘。


当时中科红旗董事长孙玉芳也是中科院软件所的老师,我后来从清华保送到中科院软件所跟着孙老师读博士。06 年博士毕业留在了软件所工作,期间有一年多时间在美国 Stony Brook 大学读博士后,08 年回国以后一直在中科院软件所工作至今。


这近 20 年的操作系统从业经历让武延军感触颇深,虽然中国的操作系统行业发展历程比较长,但其实还一直处于一个不停往前的状态。


2000 年左右我在中科红旗实习,见证了产品化操作系统进入到个人领域的历史时刻。在此以前,Unix 这类操作系统都只能在大公司或者银行、电信行业里见到,但那几年像红旗、幸福、蓝点这些 Linux 的出现,让我们学生也能接触到操作系统的底层技术,这是我印象最深的时刻。


可能今天的开发者们很难想象当年那个时代,国内能接触到底层技术的渠道并不多,互联网上共享出来的资料和文档也远不如今天这样翔实,每一个操作系统行业的从业者都历经艰辛。


2000 年左右真正懂得 Linux 内核级开发的人特别少,当时我们在红旗的粗略统计不超过 100 人。包括后来国家启动的一些操作系统的科研项目时,也发现了我们技术力量的薄弱,真正能在操作系统底层、开源社区做出重量级贡献的人屈指可数。包括学术界知名的人也非常少,直到后来上海交大陈海波老师打开局面,我们在国际上才逐渐被人知晓。


操作系统相比于其他技术稍显“硬核”,加上其较长的产出周期,也导致了业界对其的关注度一直远远低于其他新兴软件层面的技术。但近两年来,国内对操作系统行业的关注度有了质的提升,按武延军的话说——“爷爷辈的人都在关注操作系统”。


从社会关注度到人才数量的规模化,再到以 openEuler 为代表的社区活跃度,中国操作系统行业的拐点将至。

openEuler 与中科院软件所的故事


其实华为在内部研发 EulerOS 的时候,我们已经有所了解,华为也跟中科院软件所做过多次技术交流。包括 EulerOS 团队的很多成员、奠基人也是我的同事、师兄。在中国操作系统行业里,很长时间我们都是在国外根社区的操作系统发行版的基础上做定制、裁剪、修改、完善,比如 Debian、Fedora、Ubuntu 等,但这样的基础实际上是不牢靠的。去年开源的 openEuler 正式发布以后,中科院软件所也觉得这是一次机会,于是就很顺理成章地达成了战略合作的意向。


在战略合作协议达成以后,中科院软件所做操作系统方向的人才全面投入了 openEuler 的建设中。目前中科院软件所在 openEuler 70 余个 SIG 组的建设中承担了 7 个,占比相当高。同时在 openEuler 技术委员会的相关社区活动、代码 review、社区 issue 处理等方面也做了很多工作。


今年 9 月,我们正式把 openEuler 作为中国科学院大学必修课的参考系统,大家都在 openEuler 上做实验,这也是首次把 openEuler 带到校园教学里。今年中科院软件所发起了开源软件供应链点亮计划,首次活动吸引了国内外 129 所高校、389 个社区开源项目参与,这其中 openEuler 作为共同主办方也做了很多工作。


什么样的操作系统是成功的?每个人都会有自己的评判标准,在武延军这里,标准有三点:


第一是社区的国际化。我们的操作系统发展,不能只是国内在用,自己人在玩,一定要走出国门,不能闭门造车。比如现阶段至少辐射日韩、东南亚,未来扩展到欧洲,最后再席卷全球。


第二是价值的高端化。像 openEuler 这样的操作系统、开源社区,未来一定要出现像 Red Hat 这样具备高商业价值的公司,能证明它在商业上可以取得广泛的成功。


第三是用户的平民化。平民化意味着,不管是我们做开发的,还是学生或普通爱好者,都能普遍地使用这个操作系统。


至于其他的技术形态,例如微内核是否要取代宏内核、分布式全场景、低代码 / 无代码的编码模式,每个人的想法可能都不太一样,我觉得只要多往更好的方向去努力就行了。


采访期间,正值 Red Hat 宣布停止维护 CentOS 8,武延军对此也有自己的观点:


国内很多厂商,特别是做服务器的厂商已经习惯了用 CentOS,因为它是来自 Red Hat 商业版经过验证的开源版本,放在服务器上非常稳定。包括很多云厂商 host 上的主机默认都是 CentOS,大家已经习惯了这种局面。


这个消息出来以后,短期内可能不会有太大的影响,毕竟以前的版本目前还都能用。但长期来看,其实是给大家敲响了一个警钟,并不是所有开源的东西都是可持续的,如果你不参与到社区当中,最后影响的人还是你自己。


至于这个事件对国产操作系统带来的机会,我反而认为这本身就应该是国产操作系统应该做的事情。国内厂商不能只用开源的版本,更应该参与到其中,甚至主导一些软件包的开发、维护,这样在问题出现的时候,国内厂商有能力、有底气站出来说这个事情对我们没有影响,我们甚至可以像 Oracle 一样站出来说你们可以用我们的 Linux 发行版。从这个角度看,我认为 openEuler 有这方面的潜质。对 openEuler 的发展,也同样需要社区的广泛参与,才能给它往后的发展带来更多可能性。


技术仍是核心问题,人才培养至关重要


今年,武延军在中科院大学教授操作系统的必修课程,这门 60 个学时、三个学分的必修课也吸引了不少学生群体。国内目前陆续也有一些高校开设了操作系统课程,但在整体的人才孵化层面还有一定差距。


CS(Computer Science)专业其实应该是一个非常核心的学科领域,国外很多知名大学几乎都会开设像操作系统和编译这样非常硬核的课程,但在国内很多高校却没有开设,或者说因为缺乏这方面的老师,开设不起来。这是我们后续需要加强的地方。


如果你在上学的阶段没有系统地接触过操作系统的底层原理,以后做相关的工作可能还是错过了最好的一段学习时间。


过去几年间,InfoQ 关注到很多小学、初中在义务教育阶段开设了编程语言的学习课程,但对操作系统这样偏基础软件的领域反而是没有过多涉猎,包括很多大学计算机系对其关注度也不够。武延军认为这也是对行业发展不好的地方。


从技术、商业、生态三个角度讲,很多专家认为现在操作系统行业不是技术问题,是生态问题。但从我的角度看,最核心的问题其实还是技术问题。我们在 Linux Kernel 等很多社区里,非常活跃的贡献者还是很少。华为在 Linux Kernel 里贡献量到了第二位,这是一个很好的现象,但我们的差距还是比较大。


另一方面,核心技术的掌握还不够,掌握核心技术的人也还不够多。等哪天我们解决了这两个问题,可能很多问题,包括商业问题和生态问题也就能迎刃而解。


技术未来的落脚点一定是落在学生群体,如何让更多学生群体拥抱看起来过于“硬核”的操作系统行业,也是当前面临的一大问题。为此,中科院软件所发起了“开源软件供应链点亮计划”,并在今年举办了暑期 2020 编程计划,支持上百名学生,在社区导师(均为开源社区资深人员)的带领下,参与开源社区项目、贡献代码和文档。部分学生通过此次活动甚至成为了顶级开源社区认可的核心代码提交人员(committer)。


我其实跟很多老师做过交流,大家发现学生的技术方向选择还是多以就业为第一目的。如果要吸引学生群体的加入,一定要在就业市场、产业需求上做一定的引导。华为在这方面做得非常好,真正地把底层的基础软件的价值给体现出来,通过持续的投入获得商业上的回报,让大家看到基础软件领域其实是有巨大价值的。


第二方面,要有老师的引导。操作系统行业本身不是一个产出周期快的领域,老师对学生的选题考核一定不能短平快,不然会使学生产生挫败感。参与一个操作系统的项目,可能半年没有成果。但搞一个 AI 模型,可能半个月就能有所成果。这两者之间的度量方式一定不能相同,老师对学生的引导也不能盲目跟风。参与规模庞大的 TensorFlow 开源社区完成一两个神经网络模型所能取得的成长,一定比不上深度参与一个维护者少但影响广泛的 OpenSSL 项目。

2020 年 12 月 26 日 10:58947

评论 1 条评论

发布
用户头像
能和电动汽车一样就会好很多 出几个蔚来 理想 这样的操作系统厂商
2020 年 12 月 26 日 17:01
回复
没有更多了
发现更多内容

【行业分享】叮咚课堂邱明丰:在线教育的最终形态的探索

ZEGO即构

架构师训练营第十一周作业

邓昀垚

架构师训练营第二周框架设计学习总结

Geek_xq

利用 Arthas 解决启动 StandbyNameNode 加载 EditLog 慢的问题

阿里巴巴云原生

阿里云 开源 云原生 中间件 Java 25 周年

顶层设计已基本完备 数字货币将进入加速推进阶段

CECBC区块链专委会

数字货币

数字货币——货币的第四次革命

CECBC区块链专委会

数字货币

Scala语法特性(三):面向对象的独特点

正向成长

特质 样例类 case class Traits

架构师训练营第十一周总结

邓昀垚

JVM调优不知道怎么回答,阿里总结四大模块,学不会就背过来

小Q

Java 学习 架构 面试 JVM

面试无忧:源码+实践,讲到MySQL调优的底层算法实现

小Q

Java 数据库 学习 面试 算法

阿里架构师花近三个月时间整理出来的Java独家面试题(Java岗)

Crud的程序员

Java 编程 架构 java面试

Nginx的反向代理与负载均衡--配置Nginx

Linux服务器开发

nginx 负载均衡 反向代理 后端开发 Linux服务器

一枚程序猿的MacBook M1详细体验报告

Zhendong

甲方日常 59

句子

工作 随笔杂谈 日常

从应用迁移到平台微认证:鲲鹏技术解读

华为云开发者社区

鲲鹏 代码迁移 arm

区块链商品溯源系统开发,区块链防伪追溯系统

13530558032

RocketMQ 很慢?引出了一个未解之谜

阿里巴巴云原生

开源 云原生 中间件 Java 25 周年 Arthas

Arthas 实践——生产环境排查 CPU 飚高问题

阿里巴巴云原生

开源 云原生 中间件 Java 25 周年 Arthas

Vim - 可能是投资回报率最高的 Editor

star_fx

vim

第六周学习总结

Griffenliu

我是如何使计算提速>150倍的

Lart

Python 代码优化 Numpy

免费下载O’Reilly出版社全新之作《建立机器学习流水线》

计算机与AI

学习

智慧警务大数据决策指挥平台,警务大数据可视化平台开发

13530558032

第六周作业

Griffenliu

深入了解物理内存管理-伙伴(Buddy)算法

ShenDu_Linux

Linux 算法 内存管理 内核

LeetCode题解:121. 买卖股票的最佳时机,暴力法,JavaScript,详细注释

Lee Chen

算法 LeetCode 前端进阶训练营

怎么保护自己的音乐作品不被盗用,用FL制作防盗水印片段。

奈奈的杂社

区块链电子票据解决方案--区块链赋能纳税服务

13530558032

打工人、打工魂、高效MES助力打工者都是人上人

Learun

敏捷开发

多线程源码明白了吗?不明白的话来看腾讯大牛给你画的面试重点

996小迁

Java 学习 编程 架构 面试

区块链如何助力精准扶贫?

CECBC区块链专委会

区块链 扶贫

打造 VUCA 时代的 10 倍速 IT 团队

打造 VUCA 时代的 10 倍速 IT 团队

在中国做操作系统研发 20 年是种什么体验?丨 openEuler 英雄汇-InfoQ