我们本次开源专访的对象是一位认真钻研技术的工程师,谢宝友,他目前任职中兴通讯操作系统团队,他个人在业余时间前后共花费了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. linux 内核大牛-谢宝友

    http://blog.chinaunix.net/uid/25845340.html 谢宝友:毕业于四川省税务学校税收专业,现供职于中兴通讯操作系统团队,对操作系统内核有较强的兴趣.专职于操作系统内 ...

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

    本文系转载,著作权归作者所有. 商业转载请联系作者获得授权,非商业转载请注明出处. 作者: 谢宝友 来源: 微信公众号 linux阅码场 (id: linuxdev) 本文简介       本文一步一 ...

  3. 谢宝友 LINUX 内核专家-----LINUX内核注释

    http://download.csdn.net/user/xiebaoyou http://blog.chinaunix.net/uid/25845340.html

  4. 宋宝华: Linux内核编程广泛使用的前向声明(Forward Declaration)

    本文系转载,著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 作者:宋宝华 来源: 微信公众号linux阅码场(id: linuxdev) 前向声明 编程定律 先强调一点:在一切可 ...

  5. Linux内核探索之路——关于方法

    转载自:http://blog.chinaunix.net/uid-20608849-id-3014502.html   Linux内核实践之路 -给那些想从Linux内核找点乐趣的人 一个不能回避的 ...

  6. linux 内核分析工具 Dtrace、SystemTap、火焰图、crash等

    << System语言详解 >> 关于 SystemTap 的书. 我们在分析各种系统异常和故障的时候,通常会用到 pstack(jstack) /pldd/ lsof/ tc ...

  7. [转]透过 Linux 内核看无锁编程

    非阻塞型同步 (Non-blocking Synchronization) 简介 如何正确有效的保护共享数据是编写并行程序必须面临的一个难题,通常的手段就是同步.同步可分为阻塞型同步(Blocking ...

  8. 如何参与Linux内核开发(转)

    本文来源于linux内核代码的Document文件夹下的Hoto文件.Chinese translated version of Documentation/HOWTO If you have any ...

  9. 如何参与linux 内核开发

    如果想评论或更新本文的内容,请直接联系原文档的维护者.如果你使用英文 交流有困难的话,也可以向中文版维护者求助.如果本翻译更新不及时或者翻 译存在问题,请联系中文版维护者.   英文版维护者: Gre ...

随机推荐

  1. centos 7 安装 rvm 超时

    关于 rvm  建议没有变成基础的朋友不要选择这种方式安装   不然很有可能到 对ruby很感兴趣想学到放弃的 因为ruby实在是太麻烦 太麻烦  你会遇到各种各样的问题   我之前安装过一次rvm ...

  2. android流量统计

    研究过一段时间的android流量统计发个自己的总结帖 1 android有一个TrafficStats类可以直接获取 总接受流量TrafficStats.getTotalRxBytes(), 总发送 ...

  3. 8张图理解Java---importnew---programcreek

    http://www.importnew.com/11725.html https://www.programcreek.com/2013/09/top-8-diagrams-for-understa ...

  4. 使用 NuGet 管理我们的程序集 - 预发行版

    1.缘起 在我们的项目中.须要引用的组件统一放在一个 Libs 文件夹下.不管对于平台上的公共组件.还是应用模块,都是如此. 假设一个应用模块,比如能源管理(EM).要引用平台提供的公共组件,比如数据 ...

  5. SpringBoot 中使用 @Value 为 static 变量赋值

    原文:https://www.jianshu.com/p/ea477fc9abf7 例如: public class Utils { @Value("${test.host}") ...

  6. 清理tomcat服务器缓存

    据悉,2014年最流行的应用服务器排行榜揭晓Tomcat仍然处于领先位置.41%的部署使用的是Tomcat,和2013年的43%的市场份额数据一 致.下面还是我们的热门选择Jetty和JBoss/Wi ...

  7. Java File.separator

    在Windows下的路径分隔符和Linux下的路径分隔符是不一样的,当直接使用绝对路径时,跨平台会暴出“No such file or diretory”的异常. 比如说要在temp目录下建立一个te ...

  8. Android上的单元测试

    Android上的单元测试 http://www.sina.com.cn  2009年12月04日 16:07  IT168.com [IT168 技术文档]任何程序的开发都离不开单元测试来保证其健壮 ...

  9. Selenium:Hello,World!

    背景 伟鹏同学在学习自动化测试了,开发人员也有必要学习一下,有如下好处: 可以开发一些小工具. 可以熟悉一下自动化测试开发技术. 代码 using System; using Microsoft.Vi ...

  10. Java web实时进度条整个系统共用(如java上传、下载进度条、导入、导出excel进度条等)

    先上图: 文件上传的: 2017-05-04再次改进.在上传过程中用户可以按 Esc 来取消上传(取消当前上传,或者是全部上传)... 2019-03-26更新进度条显示体验 从服务器上压缩下载: 从 ...