独家对话谢宝友:做一款类似于 Linux 的国产操作系统
从国外操作系统的长期垄断到中国自主研发操作系统数十年的起落浮沉,技术自主创新独立已成为国产基础软件的主要突破口。近几年间,随着物联网时代的到来,以 Linux 为主要架构的操作系统乘开源东风,迎来了“爆发”期。
然而在国际以科技为基础的竞争愈发激烈的当下,开源的 Android 已受到一定影响,而下一步,正如同 DIM-SUM 操作系统创始人谢宝友所担忧的,「如果某一天,我们不能免费使用基于 Linux 的这些开源操作系统,我们是否有替代操作系统可用?」
带着种种思考,CSDN 「人物志」栏目与 DIM-SUM 操作系统创始人、《自研操作系统:DIM-SUM设计与实现》作者谢宝友进行了独家对话,探寻类似于 Linux 的 DIM-SUM 操作系统自研之路,论“做中国的 Linux,做中国的 Linus”的机与遇。
重要观点速览:
操作系统的研发要靠长期的积累,以一种“板凳一坐十年冷”的心态潜心研究才能出成果。
从未雨绸缪的角度来说,我们需要开始搞真正自研的操作系统,而不能自欺欺人地搞伪创新、边缘优化、单点突破。
开源软件运动给我们提供了很好的临摹范本,可以大大降低自研操作系统的难度,提升自研操作系统的稳定性和性能。
我不太希望将 DIM-SUM 做成某一家大公司的私有操作系统,也不希望将它作为个人谋私的工具。我希望它能为社会真正做出一些贡献。
目前的 DIM-SUM 仅仅是对 Linux 操作系统的临摹,离真正成熟的自研操作系统还有很长的距离。
保持不断学习的能力,就不会面临“35 岁危机”。
我最希望推动的共识和行动是:集中力量,研发真正自研的操作系统。在 Linux 被限制的情况下,仍然有替代方案。
以下为 CSDN 与谢宝友对话完整版(CSDN 在不改变原意基础上,稍作编辑):
始于兴趣,久于爱情
CSDN:您最近主要在忙哪些事情?
谢宝友:目前,我就职于阿里集团技术风险部,主要职责是负责阿里生产环境服务器稳定性,特别是基础软件。在稳定性工作中,沉淀了一款操作系统内核诊断工具:diagnose-tools,这款工具已经在今年云栖大会正式发布,并开源到:https://github.com/alibaba/diagnose-tools。如果时间允许,未来我会和同事/网友共同合作编写一本书来介绍这个工具。
在工作之余,我也在过去一年中,利用休息时间完成了《自研操作系统:DIM-SUM设计与实现》一书的编写,该书已经于今年 7 月正式出版。同时,也和网友共同翻译了《嵌入式Linux设备驱动开发》。
CSDN:您曾是税收专业出身,为何会走上操作系统研发之路?
谢宝友:这完全是一个意外。
1992 年,进入四川省税务学校后,我在图书馆借阅了不少数学、物理、化学、文学方面的书籍,发现还是更喜欢理科一些,也开始了对计算机学科的关注。
在这期间,我与同是税务专业的爱人相识相知。不过,考虑到工作后更为长远的发展,最终我选择了离开税务系统,并将重心逐渐转移到计算机学科。经过一段时间的工作,我一直想要在计算机方面做一些有挑战性的事情,因此进入了操作系统领域。
故事的结局还是圆满的:我与爱人三十年来,虽有风雨,但是更多的是彩虹。
操作系统难,难于上青天!
CSDN:操作系统这条路,对您而言,已经走了二十年的时间,在过去 20 年间,操作系统领域整体发生了怎样的变化?
谢宝友:在过去20年内,操作系统领域有不少变化,但也有一些根本的东西未曾变化。变化主要在于:
Linux 异军突起;
Android 成为手机操作系统的领先者;
物联网操作系统热度提升。
但是,实事求是地说,有一个根本的不变之处在于:我国仍然处于操作系统研发领域的早期。40 年来,不少仁人志土投入到操作系统领域,但现状可以简单的总结为:道路是曲折的,前途光明但任重而道远。
这是由于操作系统研发难度决定的。与工业制造不同,操作系统完全不能靠增加人手的方法,通过大干快上的方式,寄希望于突然出现一个完美的操作系统。而是要靠长期的积累,以一种“板凳一坐十年冷”的心态潜心研究才能出成果。
目前,除了美国外,确实也没有其他某个国家研发出真正自研的操作系统。真可谓:操作系统难,难于上青天!
CSDN:为什么会想到要自研一款操作系统?
谢宝友:最初,我只是想在计算机领域找一件有挑战性的事情。20 多年前,大家都说中国人不可能做出操作系统,我觉得这富有挑战性,因此开始了研究。
现在看来,国内确实也需要自研操作系统。这个领域的痛点有:
Linux 操作系统领域人才匮乏。真正能够将 Linux 源代码分析透彻,并能就 Linux 的疑难故障给出完美解决方案的人才,实属凤毛麟角。从另一个角度来看,国内还不能深入到 Linux 内核社区,独立研发 Linux 核心模块。
Linux 操作系统用于核心关键领域的安全性问题。在大数据时代,任何普通个人的信息隐私都不再只是个体问题,这会影响到整个社会的安全。同时,系统中存在的 CVE 安全漏洞也不少。有些 CVE 安全漏洞在 Linux 中存在了 20 年,竟然没有被全球开发者和安全专家发现。
Linux 操作系统从开放走向封闭的可能性是存在的。10年前,我认为 Android 会走向封闭的言论在当时被认为是无稽之谈,而现在却噩梦成真。同样,10 年以后,Linux 也有可能走向封闭。因此,从未雨绸缪的角度来说,我们需要开始搞真正自研的操作系统,而不能自欺欺人地搞伪创新、边缘优化、单点突破。
CSDN:在此基础上,发展国产操作系统,目前最为严峻的挑战或亟需解决的问题是什么?如果要推动中国开源操作系统或者开源生态发展的话,您最希望我们一起推动什么样的共识和行动?
谢宝友:基于以上,我认为最严峻的挑战莫过于以下三点:
能研发国产操作系统的人才很少。这里的人才不是指 Linux 开发者,而是真正能够设计操作系统,实现操作系统核心模块开发的人才。
自研操作系统投入大,失败风险高。不论是研究机构还是企业,都不太容易下决心去做这样的事情。
有免费开源的 Linux 可用,缺少自研操作系统的动力。
我最希望推动的共识和行动是:集中力量,研发真正自研的操作系统。在某一天 Linux 被限制的情况下,仍然有替代方案。
DIM-SUM 操作系统不会私有,将属于社会
CSDN:DIM-SUM 是什么样的操作系统?
谢宝友:概括地说,DIM-SUM 操作系统希望实现一款类似于 Linux 的操作系统。我在去年 OS2ATC 大会(开源操作系统年度技术会议)上也曾经做过一次《做中国的 Linux,做中国的 Linus》的演讲。也就是说,DIM-SUM 可能适用的领域包括:服务器操作系统、个人电脑/桌面操作系统、嵌入式操作系统(如工业控制)。
CSDN:开源对于 DIM-SUM 操作系统的发展起到了什么样的作用?
谢宝友:非常感谢开源软件运动,特别是感谢 Linux 开源社区。
以练习毛笔书法为例。真正的书家都明白一个简单的道理:要练习好毛笔字,首先是练习一些握笔姿势、基本笔画方面的基本功,然后是用薄纸蒙在原作上面摹写,其次是照着原作临写,最后才是体会原作的整体布局、形意、结构、笔势,并加以创新,自成一派。
可以毫不夸张的说,开源软件运动给我们提供了很好的临摹范本,可以大大降低自研操作系统的难度,提升自研操作系统的稳定性和性能。
CSDN:DIM-SUM 操作系统目前进度如何?针对其下一步的研发或落地发展,有着什么样的愿景或规划?
谢宝友:由于忙于工作和出版书籍,我今年很少为 DIM-SUM 开发新功能,只有十来个网友提交了一些边缘补丁。下一步,我会抽出业余时间开发一些新功能,重点是支持用户态应用程序。
我不太希望将 DIM-SUM 做成某一家大公司的私有操作系统,也不希望将它作为个人谋私的工具,我希望它能为社会真正做出一些贡献。所以,我几乎可以确定的说,我不会加入某个公司来发展这个操作系统。
我认为最理想的方式,是成立一个独立的开源基金会,得到政府/业界的支持,集中 10 位国内顶尖高手,花 10 年时间进行研发。预估在这样的模式下,每年的投入不会超过 1000 万元,10 年总投资不超过 1 亿元人民币。关于这方面的具体想法,我以后会专文描述。退一步讲,即使没有独立的开源基金会,我也会利用业余时间开发这个操作系统。
CSDN:据悉,您此前在内核代码注释中耕耘多年,这为自研 DIM-SUM 操作系统带来了哪些帮助?
谢宝友:还是以上述的练习毛笔书法来做比喻:以前对内核代码的注释工作,更像是第一步工作,也就是练习一些握笔姿势、基本笔画方面的基本功。
顺便也自嘲一下,目前的 DIM-SUM 仅仅是对 Linux 操作系统的临摹,离真正成熟的自研操作系统还有很长的距离。不过古语说:千里之行,积于跬步。总有一天,我们能行于千里之外!
CSDN:2018 年 DIM-SUM 第一个版本:HOT-POT 操作系统已诞生,在此过程中,令您印象最为深刻的挑战是什么?又是如何攻克的?
谢宝友:这个版本很不成熟,我个人对此并不满意。然而,即使是这样一个不太成熟的版本,也遇到了不少挑战。
最大的挑战来自于文件系统,包括 lext3 文件系统、虚拟文件系统、设备文件系统、内存文件系统、块设备子模块、块设备驱动。这也是 Linux 曾遇到的挑战。
记得 Linus 曾经说过,技术大牛们在 Linux 中实现文件系统时,也有想过放弃的时刻。不过,得益于对 Linux 内核的详细分析和注释,我在开发 DIM-SUM 时,想要退缩的心情应该没有 Linus 那么强烈,毕竟前辈们已经给我们打下了很好的基础,也给了我们成功的信心。
操作系统的技术升级之路
CSDN:在你技术成长过程中,是否有着对你影响较大的某位人、某些书、某些网站/文章或其他,为什么?
谢宝友:在 20 多年的职业生涯中,我遇到两位技术方面的牛人,也是工作中的合作伙伴:
1、易语言的创始人吴涛。他也被评为“影响中国软件开发的 20 人”之一。
2、阿里巴巴传奇程序员、阿里合伙人多隆大神。他的技术领悟力和敏感度非常高。
对我影响最大的两本书是:
1、陈莉君老师翻译的《深入理解 Linux 内核》。这本书在 Linux 内核入门阶段对我影响很大。
2、Paul E. Mckenney 的 《Is Parallel Programming Hard, And, If So, What Can You Do About It?》,这本书已经由我和鲁阳翻译为《深入理解并行编程》。这本书很难,但是对研发操作系统至关重要。
CSDN:对于想要跨行到 IT 的从业者,基于操作系统入门方面,可否分享一下您的经验?
谢宝友:六年前,我在 CSDN 的专访(https://www.csdn.net/article/2014-04-08/2819178-Interview-about-linux-kernel-expert-Xiebaoyou)中,曾谈到过这个问题。现在想来,当年的回答仍然有效。推荐的几本书仍然值得阅读,即使这些书的内核版本老一点也没有关系。如果说需要补充一点东西的话,我觉得有这两点感悟:
1、阅读的时候,心无旁骛很重要。
2、聪明人下笨功夫,只有傻瓜才耍小聪明。在操作系统技术学习方面,尤其是这样。
CSDN:您在一线写代码已多年,面向程序员界的“35 岁危机”问题, 您怎么看?
谢宝友:保持不断学习的能力,就不会面临“35岁危机”。也许,我们可以把这些 35 岁的故事当成谣言!
以我自己为例,35 岁的时候收入还不是特别高,而 35 岁之后,不但没有遇到危机,收入反而上涨了许多。也许 35 岁危机只是大公司 HR 放出的谣言。
当然,这也并非坏事,我想 HR 是想借此保持组织的活力,避免一些员工思想怠惰。对于那些持续学习的员工,保持激情的员工,不偷懒的员工,哪个 HR 会舍得对你动手呢?
Scan QR code with WeChat