1024对话内核大神谢宝友

我看了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文章汇总

    专辑|程序人生

    专辑|C语言

嵌入式Linux

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/1382911.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

对话谢宝友:搞真正自研的国产操作系统,而不是伪创新

作者 | 郑丽媛 责编 | 屠敏 出品 | CSDN(ID:CSDNnews) 从国外操作系统的长期垄断到中国自主研发操作系统数十年的起落浮沉,技术自主创新独立已成为国产基础软件的主要突破口。近几年间,随着物联网时代的到来&#xff0…

Oracle数据库硬核知识

大家好🙌!我是你们的好朋友,大数据老虾😀。相遇是缘,既然来了就拎着小板凳坐下来一起唠会儿,万水千山总是情,一起学习行不行~如果在文中有所收获,请别忘了一键三连,你的鼓励&#xf…

NOIP蒟蒻组初赛攻略

系统与网络安全 计算机相关 计算机发展史 1946-1958年第一代电子管计算机,主要用于科学计算、军事研究; 1959-1964年第二代晶体管计算机,主要用于数据处理; 1965-1970年第三代集成电路计算机,主要用于工业控制、科…

Misc小总结

文章目录 Misc分类编码贝斯家族base16base32base64base62base45base58base85base91base100base换表base隐写WhiteSpace编码零宽隐写垃圾邮件加密JSfuck当铺密码百家姓Wakandan符号九宫八卦二十八星宿拼音编码编码总结 压缩包爆破伪加密CRC爆破明文攻击 PNG隐写宽高修改IDAT块隐…

ModaHub魔搭社区——Milvus 、Qdrant、Waeviate、Pinecone、ElasticSearch矢量数据库对比

资本市场上,2022年也是风起云涌的一年的,各大向量数据库公司纷纷完成了千万美元级别新一轮的融资。可以预见,2023年将会是向量数据库继续快速发展的一年,也会是这一新兴技术由发展走向成熟的一年。这里针对Milvus 、Qdrant、Waeviate、Pinecone、ElasticSearch这五个流行的…

激活函数总结(六):ReLU系列激活函数补充(RReLU、CELU、ReLU6)

激活函数总结(六):ReLU系列激活函数补充 1 引言2 激活函数2.1 RReLU激活函数2.2 CELU激活函数2.3 ReLU6 激活函数 3. 总结 1 引言 在前面的文章中已经介绍了介绍了一系列激活函数 (Sigmoid、Tanh、ReLU、Leaky ReLU、PReLU、Swish、ELU、SEL…

【C++】STL---string

string类 一、C语言中的字符串二、string类三、模拟实现 string 类0. string 类的声明1. 构造函数2. 析构函数3. 拷贝构造函数4. 赋值运算符重载5. 迭代器6. 元素访问:[] 重载7. 流插入与流提取重载8. 与容量相关的接口(1)size(2&…

EVE-NG 隐藏没有镜像的模板

eve-ng 默认情况下,在添加node时,会列出所有的模板,这样用着很不方便。 通过以下方式,可以使没有设备的模板不可见 cp /opt/unetlab/html/includes/config.php.distribution /opt/unetlab/html/includes/config.php 如下图&#…

宴会及会议座位排版软件

本人正在基于XDesignerLib软件开发了一个宴会/会议座位排版软件,这是一种很具特色的软件,它以非常形象生动的图形化界面来展示座位的排版和人员的入座信息,并能根据座位礼仪的规定自动调整显示。 本软件能使用方便快捷的拖拽操作来设置人员…

怎么让计算机锁屏之后网络不断,win10系统如何设置锁屏时不断网|win10系统锁屏断网的还原办法...

win10系统使用久了,好多网友反馈说win10系统如何设置锁屏时不断网|win10锁屏断网的问题,非常不方便。有什么办法可以永久解决win10系统如何设置锁屏时不断网|win10锁屏断网的问题,面对win10系统如何设置锁屏时不断网|win10锁屏断网的图文步骤…

虚拟服务器怎么解除锁屏,虚拟服务器怎么不设置锁屏

虚拟服务器怎么不设置锁屏 内容精选 换一换 裸金属服务器支持敏感操作保护,在控制台进行敏感操作时,需要输入一种能证明身份的凭证,身份验证通过后方可进行相关操作。为了账号安全,建议开启操作保护功能,该功能对账号以…

<optional>true</optional> 依赖不传递

为什么不包含依赖的ConditionOnClass 能成功导入? 这里涉及到依赖传递的问题 滑动验证页面https://segmentfault.com/a/1190000019266080?utm_sourcetag-newest

深信服云桌面linux客户端,深信服桌面云

VDI是一款基于互联网的云上虚拟windows桌面服务,即可在线体验大屏超清画质视频,在线一键配置升级,无需其它硬件,一个账号可满足家庭成员各类需求,深信服桌面云具有多平台、稳定性好、维护安装过程简化等特点&#xff0…

gnome桌面显示计算机,桌面应用|如何在 GNOME 3 中显示桌面

你如何在 GNOME 3 中显示桌面?GNOME是一个很棒的桌面环境但是它更加专注于在程序间切换。如果你想关闭所有运行中的窗口,仅仅显示桌面呢? 在Windows中,你可以按下WindowsD。在Ubuntu Unity中,可以用CtrlSuperD快捷键。…

计算机远程桌面在什么地方查找,远程桌面连接在哪里 来看看小编是怎么讲解的...

在win7系统中,如果想要实行远程连接,那么就必须要有到远程桌面,那么,win7系统远程桌面连接在哪里呢?现在,小编就给大家讲解一下吧。 1.使用鼠标右键“计算机”图标,选择“属性”打开 2.在打开的系统窗口右…

怎么添加计算机在桌面,怎么在桌面添加我的电脑 - 卡饭网

win7下如何在桌面添加我的电脑等图标 win7下如何在桌面添加我的电脑等图标 win7下如何在桌面添加我的电脑等图标 在安装过显卡等驱动的情况下,在桌面上单击右键,如图示选择“个性化” 紧接着选择更改桌面图标: 出现桌面图标设置的界面:进行设置保存即可。 对于win7家庭普通…

win7桌面的计算机在哪里,win7更改桌面路径,win7桌面文件在哪里

win7系统的桌面是存储在C盘中的,如果系统出现问题无法开机我们在重装系统后一切软件的图标和保存在桌面的文件都将会丢失 标题中我们提到了桌面的路径问题,系统默认桌面是保存在C盘的,那么这显然也会引起一些问题,比如你在桌面上放…

win8.1计算机开启远程,Win8.1系统远程桌面在哪里?

有时候我们可能需要控制别人的电脑或者别人控制我们的电脑来做一些操作,这时候就要用到远程桌面了。可是很多用户不知道远程桌面在哪里?其实很好找到的,下面就由小编教大家找到Win8.1远程桌面吧! 方法一: 在Win8.1桌面…

计算机远程桌面在哪里打开,电脑开启远程桌面的方法

对于使用win7系统的用户来说,并不是所有的人都懂得win7开启远程桌面的方法。我们知道开启远程桌面服务后,可以很方便的远程管理服务器或计算机。给我们的工作学习生活带来很大的便利,那么如果我们想要开启win7系统远程桌面服务的话&#xff0…

win7桌面的计算机在哪里,win7桌面小工具在哪里

很多用了win7系统这么久了,有些还不知道win7系统有一个小功能就是系统自带的win7桌面小工具,很多人都忽略win7桌面小工具在哪,win7桌面小工具可以整理很多东西,桌面小工具用途很大的,可以帮助我们很大,那么…