【AICon】探索RAG 技术在实际应用中遇到的挑战及应对策略!AICon精华内容已上线73%>>> 了解详情
写点什么

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

  • 2020-12-26
  • 本文字数:2976 字

    阅读完需:约 10 分钟

一个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:162630

评论

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

DateUtils(一个日期工具类)

android 程序员 移动开发

EventBus 发送的消息,如何做到线程切换?

android 程序员 移动开发

Flutter 中动画的使用

android 程序员 移动开发

Flutter 制作一个抽屉菜单

android 程序员 移动开发

Flutter实战1 --- 写一个天气查询的APP

android 程序员 移动开发

Flutter如何实现下拉刷新和上拉加载更多(1)

android 程序员 移动开发

esp32~MP3音频文件学习

android 程序员 移动开发

FFmpeg 之I、B、P帧的基本编码原理(三

android 程序员 移动开发

Flutter Interact 的 Flutter 1

android 程序员 移动开发

Flutter 扩展NestedScrollView (二)列表滚动同步解决

android 程序员 移动开发

Flutter 核心原理与混合开发模式

android 程序员 移动开发

Flutter-VS-React-Native-VS-Native,谁才是性能之王

android 程序员 移动开发

Flutter-vs-React-Native,谁才是跨平台应用开发的最佳利器?

android 程序员 移动开发

Flutter填坑全面总结(包括Flutter1

android 程序员 移动开发

Flutter如何实现下拉刷新和上拉加载更多

android 程序员 移动开发

Dalvik 和 ART 有什么区别?深扒 Android 虚拟机发展史,真相却出乎意料!(1)

android 程序员 移动开发

Dart _ 浅析dart中库的导入与拆分

android 程序员 移动开发

DatePickerDialog时间选择器+MVPPlugin开发插件的使用

android 程序员 移动开发

Flutter33

android 程序员 移动开发

Flutter40(1)

android 程序员 移动开发

FFmpeg-之音视频解码与音视频同步(二)

android 程序员 移动开发

Flutter-vs-React-Native,谁才是跨平台应用开发的最佳利器?(1)

android 程序员 移动开发

Flutter40

android 程序员 移动开发

Flutter动画:用Flutter来实现一个拍手动画

android 程序员 移动开发

Flutter32

android 程序员 移动开发

Flutter与Dart-入门

android 程序员 移动开发

Dalvik 和 ART 有什么区别?深扒 Android 虚拟机发展史,真相却出乎意料!

android 程序员 移动开发

Flutter - 路由管理 - 02 - Fluro

android 程序员 移动开发

Flutter 底部浮动按钮(模仿咸鱼APP底部)

android 程序员 移动开发

Flutter_bloc框架使用笔记,后续估计都不太会用了(1)

android 程序员 移动开发

Flutter_bloc框架使用笔记,后续估计都不太会用了

android 程序员 移动开发

一个50岁中国操作系统开发者的故事丨openEuler英雄汇_开源_小智_InfoQ精选文章