写点什么

一个 50 岁中国操作系统开发者的故事丨 openEuler 英雄汇

2020 年 12 月 26 日

一个50岁中国操作系统开发者的故事丨openEuler英雄汇

陈棋德,一位 50 岁的操作系统老兵,在中国 Linux 发行版研发领域砥砺耕耘了二十余年。为什么他会选择看起来过于“硬核”的操作系统研发工作,一干就是这么多年?为什么他认为中国的 Linux 系统一定不能只做衍生版?在他眼里,中国基础软件的现状又是怎样的?带着这些问题,InfoQ 记者采访了陈棋德。在 12 月 25 日即将举办的 openEuler Summit 2020 上,陈棋德还将做专题分享,敬请期待。


二十年专注一件事:操作系统研发


1996 年 7 月,陈棋德硕士毕业进入到中科院计算机网络信息中心工作,正式接触到了 Linux 系统。时隔多年,他仍清楚地记得当时使用的是 Slackware 的 3.1 版本。1999 年 7 月,陈棋德加入了北京拓林思软件有限公司(Turbolinux)从事 Linux 发行版的研发工作,一干就是二十年。


20 世纪 90 年代,计算机在国内远未普及,投身操作系统开发的人数更是凤毛麟角。


国内我知道最早投身操作系统开发的人都在中科院和一些大学里,比如中科院软件所的孙玉芳老师。(孙老师已于 2005 年病逝)


谈到与操作系统结缘的经历,陈棋德表示故事其实很简单。学生时代,陈棋德学的就是计算机专业,与现在不同的是,当年学计算机的人并不多。在中科院计算所读书期间,陈棋德接触到了开源软件,产生了对底层技术的兴趣。


当时我很高兴能够看到操作系统等底层技术的代码,当有来自 Linux 领域公司的机会时,毫不犹豫地就选择了加入 Turbolinux,与 Turbolinux 三剑客一起工作。这些年一直从事基础软件方面的工作主要是源自对技术的兴趣和对开源理念的认同。


陈棋德在采访中笑着提到,年纪大了以后,有些事情都记不住了,当年学源码基本上过目不忘,现在看旧代码有时会忘记当时为什么要这么写。这 20 多年发生过很多故事,记忆虽有模糊,有三件事却给他留下了深刻的印象:


早年间,公司曾邀请自由软件运动发起人 Richard Stallman 访问中国。爬长城时他提到一年只用工作 6 到 7 周就能满足生活需求,其他的时间专注做自己想做的事情。从那个时候我就认识到从事开源软件工作还是需要在一个富裕的社会背景下,这样大家才可以做自己喜欢的技术方向的工作。


二是在 Linux 的发展初期,公司的研发高手利启诚等人只用了一天时间就取得了重大突破,实现修改内核代码在字符终端上显示中文的特性。利启诚也是内核文件系统 InterMezzo(2.4.15 版本加入) 的三个主要开发者之一,他是国内在早期就能参与 Linux 内核开发的程序员。身边的内核高手给我留下深刻印象。



三是 Turbolinux 在拓荒企业级服务市场时曾攻克的一个技术难题。当时的背景是在电信行业,某通讯公司百万行代码的应用在 Linux 2.4 上性能不佳,胡欣蔚(现 openEuler 社区技术委员会主席)等人去了现场和对方架构师交流,找出了其软件架构未能发挥 OS 性能的根本原因,最终提升了 3 倍的效能。这是我碰到的第一个让应用在 OS 层面充分发挥硬件性能的企业级实践经历。


陈棋德对操作系统一直有一个观点:国内要想有很好的发展,一定不要满足于只做 Linux 的衍生版,而是要去做一个开源的、生态良好的操作系统。在 openEuler 操作系统出现以后,他觉得时机到了。


与 openEuler 结缘的故事


openEuler 是一个开源、免费的操作系统平台,自开源至今,短短一年时间已经有 2000 多位贡献者,70 余个 SIG 组,社区迅速发展壮大。


今年,陈棋德正式加入了 openEuler 社区。但其实,他与 openEuler 的缘分在很久以前就开始了。


前文提到的 openEuler 社区技术委员会主席胡欣蔚,多年前就曾与陈棋德一起共事。openEuler 技术委员会的另一位委员熊伟,早年间也曾在 Turbolinux 工作,某种意义上,陈棋德算是他的入门师傅。


我一直比较关注国内的 Linux 行业,了解到 openEuler 的技术路线后也跟他们做过多次交流,最终选择了加入社区一起贡献。目前在社区我主要负责 xfce 和 gnome 两个 SIG 组,在提交包的过程中也参与测试了 openEuler 社区的基础设施。其他时间还会跟踪内核和编译器等底层方面的包,并和国外 Linux 版本做对比,以便更好地了解 openEuler 的优势。


陈棋德表示,要做好一个独立的 Linux 发行版需要庞大的开发者群体。以 Fedora 为例,其开发人员规模在 3500 人左右,而其中的大部分人员都是上游社区的开发人员,能统计到的 Red Hat 公司的开发者就有七百人之多。这意味着,能参与到上游社区开发的人员,最差的也是编程能力出众的高水平程序员。


我很高兴看到华为把世界一流水平的基础软件底层能力开放出来做 openEuler,我也期待 openEuler 能够越做越好,成为国际主流的 Linux 发行版。开源操作系统成功的关键无外乎二者:完善的生态和广泛的产业链支持。构筑生态的前提是自己做得足够好,这就要求技术上我们尽可能地做到 upstream first,希望在不就的将来 openEuler 社区开发人员的 upstream 人员数量能够超越 Fedora。


CentOS 8 将于 2021 年底停止维护的大新闻与这次采访不期而遇,此次事件不论是在 openEuler 社区还是操作系统行业内都引发了广泛的讨论。陈棋德表示,CentOS 8 的用户其实可以继续用其他 RHEL/CentOS 的衍生版本,比如 Oracle Linux 就表示用户可以使用其替代 CentOS。而在另一个层面上,他表示用户也可以尝试迁移到 openEuler 上,因为开源操作系统的好处就是去厂商绑定,多一个选择对迁移不是难事,对社区都是好事。


中国基础软件:要技术,更要市场


在很多圈外人看来,国内操作系统行业发展不尽如人意。而陈棋德却认为,在 Linux 内核层面上,中国的发展其实并不算差。


数据统计显示,Linux 内核来自中国程序员的贡献已经排在世界第二,仅次于美国。Coly Li 写过一篇名为《Linux 内核在中国大发展的黄金十年》的文章,系统介绍了最近十年国内内核发展的情况,我的观点与他相同。


以 Linux 为例,国内操作系统目前技术实力已经今非昔比,而且有能力参与 OS 市场的商业竞争。最近几年华为连续出现在 Linux 内核贡献前列的名单中,今年更是已经到了世界第二。在开源操作系统方面,国内的各大科技巨头也有广泛投入。


真正与国际相比,不足之处仍在于我们大牛层面上的人数还不够多,在最高水平方面有所差距。


我认为国内操作系统可能的机会有几个方向。首先还是希望 openEuler 能做到成功,因为它本身处于 Linux 的成熟期内,又建立起了科学、规范化的社区治理模式。另外的新兴产业如物联网操作系统也存在很大机会,我本人也在持续关注 Linux 在物联网方面的应用,同时也关注了很多国内外物联网操作系统的发展动向。


上层软件一直是聚光灯下的焦点,而基础软件如操作系统却稍显“硬核”,不够“性感”。很多人认为这或许也是操作系统行业人才青黄不接的原因所在。


但陈棋德却不这么看,他认为技术在这个里面只是很小的一个因素,最重要的仍旧是市场规模的问题。


个人认为人才断档的本质原因,是国内操作系统行业市场规模太小,不足以养活太多从业人员。我之前看过 IDC 的报告,2019 年国内 Linux 市场规模只占 9 亿,国内 Linux 厂商分得 2 亿。所以从市场规模的角度看,无法支撑起一个庞大的从业人群规模。Linux 内核在国内经过了十年的快速发展,人才是足够的,但是国内 Linux 操作系统市场规模太小,导致很多操作系统人才去做了别的开发工作比如存储等等。和美国相比,国内基础软件市场占 GDP 的比重远小于美国。我觉得随着经济的发展,如果能够建设和发展处一个良性的基础软件市场,具备足够的市场规模,到时候自然会有更多年轻人加入到这个行业中来。

2020 年 12 月 26 日 11:161220

评论

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

高难度对话读书笔记—认知篇

wo是一棵草

双亲委派模型与 Flink 的类加载策略

Apache Flink

flink

99%的人都能看懂的分布式系统「补偿」机制

华为云开发者社区

分布式 高可用 系统

架构师训练营第一期-第二周课后-作业一

极客大学架构师训练营

JS中的Timing API

Lawliet

免费CA证书安装配置与背后原理浅析

陈德伟

第13周作业

线上医疗未来的发展

anyRTC开发者

ios 音视频 WebRTC RTC 安卓

极客大学 - 架构师训练营 第二周

9527

面试官,ThreadLocal 你要这么问,我就挂了!

小傅哥

Java 小傅哥 面试题 ThreadLocal 开放寻址

第二周 框架设计学习总结

钟杰

极客大学架构师训练营

软件开发的 5 条核心原则,让工作事半功倍

沉默王二

程序员 软件开发

学习Java的三个阶段(学习目标+知识点),一起努力吧!

Java架构师迁哥

TensorFlow 篇 | TensorFlow 2.x 基于 Keras 的模型构建

Alex

tensorflow keras model

LeetCode题解:83. 删除排序链表中的重复元素,递归,JavaScript,详细注释

Lee Chen

LeetCode 前端进阶训练营

大作业二:总结

zcj

HashMap源码解析

彭阿三

hashmap HashMap底层原理

聊聊布隆过滤器

海星

Java8 之 Lambda 表达式

hepingfly

Lambda java8 新特性

C++的匿名函数(lambda表达式)

良知犹存

c++ 编程开发

架构师训练营第一期-第二周课后-作业二

极客大学架构师训练营

滴滴开源AgileTC:敏捷测试用例管理平台

滴滴技术

开源项目 滴滴技术 滴滴开源

网易伏羲问鼎全球AI文创大赛:用户可零门槛生产音视频动画

核桃Eason

人工智能 AI 动画 网易

架构师 0 期 | 大数据相关技术

刁架构

架构师训练

10个常见的软件架构模式

GuoYaxiang

架构模式 软件架构 架构设计

从 LRU Cache 带你看面试的本质

码农田小齐

算法

动图演示:手撸堆栈的两种实现方法!

王磊

Java 数据结构 算法

不一样的面向对象(一)

书旅

php 面向对象

LeetCode题解:83. 删除排序链表中的重复元素,迭代,JavaScript,详细注释

Lee Chen

LeetCode 前端进阶训练营

阿里架构师不慎泄露内部互联网架构面试题库。你确定不看一下吗?

小Q

Java 学习 架构 面试 阿里

多端消息推送的设计思考

Nil

Java spring 设计模式 消息推送

一个50岁中国操作系统开发者的故事丨openEuler英雄汇-InfoQ