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