谢宝友:会说话的Linux内核
我们本次开源专访的对象是一位认真钻研技术的工程师,谢宝友,他目前任职中兴通讯操作系统团队,他个人在业余时间前后共花费了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内核的更多相关文章
- linux 内核大牛-谢宝友
http://blog.chinaunix.net/uid/25845340.html 谢宝友:毕业于四川省税务学校税收专业,现供职于中兴通讯操作系统团队,对操作系统内核有较强的兴趣.专职于操作系统内 ...
- 谢宝友: 手把手教你给Linux内核发patch
本文系转载,著作权归作者所有. 商业转载请联系作者获得授权,非商业转载请注明出处. 作者: 谢宝友 来源: 微信公众号 linux阅码场 (id: linuxdev) 本文简介 本文一步一 ...
- 谢宝友 LINUX 内核专家-----LINUX内核注释
http://download.csdn.net/user/xiebaoyou http://blog.chinaunix.net/uid/25845340.html
- 宋宝华: Linux内核编程广泛使用的前向声明(Forward Declaration)
本文系转载,著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 作者:宋宝华 来源: 微信公众号linux阅码场(id: linuxdev) 前向声明 编程定律 先强调一点:在一切可 ...
- Linux内核探索之路——关于方法
转载自:http://blog.chinaunix.net/uid-20608849-id-3014502.html Linux内核实践之路 -给那些想从Linux内核找点乐趣的人 一个不能回避的 ...
- linux 内核分析工具 Dtrace、SystemTap、火焰图、crash等
<< System语言详解 >> 关于 SystemTap 的书. 我们在分析各种系统异常和故障的时候,通常会用到 pstack(jstack) /pldd/ lsof/ tc ...
- [转]透过 Linux 内核看无锁编程
非阻塞型同步 (Non-blocking Synchronization) 简介 如何正确有效的保护共享数据是编写并行程序必须面临的一个难题,通常的手段就是同步.同步可分为阻塞型同步(Blocking ...
- 如何参与Linux内核开发(转)
本文来源于linux内核代码的Document文件夹下的Hoto文件.Chinese translated version of Documentation/HOWTO If you have any ...
- 如何参与linux 内核开发
如果想评论或更新本文的内容,请直接联系原文档的维护者.如果你使用英文 交流有困难的话,也可以向中文版维护者求助.如果本翻译更新不及时或者翻 译存在问题,请联系中文版维护者. 英文版维护者: Gre ...
随机推荐
- Eclipse中执行Maven命令时控制台输出乱码
Maven 默认编码为 GBK: 在 Eclipse 控制台输出乱码: 解决方法:将以下代码添加到 pom.xml 的 <project> 节点下: <project> …… ...
- U盘量产大致研究思路
这几天搞了一波U盘量产,很多年前玩的基本都是些皮毛,比如U盘分区,U盘启动,以及台电U盘的光驱启动等等,这些现在看起来其实都不入眼,只是简单的将U盘分个区,并且没玩到主控上面去. 下面是一些自己的理解 ...
- ORM for Net主流框架汇总与效率测试
框架已经被越来越多的人所关注与使用了,今天我们就来研究一下net方面的几个主流ORM框架,以及它们的效率测试(可能会有遗漏欢迎大家讨论). ORM框架:Object/Relation Mapping( ...
- linux 内核升级2 转
linux内核升级 一.Linux内核概览 Linux是一个一体化内核(monolithic kernel)系统. 设备驱动程序可以完全访问硬件. Linux内的设备驱动程序可以方便地以模块化(mod ...
- Java编解码分析
一.为什么要编解码? 网络或磁盘传输的单位都是字节,平常我们使用的单位都是字符,所以数据需要在字节和字符之间进行转换. 二.编解码概念 1.编码:字符转换成字节 2.解码:字节转换成字符 三.常用字符 ...
- VisualStudio:添加现有项时使用添加为链接
这个特性很容易忘记使用(很多人可能还不知道),这里解释一下. 添加为链接是指:将指定的文件作为链接添加到项目中,这个文件在作用上和一般的文件没有区别,这样做的好处是可以多个项目共享一个文件,如:连接字 ...
- 初学者必读:IBM长文解读人工智能、机器学习和认知计算
转自:https://zhuanlan.zhihu.com/p/27228015?utm_source=weibo&utm_medium=social 人工智能的发展曾经经历过几次起起伏伏,近 ...
- 纸牌屋第一季/全集House of Cards迅雷下载
纸牌屋 第一季 House of Cards Season 1 (2013) 本季看点:经过数轮激烈角逐,新一届美国总统加勒特·沃克(迈克·吉尔 Michael Gill 饰)诞生,自称水管工的众议院 ...
- Fragment Transactions & Activity State Loss
转自:http://www.androiddesignpatterns.com/2013/08/fragment-transaction-commit-state-loss.html The foll ...
- 黑马day17 ajax&实现username自己主动刷新
1. regist.jsp文件 <%@ page language="java" pageEncoding="utf-8"%> <!DOCTY ...