走近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 Pic copy

  你的名字是?

  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。本文由“www.zrnkyy.com”编辑

转载于:https://my.oschina.net/fnnn99/blog/356674

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux Linux最早是Linus Torvalds在1991年开始设计开发的, 当时他正是赫尔辛基大学计算机系的学生,刚开始他是在Minix环境下写了一个处理多任务切换的程序,用他自己的话来描述这个程序,Minix是linux的父亲。1991年的夏季,也就是他购买了第一台PC机之后6个月,Linus觉得他还需要从网上下载某些文件,为此他必须读写某个磁盘。于是他又不得不写一个磁盘驱动程序,然后是一个文件系统。而一旦你有了任务切换器、文件系统和设备驱动程序之后,你当然就拥有了一个操作系统,或者至少是它的一个内核。linux也就这样诞生了。 多任务 计算机在同一时刻运行多个应用程序的能力。 2.多用户 计算机在同一时刻被多个用户访问的能力。如网络上的服务器必须是多用户的。因为网络上的服务器需要能够同时接受多个用户的同时访问。多用户操作系统最主要的特点是:同一时刻不同的用户访问。4.保护模式在linux下应用软件无法访问系统分配的内存以外的内存区域。如此,一个软件的错误不会造成整个系统的瘫痪。5.POSIX表示可移植操作系统接口(Portable Operating System Interface ,缩写为 POSIX 是为了读音更像UNIX)。6.SYSV和BSD扩展 可以理解为和SYSV和BSD源代码级的兼容。简单一点,就是Linux下的应用程序同时也能在这两个系统上运行。 linux具有对多种语言如:C、C++、Java、Tcl/tk、Perl等很多语言的编译器/解释器,以及集成开发环境、调试和其它开发工具。以前,我们一直对windows平台下如VB VC软件开发的高效和便捷津津乐道,也是windows对linux围剿的利器。可是现在一切都改变了,因为有了Borland公司的Kylix。提起borland公司,在业界几乎是无人不知无人不晓,Borland公司一向以高性能、高效率的应用程序开发工具而着称,最著名的是DOS平台上的Turbo C、Borland C++,Windows平台上的Delphi、C++Build和Java开发工具。以上这些产品都称得上是经典之作,尤其是以面向对象的Pascal为基础的Delphi,更是经典中的经典,C++Bulid也是脍炙人口。Kylix就提供了linux版的Delphi和C++Bulid。这两个版本被认为是linux平台上第一个RAD(Rapid Application Development,快速应用软件开发工具)开发工具。 光有内核还不能构成一个完整的操作系统,于是一些组织或公司将内核与一些应用程序包装起来就构成了一个完整的操作系统,这就是发行套件,不同的公司或组织的发行套件各不相同,版本号也不相同,尽管它们使用了同一版本号的内核。现在的发行公司很多,如:我们常听说的RedHat,中软,红旗。 虽说Linux还无法与拥有一亿多用户的Windows相比,但是它确立自身地位和影响力所花费的时间却只有Windows的一半。作为一种Unix操作系统Linux的强大性能显然使得其它品牌的Unix黯然失色。有分析家认为,“Linux的广泛普及使其成为Unix市场上最具活力的一只新军。”甚至连Unix之父Dennis Ritchie也认为Linux“确实不错”。有一些分析家甚至认为,在未来数年间,Linux将成为NT真正强有对手,也是唯一可以冲破微软垄断性文化圈的出路所在。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值