Linux 25周年:与创始人Linus Torvalds对话


http://geek.csdn.net/news/detail/67782


原文:Linux at 25: Q&A With Linus Torvalds
作者: Stephen Cass
译者: 孙薇
责编: 钱曙光,关注架构和算法领域,寻求报道或者投稿请发邮件qianshg@csdn.net,另有「CSDN 高级架构师群」,内有诸多知名互联网公司的大牛架构师,欢迎架构师加微信qshuguang2008申请入群,备注姓名+公司+职位。


引言:在本文中,开源操作系统之父Linus Torvalds将畅谈Linux的前世、今生与未来。

早在1991年还在芬兰赫尔辛基大学就读时,Linus Torvalds便创建出了最初的Linux操作系统内核。之后这个小小的内核很快发展成了一个功能全面的操作系统,可以运行在智能手机与服务器上,还有各种各样的小工具上。本文是一篇电子邮件访谈记录,文中Torvalds回顾了过去25年来Linux的影响,并展望了未来25年可能出现的变化。

图片描述

Stephen Cass(记者,以下简称S):如今在程序开发上,你已经比25年前拥有了更多的经验,有什么想要告诫当年的自己呢?

Linus Torvalds(以下简称L): 实际上我是这样认为的:关于Linux的成功我并不敢居功,有很多事情我当时并不了解,如果一开始我就知道的话,也绝不敢动手编写自己的操作系统:需要一些天真无畏的勇气,才敢以为自己能做得到。我深信这是动手开始一个项目,并最终获得成功所需要的特质。虽然对项目可能的发展范围缺乏概念,但更因此才不会有先入为主的想法,而对项目的发展强加干涉。

我相信,正是因为我不清楚未来能有怎样的发展,也许才会对他人的建议和影响抱着更开放的态度。如果我本来就对想要完成的目标有着奇思妙想,说不定就不会有这么开放的态度了。在我看来,这种坦诚的态度让别人更愿意、也更容易参与到这个项目中来。人们不会为了别人的愿景而买单,却会为了他们自己的愿景而努力。在我看来,正是这种想法激励着很多人在Linux上作出贡献。

S: 在Linux的发展中,是否有某个早期的技术决策是你现在希望改变的?

L: 糟糕的技术决策什么的,都是你随时可以抹消的东西。没错,尽管当时很令人沮丧,也显然完全是浪费时间和精力,但往往到了最后,这些教训都不算真正地浪费时间:采用错误的决策总有些原因,而认识到错误则会让你学到经验。我并不是说错误其实是好事,正确的决策永远比错误的要好——但我不会特别担心选择的问题,我宁愿先做下决策,哪怕以后发现这个决策是错的,也比浪费太多时间来讨论可能的选择要好。

在2001年左右,众所周知我们曾在Linux的虚拟内存子系统支持方面遇到了非常糟糕的状况。当时状况糟透了,大家对于该选择哪个方向产生了剧烈的争议,同时在某些内存的配置上也存在很大的问题。本该到“稳定”阶段了,系统中却有大量的内容消失,导致大家都很沮丧。

现在再来回顾,问题最终还是解决了,虽然那段时间就像地狱一样,所有人都痛苦不堪。如果不用在开发中期执行这类的重大修改肯定会更好一些,但这件事也并未造就灾难性的后果。

S: 随着Linux迅速发展,从单打独斗到成为群体中的一员,对你个人而言有什么变化?

L: 对我来讲实际上有两个明显的改变:其中一个是在很早的时候(1992年)发生的——我开始使用其他开发者所提供的补丁,而不再总是自己重写了。第二个变化发生在后来,当“自行编写所有要使用的补丁”已经成为了巨大的障碍,我必须学着信任所有那些帮忙维护的人员。

第一点要容易得多:由于在编写Linux内核时,大约前半年我完全都是独立开发的,一开始大家给我发送补丁的时候,我还不习惯直接使用。因此我会一一看过,确定作者的意图,然后自己再写一次。有时候跟他们写的差不多,有时候则完全不同。

但很快我无法再继续这样做了。用了没多久,在我开始对某些人产生信任之后,会直接在Linux上应用他们的补丁,而不再基于他们的理念而重新编写了,虽然最终往往还是会作些改动。这些年来,我已经非常擅长阅读与编辑补丁了,连在睡梦里都能做好。而这些年来,这种模式也一直运作良好。

但正是由于“应用别人的补丁”这种模式多年来一直运作良好,已经让我非常习惯,想要改变就更加困难。大约在2000年左右,内核的开发获得了巨大的成长(那时Linux开始显现出商业方面的潜质)。人们开始抱怨我的工作流程对整个开发造成了障碍,并抱怨Linux缺乏可扩展性,但我们缺乏优秀的源码管理工具来解决这些问题。

最终我们采用了BitKeeper作为源代码维护工具。这个名字更让人记忆深刻的是几年后关于授权中止的喧闹纷争,不过它的确很适合这项任务,而且教会了我(以及内核社区的至少一部分人)该如何控制管理源码,以及当我并非唯一的同步点时,如何在更具分布特性的开发模型中执行协作。

当然,我学到的分布式源码控制管理方法造就了2005年出现的Git。虽然Git显然已成为源代码控制方面的成功典范,但当年正是BitKeeper让大家了解到了分布式源码控制的优势。在2000年左右,关于内核的痛苦经历最终给我们好好地上了一课,不过当时确实很痛苦。

S: 还有什么其他项目就像分布式源码控制一样,让你有冲动想要掌握么?

L: 没有,我确实不希望再有这样的项目了。我所有的大项目都来自于这样的经历:“可恶,没人帮我做这个”。如果有人能帮我解决问题,我会更高兴无需再花力气自己解决了。我宁愿坐在沙滩上的遮阳伞下,啜饮着时兴的饮料,而不是自己去解决问题。

好吧,我在撒谎,几天后我感到非常无聊。我真高兴自己还有Linux,因为它确实很有趣,很能激发思考,不过与此同时,创建一个新项目确实是非常令人沮丧的做法。

S: 在你看来,Linux为什么从未在主流台式机上占领重要的席位?

L: 我们还在努力,我认为Chromebook笔记本实际上做得相当不错,即便它只是一个相当有限的桌面环境,并非完全传统式的Linux工作站模式。

至于为什么台式机如此难啃,原因很多,但最大的原因很简单,就是用户的惯性问题。在计算机世界,台式机非常独特,它是非常私人的东西——如果你使用电脑的话,每天都会与其进行相当亲密地交互;同时台式机在很多方面都具有其他计算环境所不具有的复杂性。

看看你的智能手机,这也是一个相当具有亲密度的计算设备,与人们密切相关(而在这一点上,多亏了安卓,让Linux有出色的表现)。台式机在各方面都更为复杂,遗留的负担也更重,所以这个市场很难进入。人们在使用手机时习惯了特定应用和流程,很多人也会尝试更换操作系统,不过安装不同操作系统的人还是比使用预装系统的人要少得多,而这一点在台式机上更加凸显。

同时,我认为这个市场很重要,尽管在某种程度上来说,整个“通用桌面”的市场似乎都正在衰落。更专业的东西就越简单,因此平台承担了很多任务:包括智能手机、平板电脑以及Chrome笔记本都代表着羽翼尚未丰满的通用环境。

S: Linux的什么用途最让你感到惊讶?

L: 最近没有太多,因为我觉得Linux已经成为设计新硬件或服务模型的默认环境了。如果你有些奇怪专用设备,或者正在创建某些新的互联网基础设施什么的,要想不用Linux的话几乎让人无法理解。

不过那些“奇怪的”使用领域经常会让我感到惊讶,让我觉得Linux似乎还是那个工作站和服务器操作系统。在一些早期的Linux商务会议上,当人们炫耀鼓风机或电冰箱运行Linux时,我都会佩服地五体投体。在第一台TiVo出现时,它能运行Linux还有“可以重播电视的直播节目”都让人非常有兴趣。

S: 目前Linux所面临的最大挑战是什么?

L: 实际上内核运行地很好,人们还在担心太复杂会影响理解或者bug修复,这种担忧可以理解,但与此同时,我们也网罗到了很多聪明人。系统变得越来越大,越来越复杂,又有很多人依赖着它,使得我们必须得设置很多流程。接受巨大而具有侵略性的改变是很有挑战性的,因此我不会认为这是惬意的事情,不过在我看来,内核开发的很不错,很多其他的开源项目都很想要我们这样的资源。

即便如此,我们总能遇到这样的挑战:内核中总有过多的硬件。我们支持很多不同的硬件,几乎可以确定要比其他操作系统支持的都要多,但每天都有新的硬件出现。特别是硬件平台开发时间通常较短的嵌入式领域(在中国只用1、2个月就能转过头来创建一个全新的手机平台),想要尝试在这样的环境中工作非常艰难。好消息是,有很多硬件厂商都在帮忙,过去并非如此。

S: 现在你对什么技术发展趋势有兴趣?有哪些会让你感到失望?

L: 我一直对新的核心硬件很感兴趣,特别是CPU之类的。这也是我一开始做自己操作系统的原因,现在我还是对新的平台很有兴趣。当然,大多数时候只需要在现有的硬件上做些微调,而且我深信这就是技术发展应当朝向的方向。不过在这些事情上,我还是倾向于继续跟进追踪。

从更大的层面来讲,虽然我个人并未介入这个领域,但能够看到人工智能(AI)最终如何实现会很有趣。AI曾经属于那种“还得二十年之后才能实现”的技术,到了现在它还是“需要二十年才能实现”的技术。对于过去人们经常使用的“基于规则的模型”,我没有太深刻的印象。

现在,终于神经网络也开始发展了,我觉得这一点很有趣。虽然这并非是我所致力的领域,也不算是我希望投身的领域,但确实很有吸引力。与那些疯狂的LISP和Prolog语言不同,我们都知道递归神经网络是作用于本质的。对于真正的AI开始出现这件事,我完全不会感到沮丧,有些人会,但我完全不会。

S: 根据你的看法,在50周年时Linux能否依旧保持活跃呢?你所梦想的操作系统是什么样子的?

L: 我不怎么擅长预测,我本人只是一个缺乏想象力、很乏味的工程师罢了,总是尝试着眼于现实基础。关于预测这件事,还是让别人来做好了,无论5年、10年还是25年——我认为,只要我们继续追踪所有小的的日常细节,并尽力而为做到最好就可以了。

如果这个世界发生了巨大的改变,25年之后从根本上全然不同的话,也许会更有意思。不过,如今操作系统的很多根本的问题,与60年前人们刚有真正的操作系统时所存在的问题完全相同。据我猜测,未来计算机所发生的变化说不定还比不上在过去50年中的变化呢,硬件和软件开发人员只是学到了哪些能够运行,哪些不能。

当然,神经网络等等技术会改变世界,但它们有一部分特质就是无需“编程”,他们是自学习的,也是逻辑模糊的。我几乎能够肯定:因为这个原因,它们无法取代传统的计算模型,人们想要更智能的机器,但也需要能完全按照指令工作的机器。因此我们目前的“旧式”风格计算方式不会消失,而只会得到增强。




  • 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、付费专栏及课程。

余额充值