1024对话内核大神谢宝友
发布日期:2021-06-30 18:47:38 浏览次数:3 分类:技术文章

本文共 5529 字,大约阅读时间需要 18 分钟。

我看了CSDN的采访,感觉比较官方,不知道是不是编辑的原因把一些内容给隐藏了,所以我还是想完整的内容放出来给大家看看,这些问题,可能是很多后辈程序员非常关心的。

今天是1024节,这个数字对于写在电脑前写代码的我们是意义重大的,至于谁发明了这个节日我不知道,但是我知道,这个数字的含义很特别。

所以在次条就推荐了一个内核大会,我建议喜欢技术的同学都去看看,看看前辈们对于内核的理解,以及未来的发展方向。

就这些,祝大家今天开心,bug无涯……


问:

分享一下您最近主要在忙的一些事情?

答:

目前,我就职于阿里集团技术风险部,主要职责是负责阿里生产环境服务器稳定性,特别是基础软件,例如Linux操作系统、中间件的稳定性。同时,也会协助业务方处理一些性能调优的工作。在稳定性工作中,沉淀了一款操作系统内核诊断工具:diagnose-tools,这款工具已经在今年云栖大会正式发布,并开源到:https://github.com/alibaba/diagnose-tools。如果时间允许的话,我也会和同事/网友共同合作编写一本书来介绍这个工具。

在工作之余,我也在过去一年中,利用休息时间完成了《自研操作系统:DIM-SUM设计与实现》一书的编写,该书已经于今年7月正式出版。同时,也和网友一起翻译了《嵌入式Linux设备驱动开发》,目前已经完成初稿,预计明年初可以正式出版。

问:

您在大学时期所学的税收专业和操作系统,可谓是两个完全平行的领域,在什么样的契机下,您开始了操作系统研究之路?

答:

这完全是一个意外。

1992年,进入四川省税务学校以后,我从图书馆借阅了不少数学、物理、化学、文学方面的书籍。最终发现自己还是更喜欢理科一些,那时也开始关注计算机学科。

后来,发现自己有点喜欢上了同桌那位漂亮的女生,心里也明白她其实也有那么一点喜欢我。不过在90年代,考虑上税务学校就意味着进入税务局工作,其难度和考上清华大学是一样的。工作后,两个人必然会在不同的税务局工作,很难走到一起。终于有一天,我们约定:必须有一个人从税务系统离职。当然,这个苦差事就只能留给我了:-)

再后来,我慢慢将税务专业学习变成了副业,将重心放到计算机学科了。工作中一直想在计算机方面做一点有挑战性的事情,因此进入了操作系统领域。

故事的结局还是比较圆满的:两个人三十年来,虽有风雨,但是更多的是彩虹。

问:

操作系统这条路,对您而言,已经走了二十年的时间,在过去 20 年间,操作系统领域整体发生了怎样的变化?在您看来,目前国产操作系统行至何处?

答:

在过去20年内,操作系统领域有不少变化,但也有一些根本的东西未曾变化。

其变化主要在于:

1、linux异军突起

2、Android成为手机操作系统的领先者

3、物联网操作系统热度提升

但是,实事求是的说,有一个根本的不变之处在于:我国仍然处于操作系统研发领域的落后状态。40年来,不少仁人志土投入到操作系统领域,政府和企业也投入不菲。现状则可以简单的总结为:道路是曲折的,前途则未见光明。

这是由于操作系统研发难度决定的。与工业制造不同,操作系统完全不能靠增加人手的方法,通过大干快上的方式,寄希望于突然蹦出一个完美的操作系统。而是要靠长期的积累,以一种“板凳一坐十年冷”的心态潜心研究才能出成果。

当然,除了美国外,确实也没有其他某个国家研发出真正自研的操作系统。真可谓:操作系统难,难于上青天!

问:

为什么会想到要自研一款操作系统?DIM-SUM 操作系统旨在帮助业界或开发者解决什么样的痛点难题?

答:

最初,我只是想在计算机领域找一件有挑战性的事情。20    多年前,大家都说中国人不可能搞得出操作系统,因此觉得这件事情还有那么一点挑战性,因此也就想研究一下这方面的东西。

现在看来,国内确实也需要自研操作系统。这个领域的痛点有:

1、Linux操作系统领域人才匮乏。作为在Linux操作系统稳定性有十多年一线工作经验的老兵,我深知业界的痛点。遇到Linux的疑难故障,一般是到开源社区高版本内核中搜索补丁,看看社区是否已经解决。如果遇到开源社区也没有解决的故障,那么一般是考虑规避措施。真正能够将Linux源代码分析透彻,并能给出完美解决方案的人才,实属凤毛麟角。从另一个角度来看,国内还不能深入到Linux内核社区,独立研发Linux核心模块。假如某一天,Linux社区的维护人员退休了,我们是否还能游刃有余的将Linux维护好。这绝非危言耸听,而是一个现实紧迫性的问题。Linux社区的领袖人物也在呼吁重视人才断层的问题。

2、Linux操作系统用于核心关键领域的安全性问题。在大数据时代,任何普通个人的信息隐私都不再只是个体问题,这会影响到整个社会的安全。同时,系统中存在的CVE安全漏洞也不少。我曾经在工作中遇到一个安全漏洞,这个漏洞存在于Linux网络协议栈中,在多线程中访问同一个Socket,并且Socket启用了IP选项的时候可能触发。最令人担心的是,这样的安全漏洞在Linux操作系统中存在了20年,竟然没有被全世界的研发人员和安全专家发现!

3、Linux操作系统从开放走向封闭的可能性是存在的。10年前,我就认为Android会走向封闭,或者说限制我们的使用。这在当时被认为是无稽之谈,然而今天的现实是:由于国内在Android上面投入过多的资源,已经形成了强大的市场态势。而国内著名的手机厂商已经因此受到市场限制。同样的,10年以后,Linux也有可能走向封闭。按照今天的做法,10年后的情况不容乐观。

因此,从未雨绸缪的角度来说,我们需要开始搞真正自研的操作系统,而不能搞伪创新、边缘优化、单点突破。从本质上来说,这些伪创新、边缘优化、单点突破是一种自欺欺人的做法。

问:

DIM-SUM 操作系统将主要覆盖哪些应用领域或场景?

答:

这个问题实际上已经在《自研操作系统:DIM-SUM设计与实现》作者序以及正文中有所描述。

概括的说,DIM-SUM操作系统希望实现一款类似于Linux的操作系统。我在去年OS2ATC大会上也曾经做过一次《做中国的Linux,做中国的Linus》的演讲。也就是说,DIM-SUM可能适用的领域包括:服务器操作系统、个人电脑/桌面操作系统、嵌入式操作系统(如工业控制)。

问:

开源对于 DIM-SUM 操作系统的发展起到了什么样的作用?

答:

非常感谢开源软件运动,特别是感谢Linux开源社区。

以练习毛笔书法为例。真正的书家都明白一个简单的道理:要练习好毛笔字,首先是练习一些握笔姿势、基本笔画方面的基本功,然后是用薄纸蒙在原作上面摹写,其次是照着原作临写,最后才是体会原作的整体布局、形意、结构、笔势,并加以创新,自成一派。

可以毫不夸张的说,开源软件运动给我们提供了很好的临摹范本,可以大大降低自研操作系统的难度,提升自研操作系统的稳定性和性能。

问:

DIM-SUM 操作系统目前进度如何?针对其下一步的研发或落地发展,有着什么样的愿景或规划?

答:

由于忙于工作和出版书籍,我今年很少为DIM-SUM开发新功能。有十来个网友提交了一些边缘补丁。

下个月完成《嵌入式Linux设备驱动开发》的审稿工作后,我会抽出业余时间开发一些新功能,重点是支持用户态应用程序。当然,这个事情应该不会太顺利,毕竟在房价重负之下,大家还是需要养家糊口。

我不太希望将DIM-SUM做成某一家大公司私有的操作系统,也不希望将它作为个人谋私的工具。

希望它能为社会真正做出一些贡献。最理想的方式,是成立一个独立的开源基金会,得到政府/业界的支持,集中10位国内顶尖高手,花10年时间进行研发。预估在这样的模式下,每年的投入不会超过1000万元,10年总投资不超过1亿元人民币。在这方面有一些具体的想法,也在一些闭门会议中有一些阐述,以后我会专文描述这些想法。

退一步讲,即使没有独立的开源基金会,我也会利用业余时间开发这个操作系统。

几乎可以确定的说,不会加入某个公司来发展这个操作系统。

问:

据悉,您此前在内核代码注释中耕耘多年,这为自研 DIM-SUM 操作系统带来了哪些帮助?

答:

还是以练习毛笔书法来做比喻:以前对内核代码的注释工作,更象是第一步工作,也就是练习一些握笔姿势、基本笔画方面的基本功。

顺便也自嘲一下,目前的DIM-SUM仅仅是对Linux操作系统的临摹,离真正成熟的自研操作系统还有很长的距离。不过古语说:千里之行,积于跬步。总有一天,我们能行于千里之外!

问:

2018年DIM-SUM第一个版本:HOT-POT操作系统已诞生,在此过程中,令您印象最为深刻的挑战是什么?又是如何攻克的?

答:

这个版本还很不成熟,我个人对此并不满意。然而,即使是这样一个不太成熟的版本,也会遇到挑战。

最大的挑战来自于文件系统,包括lext3文件系统、虚拟文件系统、设备文件系统、内存文件系统、块设备子模块、块设备驱动。这也是Linux遇到的挑战。记得linus曾经说过,大牛们在linux中实现文件系统的时候,也有希望放弃的时刻。

得益于对linux内核的详细分析和注释,我在开发DIM-SUM的时候,想要退缩的心情应该没有linus那么强烈,毕竟前辈们已经给我们打下了很好的基础,也给了我们成功的信心。

问:

在你技术成长过程中,是否有着对你影响较大的某位人、某些书、某些网站/文章或其他,为什么?

答:

在20多年的职业生涯中,我遇到两位技术方面的牛人,也是工作中的合作伙伴:

1、易语言的创始人吴涛。他也被评为“影响中国软件开发的20人”之一。

2、阿里巴巴传奇程序员,阿里合伙人多隆大神。他的技术领悟力和敏感度非常高。

-- 对我影响最大的两本书是:

1、陈莉君老师翻译的《深入理解Linux内核》。这本书在Linux内核入门阶段对我影响很大。

2、Paul E. Mckenney的《Is Parallel Programming Hard, And, If So, What Can You Do About It?》,这本书已经由我和鲁阳翻译为《深入理解并行编程》。这本书很难,但是对研发操作系统至关重要。也许,很难找到10个真正读懂这本书的人呢?

问:

对于想要跨行到 IT 的从业者,基于操作系统入门方面,可否分享一下您的经验?

答:

6年前,在CSDN的专访(https://www.csdn.net/article/2014-04-08/2819178-Interview-about-linux-kernel-expert-Xiebaoyou)中,我也谈到这个问题。现在想来,当年的回答仍然是有效的。推荐的几本书仍然值得阅读,即使这些书的内核版本老一点也没有关系。如果说需要补充一点东西的话,我觉得有这两点感悟:

1、阅读的时候,心无旁骛很重要。很多著名的将领都有做放牛娃的经历,这很容易进入一种无聊的状态,当然也很容易进入一种物我两忘的专注状态。这也有点象禅宗所说的入定状态。据说乔布斯很喜欢这样的状态,它能使人理解到其他人所不能理解到的东西,使难题迎刃而解,也许还能使人领悟到生命的价值,改变自己的人生目标。

2、聪明人下笨功夫,只有傻瓜才耍小聪明。在操作系统技术学习方面,尤其是这样。

问:

您在一线写代码已多年,面向程序员界的“35 岁危机”问题, 您怎么看?对于一线的程序员而言,有人说,要紧随技术的潮流,实时对自身技能不断更迭,才能不落后;也有人说,打下坚固的技术基础才是王道,面对日新月异且层出不穷的前沿技术,你对时下的开发者有着什么样的建议?

答:

保持不断学习的能力,就不会面临“35岁危机”。

6年前的专访中,也谈到了这个问题,那个时候我已经超过35岁了,没有感受到什么危机,因此在专访中说“也许,我们可以把这些35岁的故事当成谣言!”

以我自己为例吧,35岁的时候收入还不是特别高,实际上35岁以后不但没有遇到危机,收入反而上涨得很厉害。也许35岁的谣言是大公司HR说出来吓大家的。当然,这也并非坏事,我想HR的目的是为了保持组织的活力,避免那些职场老油条上班摸鱼。对于那些持续学习的员工,保持激情的员工,不偷懒的员工,哪个HR会舍得对你动手呢?

我已经超过40岁了,在收入迅猛增长的同时,也有公司以翻倍的收入来挖一挖,我也比较的有惰性,不愿意为2倍收入而跳槽呢:-)

大家说,35岁危机这个事情,是不是一个谣言?该不该转它500次?

问:

发展国产操作系统,目前最为严峻的挑战或亟需解决的问题是什么?如果要推动中国开源操作系统或者开源生态发展的话,您最希望我们大家一起,推动什么样的共识和行动?

答:

最严峻的挑战莫过于:

1、能研发国产操作系统的人才很少。这里的人才不是指Linux开发人员,而是真正能够设计操作系统,实现操作系统核心模块开发的人才。

2、自研操作系统投入大,失败风险高。不论是研究机构还是企业,都不太容易下决心去做这样的事情。

3、有免费开源的Linux可用,缺少自研操作系统的动力。

我最希望推动的共识和行动是:

集中力量,研发真正自研的操作系统。在Linux被限制的情况下,仍然有替代方案。

问:

最后,我们来个接龙,这次 1024 程序员节,有许多操作系统的老朋友共赴长沙,你最想问哪位老朋友什么问题?

答:

由于备战双十一的原因,很遗憾不能现场参加1024程序员节。希望向陈老师问个问题:能做到退而不休吗?

#推荐阅读:

    

    

    

嵌入式Linux

微信扫描二维码,关注我的公众号 

转载地址:https://linus.blog.csdn.net/article/details/109268768 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:1024,第 15 届「中国内核开发者大会」 参会指南(议程全剧透)
下一篇:搞懂进程组、会话、控制终端关系,才能明白守护进程干嘛的?

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.219.124.196]2024年04月18日 16时30分00秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章