走近Linux开发者:Linus Torvalds
30 Linux Kernel Developers in 30 Weeks 是 Linux.com 网站在2012年开始的一系列专题文章,该专题访问了三十位 Linux Kernel 的开发者,其中包含了 Linus Torvalds 和 Greg Kroah-Hartman 等广为人知的人士。这些人士所受访的问题包括:负责的项目、任职的公司、居住地、喜好的工具甚至是工作时会听的音乐等等。
对于想要了解内核开发的人而言,这些文章值得一读,而且可以从中了解一些信息,例如多数的受访者习惯于使用命令行界面的工具来工作,在桌面环境下亦然。此外有不少人表示自己偏好在安静的环境下工作而不听任何音乐。这些受访者还分享了许多对于开发者新手的建议,例如可以从感兴趣或者比较小的项目着手,并专注在上面,以及不用惧怕与其他开发者交流等。
Linux Story 在接下来的日子里会为大家讲述这些内核开发者的故事,敬请期待。
欢迎来到30周30位Linux内核开发者系列专访!本文是该系列的第一篇。Linux内核开发社区在很多方面都是独一无二的。社区中的人们所负责策划的是世界上最大的合作开发项目,并且对操作系统以及未来技术的发展有很大的影响。在接下来的日子里我们将逐步更新本系列文章,向大家展示他们如何工作,如何跟他们一起工作以及什么使得他们伟大。
开篇介绍的是Linus Torvalds。本周Linus在他的家乡芬兰参加千禧技术奖典礼,成为2012千禧技术奖的得主之一。在他离开前花时间回答了我们的采访。
你的名字是?
Linus Torvalds
你在社区中扮演什么角色 / 负责哪个子系统的开发?
我是内核的顶层维护者,不直接参加任何子系统开发。但是偶尔会参与VFS层 (虚拟文件系统层) (以及更偶尔地参加VM讨论)。
你的收入来源是什么?
Linux 基金会。
你在哪居住?为什么选择那里?
俄勒冈州波特兰市,至于原因嘛,这里安静的多,比硅谷更宜居,从搬来至今已经好多年了。也许气候没有那么好,但我相信这里更适合孩子的成长。还有在这边我们能够承担得起大一点的学区房。
你最喜爱的软件开发工具是什么?你通常使用什么?
我只开一个浏览器(收发邮件和打发时间),和在几个终端中跑git。偶尔会使用gitk窗口浏览git历史记录。大多数时间是读和回邮件,合并开发树以及查看结果。
其他我倾向于使用的工具是 perf,用于对我关心的负载问题进行压力测试(主要有内核编译和一些git工作负载)。
如何参入Linux内核开发?
嘿嘿,缺乏常识和写操作系统的知识,不可能胜任这份工作。
是什么让你对这份工作始终抱有热情?
仅就技术层面来说,我喜欢不断完善做些修修补补的事情。可事实是这份工作让我和其他人打交道,这一点真算得上意外收获。
在协作开发过程中你觉得好玩的是什么(嘴仗,愚蠢代码的提交,惊人的成就)?
我认为我喜欢的部分是某人使用Linux做一些完全疯狂的事情。从技术角度看,是一些毫无意义但又令人叹为观止的事情(甚至花费几个月干这事)。
像Alan Cox移植Linux到8086上的工作。或者一些使用了拥有RAM和SD卡的8位微处理器来构建自己的计算机的家伙,在开发板上编写一个ARM仿真器,然后启动 Linux (非常非常慢)。
你对想进入该领域的开发者有什么建议?
从小事做起。不一定非要做Linux,有很多的开源项目需要帮助,你可以学习如何参与到其中。一旦你确实觉得用户模式的编程是在浪费时间,想要参与到内核开发中,不要尝试对内核代码进行大改,应该尝试找出一些小的问题,然后解决掉。一些像驱动程序没有如期的运行的问题。
如果大家看到你在提交很多复杂的补丁前已经做了一些事情,花些时间学习协同开发是有帮助的。
但最重要的是要有“好的品味”。这个不太好描述的,却是我个人寻找的东西。人们通常用“正确的方法”做事,我在这里的意思并不是指你应该遵守我们这么多年摸索积累出来的那些规则(但是你确实最好按照这些规则来做事)。其实我特别想谈论一些可能出现的难以捉摸的代码质量问题,写代码需要有强烈鲜明的意识去做对一件事情并且不会漏掉特殊情况和复杂性, 同时也可以避免不必要的抽象、做它应该做的, "只做一件事,并且把它做好"。
你在编码的时候听什么?
我需要完全安静的办公环境。当我驱车带孩子的时候才听音乐,工作时我不想听到任何声响。不能有音乐,电脑的风扇也不能有噪音。只要安静。
在哪个邮件列表或IRC频道或会议中可以找到你?
我不使用IRC或其他的实时通讯工具,我只用邮件。我接收所有的内核和git邮件列表,但我有自动分析模式,这样我就可以查看我关注的或者我有被CC或要求查看的主题。
说到会议,对我来说通常是指 Linux 内核峰会,然而大多数年份,我也会尽可能出席Linux Conf Australia (LCA)峰会。我喜欢这个会议因为它召开的时候在澳大利亚正值他们的夏季。但是 LCA 对我来说只是一个工作完成之后的放松, 所以我仅仅是隔年参加一次或者更长时间才参加一次。
有时候我也会出席一些其他的会议,(而出席的原因)通常是因为这些会议某些地方很有趣,比如说某次会议结束之后我能顺便潜个水。
感谢你,Linus!下周我们将对话Thomas Gleixner。