采访Linus Torvalds
Alessandro: 你能多花一点时间为我们工作吗?
Linus: 当然,没问题,我会尽我最大的努力。
Alessandro: 在美国过的愉快吗?我更喜欢我们的芬兰领导, 而不是又来一个指手画脚的美国佬....你怎么看这个问题? 考虑过再回芬兰吗?
Linus: 到现在我在这过的都非常好:我非常喜欢在赫尔辛基大学里的日子,但是我觉得尝试一些不同的东西也是值得的,并且到目前为止一切都非常好。 我同意说芬兰在很多方面都更加“中立”,这对于Linux的发展很有利:有很多人对美国很敏感甚至是不喜欢美国,但是我确实不知道有谁是真的不喜欢芬兰。所以看来有些不好,但是我觉得大家信任我,并不是特别注意我是一个芬兰人,所以我并不认为这是一个非常严重的问题。 美国这里的天气也比芬兰好得多(虽然这是很长时间以来海湾地区最多雨的冬季),这里的生活也更加有趣一些。虽然我真的非常喜欢我在大学里做的工作,但是我现在正在做的东西更刺激,很快就要完成了,就说这么多。
Alessandro: 我们都知道美国对加密技术的限制;他们影响了Linux在这一领域的发展了吗?
Linus: 这个看来并不是特别严重。在我搬到美国来之前,美国对加密技术出口的愚蠢的限制就已经是一个问题了:主要是因为如果我们想要或者当我们想要在内核当中加入对加密技术的支持的时候,我们不得不把这个做成模块分离出来,这样CD商(大部分都是美国的)才能在海外卖他们的CD。所以我搬到这里对这件事并没有什么真正的影响,只不过现在显然不能由我来做加密的工作了(事实上我原本就不负责这方面的工作,我在这一领域不是专家)。 但是不管怎么样,我还是希望美国的加密法能很快的改掉。美国的一些法律把好多原本简单的事情弄的非常的复杂。(公平的说美国并不是唯一有问题的国家:法国在这方面的问题要更为严重,并且他们正试图让整个欧洲都像他们一样。幸好法国人的这些疯狂的想法并没有多大的影响力,美国就不同了,他们在信息技术领域举足轻重)。
Alessandro: 你曾经想过要放弃继续担任Linux协调员吗?这个工作是否还像一开始那样的有趣?如果你打算离开,那么能跟我们说说你的下一个计划吗?
Linus: 我从来没有真的想过要离开,有几次有人问我如果我对此不再有兴趣了,那么留下来还有什么意思呢? Linux的协调工作总是非常有意思的,虽然我老是觉得它占了我太多的时间。
Alessandro: 请原谅我的好奇心,你现在每天花多少时间编程序?你现在主要的活动是什么?
Linus: 现在我已经没有那么多时间编代码了:偶尔我还是会连续几个星期整天都在编制代码,不过很少这样干了,这样干的时候大部分是因为内核需要做一些基本的改动。去年这样的情形发生了四到五次,大部分是因为SMP,还有这个“dentry”文件系统的缓存。 我的大部分时间花在阅读Email并且回信上——协调大家的工作,在一些问题上讲一下我自己的观点,整理patch。现在这就是我的大部分工作:坦白的说,编程只占10%,协调的工作占了90%。
Alessandro: 你是怎么样处理好这件事情的?一方面在写一个免费的内核,同时仍旧能挣钱养活自己?
Linus: 一开始,我是赫尔辛基大学的学生。在芬兰,这就意味着在好几年的时间里你能得到政府的资助以帮助你完成学业,还能得到特别学生贷款。我猜意大利的情况可能和这个差不多,不过也许不像芬兰的这样明确。 一两年之后,我开始在大学里干助教,然后是助理研究员,学校始终在鼓励我继续写Linux。 现在,显然我是在为一家商业公司工作,但是即使在这里,我还是得做好多Linux的工作,甚至是在上班的时间里,虽然Transmeta公司的业务和Linux没有关系,但是公司内部大量的使用Linux,所以我的Linux工作对公司还是有好处的。 所以,不管是在大学里工作或是学习也好,还是在商业机构里工作也好,我总是能“上班”和Linux两不误。从来没有发生过什么严重的冲突,虽然我的上班时间并不是严格的限制在上午九点到下午五点......
Alessandro: 为什么不试着转向商业化的支持方面呢?就像Cygnus公司那样?(我想我知道是为什么:-)
Linus: 我从来就对把Linux的任何一部分转向商业化不感兴趣:维持一个商业的公司或是类似的机构,会花掉我大量的时间,我对此毫无兴趣。 而且这会带来负担:我不能随便做我想做的、在技术上合理的事了,因为我必须考虑到我要靠它挣钱养活我和我的家庭。于此相反的是,在大学里或者是在Transmeta公司里工作,我可以不用依靠Linux来挣钱养活自己。这样,对Linux来说,我就是完全自由的了,我不用担心它是否会发给我下一个月的工资...... 我非常高兴在Linux上我没有任何压力,我想大部分其它的开发人员也是这样看这个问题的(他们不用担心我的判断力受到任何财政问题的影响)。
Alessandro: 你认为你改变了世界吗?或者只是刚刚迈出了第一步?(呵呵,我了解你)
Linus: 这是由我开始的,我感到非常的骄傲。我不认为我“改变了世界”,但是我非常骄傲,我改变了许多人的生活——这种感觉非常好,当你意识到有许多人关心你所做的工作。 当然我不会说,它“使我的生活变得有意义”,但是Linux肯定是我生活中的一部分,如果你明白我的意思的话。
Alessandro: 你怎么看Richard Stallman的工作,还有他的哲学?
Linus: 我个人并不喜欢把政治和技术问题搅在一起,我在许多问题上的看法并不总是和rms一致。对于rms来说,当谈到软件的时候,有许多几乎是宗教信仰的问题,我自己在大部分问题上是比较现实的。所以,我们知道在一些问题上我们的看法不同,我们并不试图在一起工作,因为我们知道这不会很顺利。 上面说的话也许会使人认为我不喜欢rms,并不完全是这样。 Rms显然是现在大部分的“自由软件”或“开放源码”潮流的推动者,如果缺了rms,这个世界会变得乏味许多。并且为了推动这个潮流,他“必须”显得有些偏激才行。 所以准确的说,我真的非常敬仰rms,但是我不想和他一样,因为我们的世界观不同。
Alessandro: 谈到现实的问题,2.2的日程表是怎样的? 2.0和马上的2.2的主要差别是什么?
Linus: 就我现在所看到的,2.2会在夏天的早些时候发行,但是很难说准:有一些东西必须修改好才行,在改正这些问题之前还说不准。眼下这个TCP卡壳了,工作的不好,其它的部分都很好,但是这个问题很严重,在它得到修改之前,我还不敢想2.2。 2.2的一个变化是,2.0中新增的一些特征,在2.2里将会变得更加成熟,诸如SMP还有multiple architectures。还有好多好多新东西(新的dentry代码,完全重新写的NFS,等等),但是SMP和architecture将会是2.2中最基本的东西之一。
Alessandro: Bruce Perens宣称“占领世界:2003”;这实际吗?依你的观点,自由软件的概念会赢得市场吗?就这方面来说,你对网景公司的改变怎么看?
Linus: “占领世界”什么的,好像大家都在这么说,但是我认为,是的;有五年的时间让自由软件还有Linux得到较大的影响,并非不现实。网景的开放源码的行动是个很好的开头,我想很快就会有其他人也这么做。
Alessandro: 各种不同的自由操作系统如何才能共存?你的观点是什么?
Linus: 我想大家现在都意识到别人的存在了,但是现在的这种相互之间没有什么合作的状态还是会持续下去。至于Linux,它能够很好的和别的操作系统在一起合作,(特别是微软的那个很烂的操作系统;),我没看出来有变化的迹象, FreeBSD还有其它的系统都会存在下去。也许在一些细节上必须做一些改变,但是我看不出这里有任何根本的问题。
Alessandro: 你认为Wine项目,还有其它的一些工具,能够使两个技术上相当,然而一个自由免费,另一个却是产权所有,的操作系统互相合作,运行一样的应用程序吗?(可怕的问题,我个人的看法是)。
Linus: 不能,我想Wine项目对于PC上的操作系统来说是非常重要的一步,但是这一步造成一个错误的印象:好像一个好的操作系统必须能够运行那些Windows应用程序,诸如MS Office等等,否则就算不上一个好的系统。 所以,我想每个系统都应该能运行一些基本的程序,但是没有必要要求两个系统在技术上完全等价,他们有各自不同的侧重点。比方说,微软总是强调性能只要过得去就行,并且他们的体积非常大,而Linux却是(并且也将一直是)强调技术问题。
Alessandro: 目前我们没有免费的办公应用软件。你认为这只是迟早的问题,还是这样的软件只可能是商业化的?
Linus: 我想商业软件总归会有一席之地的,虽然我想我们很快就会有免费的办公应用软件,但是我并不认为我们缺了这个就不行。 我想要一个自由免费的操作系统以及一些基本的应用程序的理由是,我想如果这些基本的东西不够健壮,并且你不能够自由的修改它以适合自己的需要的话,你就是真正的遇到了大麻烦了。但是谈到其它的领域,这个观点就不是那么正确了,并且你是不是能够免费得到源码,也不是那样的重要。
Alessandro: 有时候我们会注意到一些“标准”仍旧是产权所有的(比如I20),是否这只是这些公司的垂死挣扎呢,还是说自由软件其实是处于危险当中?
Linus: 我并不是非常的担心I20以及其它的一些产权所有的标准。产权所有的标准,这一想法其实已经失败了——现在几乎所有成功的标准都是开放的。有的时候,产权所有是因为这些制定标准的公司非常横蛮,他们不愿意放弃,我猜除了Intel和微软之外,就没有其它人这样的横蛮了,即使是这两家公司也会在竞争中被削弱的。
Alessandro: 你在这件事中的位置是怎样的?即只能以二进制方式获得Linux模块。
Linus: 我在某种程度上接受这件事,但是我从来不支持,并且我不喜欢这样。 我接受它的理由是,在许多情况下,你有一个,比方说,并不是为Linux而写的设备驱动程序,它可以在SCO Unix或是其它的系统下工作,这时设备制造商突然清醒过来,意识到Linux更有前途。结果就是他们把自己的驱动程序移植到Linux上。 但是因为这个驱动程序并非“基于”Linux(它原本就独立于Linux而存在了),所以我不认为我有权利要求他们必须由GPL管辖,所以这些不公开源码的模块接口让这些模块得以在Linux下生存、工作。 这并不是说我将接受任何的封锁源码的模块:有些情况下,有些东西是很显然基于Linux的,脱离了Linux内核根本不行。在这些情况下,这就是很显然一个并非完全原创的工作了,上面所说的就不再适用,这就显然属于GPL证书管辖的范围了。
Alessandro: 你对KDE-Qt这个问题怎么看?Gnome将会成功吗?
Linus: 我个人很喜欢Qt,而且KDE看来做得不错。在这整件事上,我采取走着瞧的态度,看看gnome是否也能做的很好......
Alessandro: 在网络子系统中的一个有趣的挑战是“band reservation”;在Linux中怎么样?
Linus: 我看来不得不略过这个问题。我个人并没有参加到这一领域,并且也不是特别的感兴趣,所以我也不会在这上面花太多的精力。这就是Linux工作的方式:如果你需要这个,那么你自己把这个工作做起来,如果有很多人都需要这个,那么我们就把它集成到系统中去..
Alessandro: 有许多人问为什么用C而不是C++写系统内核。你反对在内核中使用C++的理由是什么?你最喜欢的语言是什么,除了C?
Linus: C++可以让我们用到一些我很喜欢的编译器的特征,并且事实上,我们曾经在一个很短的时期用过C++,就是在发布Linux-1.0以前。结果看来,这不是非常的有用,我想我们不会再次尝试了,有好几个理由。 一个理由是C++更加复杂,编译器总是做一些让程序员意料不到的事。当然,你可以避开virtual class等等这些特征,但是C++允许许多C所不允许的,这会使得之后的调试、修改变得很困难。 另一个理由和上面的这个理由也很有关,就是编译器的速度和可靠程度。因为C++更加复杂,有更多的可能会出现虫子,并且总是会更慢。可以认为这只是编译器的问题,但是C++的复杂性客观来说对于内核的开发是有害的。
Alessandro: 你对Java现象怎么看?你曾经考虑过在内核当中集成Java虚拟机吗?比如kaffe?
Linus: 我老是觉得大家对Java有些过分狂热了,现在还是这样。我真诚的“希望”Java能够成功,但是我很实际,我不会随便的加入Java一伙。 Linux早就支持Java大程序的无缝运行了,我认为Linux内核只是作为一个包裹器,而不是直接的Java虚拟机,这是一个优点。