我们本次开源专访的对象是一位认真钻研技术的工程师,谢宝友,他目前任职中兴通讯操作系统团队,他个人在业余时间前后共花费了6年时间完成了对Linux内核Linux 2.6.12内核源代码注释工作。

我们本次开源专访的对象是一位认真钻研技术的工程师,谢宝友,目前任职中兴通讯操作系统团队。他个人在业余时间前后共花费了6年时间完成了对Linux内核Linux 2.6.12内核源代码注释工作。近一个月之前,谢宝友( @kernel-hacker)发布的一条关于Linux 2.6.12内核源代码注释文件的微博,被转载近200次。该微博为大家介绍了包括内存、调度、文件系统等模块在内的Linux 2.6.12内核源代码注释文件,目前该内核源码注释已经托管到CSDN CODE。

CSDN CODE地址: https://code.csdn.net/chenyu105/linux_kernel_2-6-11-12_comment。

谢宝友(右二)和同事们的合影

下面是采访内容整理。

CSDN:先请您对自己和您的工作做下介绍。

谢宝友:我是一名老中专,1996年毕业于四川省税务学校税收专业,现供职于中兴通讯操作系统团队,对操作系统内核有较强的兴趣,专职于操作系统内核已经有六年时间。

在日常工作中,主要工作是对Linux内核进行分析,解决遇到的标准内核故障;并向项目组提出应用程序优化措施。当然,团队有时也会抓壮丁,去帮其他项目做一些虚拟化、Android相关的工作。我现在还没有达到“内核菜鸟”的水平,因此也就没有将关注的领域扩展到其他方面。在工作中,自己也从头编写过一款自主知识产权的嵌入式操作系统。

CSDN:您是从何时开始做开发相关工作?现在还写代码吗?

谢宝友 :从1999年开始,我就拥有了第一份正式的“程序员”工作。十五年来,从来没有离开过代码,算是一个标准的程序员吧。有几次转管理岗位的机会,我婉言谢绝了。林语堂老先生在《吾国与吾民》这本书中提到:国人最大的特点在于“死”要面子。在技术领域,这实在没有必要。

CSDN:内核代码注释,您花了多长时间,又是如何完成的?其中有什么特别有趣或难忘的经历?

谢宝友:2008年,出于对操作系统技术的爱好,我进入中兴通讯操作系统团队并开始接触Linux内核。在我的坚持下,部门领导把我分配到了内核组。从此,开始了长达6年的内核代码注释过程。其中,前三年是收获最大的一段时期,这期间看了《深入理解LINUX内核》、《深入理解LINUX网络内幕》、《深入理解LINUX虚拟内存管理》、《LINUX设备驱动程序》这几本经典内核书籍,共做了2200页、87万字的word笔记

在学习内核的过程中,最难忘的经历是刚开始看《深入理解LINUX内核》这本书时,真有一种雾里看花的感觉。足足一个月,才将《中断和同步》看完,这真是一种折磨。但是就在某一天,团队遇到一个非常诡异的故障,已经查了两个月,部门领导知道我当时正在看内核的书籍,于是报着试一试的心态让我加入了攻关团队。没想到,故障真被解决了!其原因竟然还真的与中断处理流程有关(☺)。不由得让人感叹:天下没有让人白读的书。

CSDN:您最初为何要着手做Linux内核源码注释这项工作?是什么让您坚持了这么久来完成这项工作?

谢宝友:兴趣是最好的老师,乔帮主曾经说过:随心所想。如果我们真正喜欢某一件事情,就追随自己内心真实的想法,实践它。在智商、情商、逆商这三者中,最重要的是逆商。一旦决定做某件事情,就认真的做下去。

至于如何坚持下来,当然,最初做Linux内核注释工作不仅仅是出于对内核的爱好,也是工作的需要。后来发现,将注释的代码和学习笔记共享给同事和朋友,是一件令人快乐的事情。用“赠人玫瑰,手有余香”来形容再合适不过了。同时,能够将个人兴趣与工作结合起来,对我们每个人,对我们所在的企业来说,都是一件值得高兴的事情。

内核学习有一个非常陡峭的学习曲线。一旦越过了某个临界点,您就能发现不一样的风景,想不坚持下去都不容易。非常庆幸的是,在学习半年后,我找到了这样的临界点,在学习和工作中,都找到了一种快乐的感觉。

这项工作主要是利用业余时间完成的。几年来,每天晚上一般会抽出两到三个小时来看书、读代码。可惜的是,在工作三年后,随后工作任务越来越重,最近三年的时间不能保证每天抽三个小时来做这件事情了。

CSDN:您是独自完成的这项工作吗?有没有小伙伴陪您一起做?

谢宝友:目前已经公布的针对Linux内核2.6.11.12的代码注释,以及今年内会继续公布的针对2.6.24版本的代码注释,主要是个人完成的。公布出来的目的,就是想更多的朋友参与进来。

这两年还翻译了《深入理解并行编程》一书,这是与鲁阳、陈渝两位兄弟一起合作完成的。

CSDN:您在开源方面还有哪些参与?

谢宝友:我是中国开源软件推进联盟专家委员会的成员。中国开源软件推进联盟是在工信部指导下,由业界著名企业合作成立的非盈利性组织。个人接触开源软件就是从进入中兴通讯操作系统团队开始的。

CSDN:您如何评价中国目前的开源环境?您认为中国开源若要取得良好发展还需要在哪些方面做出努力?

谢宝友:在中国,无论是企业还是个人,生存压力都不小,国内开源环境还算不上理想,这和国情分不开。中国开源若要取得良好发展,离不开企业和个人的努力。对个人来说,参与开源能够提升个人技能,扩大个人在业界的影响。实际上,我所了解到的国内一些年薪百万左右的大牛,正是凭借自己在开源社区的贡献才被猎头关注到的。

因此,个人认为首先需要企业和个人得到发展,减轻生存压力;其次,需要企业和个人转变开源观念,这是中国开源取得良好发展的两个重要因素。

CSDN:程序员常自我调侃为“码农”,这个身份带给人很多的痛苦和欢乐,您如何看待这一职业身份?

谢宝友:这个问题应该怎么回答呢?在刚进入这一行时,那时“码农”还不是“码农”,叫“程序员”。在成都,每个月可以拿800至2000的高薪。在北京,则可以拿到4000左右,这足足能够在知春路买一个多平方的房子了。不知道从哪一天起,“程序员”变成“码农”了,甚至听说变成“码灰”了:)

但是请听我讲一个故事。2000年的时候,我的老板曾经说:“现在的软件行业,看起来还不错。但是要不了两年,就会成为夕阳产业,甚至雪崩,和房地产一个结局!”。

业界也比较流行30岁、35岁程序员的说法,但是我也听说:目前世界上还有这样一个程序员,他做了30年软件,至今还在做磁带机!IBM的paul,就是那个维护Linux RCU(Read-Copy Update)的大牛,他也做了31年软件了。前两年他还在感叹很难找到一个完整的半天时间,舒舒服服的写点代码。

再举一个国内的例子吧。我最好的朋友,吴涛先生,那个发明易语言的家伙,他91年就在Z80上编写软件了,这个月我还和他讨论过代码方面的事情。

也许,我们可以把这些35岁的故事当成谣言!

谢宝友:会说话的Linux内核相关推荐

  1. 谢宝友:深入理解RCU之六:分级RCU基础

    本文简介 本文介绍Linux 2.6.32-rc7中,分级RCU的基础. 这不是一篇单独的文章,这是<谢宝友:深入理解Linux RCU>系列的第6篇.关注Linuxer公众号看前五篇: ...

  2. linux 生成内核patch,谢宝友: 手把手教你给Linux内核发patch

    本文简介 本文一步一步的演示如何生成一个简单Linux内核补丁,并提交给Linux社区.用以展示向社区提交补丁的步骤.本文英文名称:<Submit Patches Step by Step> ...

  3. 独家对话谢宝友:做一款类似于 Linux 的国产操作系统 | 人物志

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

  4. 独家对话谢宝友:做一款类似于 Linux 的国产操作系统 | 人物志

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

  5. linux下代码写错了怎么更改_谢宝友:手把手教你给Linux内核发patch

    本文简介 本文一步一步的演示如何生成一个简单Linux内核补丁,并提交给Linux社区.用以展示向社区提交补丁的步骤.本文英文名称:<Submit Patches Step by Step> ...

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

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

  7. 1024对话内核大神谢宝友

    我看了CSDN的采访,感觉比较官方,不知道是不是编辑的原因把一些内容给隐藏了,所以我还是想完整的内容放出来给大家看看,这些问题,可能是很多后辈程序员非常关心的. 今天是1024节,这个数字对于写在电脑 ...

  8. linux内核内存屏障,从硬件引申出内存屏障,带你深入了解Linux内核RCU

    本文简介 本文从硬件的角度引申出内存屏障,这不是内存屏障的详尽手册,但是相关知识对于理解RCU有所帮助.这不是一篇单独的文章,这是<谢宝友:深入理解Linux RCU>系列的第2篇,前序文 ...

  9. linux内核内存映射实验报告,动手实践-Linux内存映射基础(上)

    Linux内核分析与应用 西安邮电大学(陈莉君) 在庞大的Linux内核源代码学习中,如何抓住主要线索和思路,如何让所学能够切实地应用起来,本课程主讲以自己20年来对Linux内核的研究和教学为基础, ...

最新文章

  1. 初学图论-Bellman-Ford单源最短路径算法
  2. BCH与BCE共享比特币之名
  3. linux内核网络初始化,Linux内核--网络栈实现分析
  4. VS2017一次性运行多个项目的方法
  5. js 获取今天以及前一周/前20天时间
  6. 局部特征(local feature)
  7. PHP将json或对象转成数组
  8. Spring AOP编程-传统基于aspectJ切点AOP开发
  9. 网络摄象机常用传输协议
  10. 学习笔记02:直播串讲——3/22
  11. SELECT * FROM user WHERE username LIKE #{aaa}与SELECT * FROM user WHERE username LIKE '%${value}%'
  12. maven 可执行 jar_Maven提示:有关可执行jar的所有信息
  13. 使用百度UMeditor富文本编辑器,修改自定义图片上传,修改源码
  14. 全面解读:戴尔”未来就绪的存储保障计划” —— SC系列存储60天无理由退货的影响与意义...
  15. 嵌入式linux ntpd命令,嵌入式Linux网络编程之:实验内容——NTP协议实现
  16. 网管学习日记-MPLS-LDP协议配置
  17. 什么是 P = NP 问题?
  18. (48)性能测试——聚合报告
  19. Java自定义模板设计
  20. 下一代云计算模式:Docker正掀起个性化商业革命

热门文章

  1. 代码补全_补全股票代码位数的一百种姿势
  2. 导致网站服务器负担过重,利用httpd.ini实现图片和文件的防盗链
  3. 三体与计算机科学与技术,《三体》作者刘慈欣:AlphaGo赢了,但人工智能不可能强大到没有弱点...
  4. java bean参数清空_Java互联网架构-Spring IOC底层源码分析
  5. 在Windows 10上安装TensorFlow 2.2.0 RC4版
  6. 安卓学习笔记41:全球定位系统
  7. 安卓讲课笔记(9):列表视图
  8. 【BZOJ1079】【codevs2428】着色方案,DP
  9. sdoi2017 r1 不堪回首
  10. springsecurity文档_今天学了springsecurity