Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2316630
  • 博文数量: 846
  • 博客积分: 10011
  • 博客等级: 上将
  • 技术积分: 9499
  • 用 户 组: 普通用户
  • 注册时间: 2007-05-04 19:54
个人简介

日日行,不怕千万里;时时学,不怕千万卷

文章分类

全部博文(846)

文章存档

2010年(36)

2009年(418)

2008年(346)

2007年(46)

我的朋友

分类: LINUX

2009-05-04 16:10:27

1991年LinusTorvalds将他的第一版Linux公之于众。在随后的18年里他不仅亲眼见证了Linux给IT文化和经济带来的积极冲击,更 有机会直接参与决策,让这些变化成为现实。虽然自1991年以来很多事情都发生了巨大的变化,但有一件事始终没有变,那就是在Linux的大潮 中,Linus仍然充当着掌舵人。

  在这次LinuxMagazine的专访中,Linus回顾了他所做的工作,探讨了新硬件带来的影响,主题还是围绕着Linux——这个如今从手机到桌面电脑再到超级计算机中无处不在的操作系统。

  LinuxMagazine:你一直从事Linux的开发已经快18年了,那么长的时间令人难以想象,尤其是在软件行业里。我们也知道有许多 Linux 核心贡献者一直坚持着,即使是已经转了行或者换了工作。那么对于Linux来说,相同的开发者能够坚持下来是不是好事?你打算一直坚持下去吗?

  LinusTorvalds:如果只是同一批人在坚持,那我不认为这是好事,如果Linux陷入那种“长期核心人物”的开发方式,那我会非常担心。但 对 Linux来说,好在它有一条长长的尾巴,它的开发者实在是太多了,这很重要,很多人可能只为内核的发展贡献一点力量,比如只发送一个小补丁等等,但这就 是Linux成长的源泉。大多数开发者无法做更多的事情,但其中的一些人会成为主要开发者,我们需要这一点。

  与此同时,我想大家都更高兴看到Linux核心团队的稳定。实际上还是有很多资深的开发者,比如TedTs"o,他很早就参与进来了,目前仍在参与,并仍然贡献代码。

  因此,这并不是一个要么这样要么那样的问题,两方面我们想都要。关于我自己,答案是肯定的,我会坚持下去,只要我认为我还可以做得很好,除非有比我更好的人了。

  LM:在Linux之前,没有人相信超级计算机和手机能够在相同的内核上运行。你认为将来的Linux能不能保持代码不变,人们想把它用在手机和其他小型设备以及大型服务器上时,仅仅改动一下配置就行?

  LT:个人而言,我不想说“在Linux之前”,因为这也是一步一步做到的,在“Linux之后”的很长时间里我一直告诉SGI要接受经常打补丁这样的事实,他们也并没有像我那样过于关心内核的大小。

  所以,我基本上答应他们,我会尽量合并底层补丁,使他们的最后外部补丁维护起来变的简单。但是当时我真的不期望基础内核能支持4000个CPU的配置,因为我仅仅是认为这过于冒进了,怕造成太多的问题。

  当时我认为我可能是正确的。但是随着时间的推移,我们合并了越来越多的支持,并做了有效的精简,使代码能够在支持数以千计的CPU时表现良好,而在只有少量CPU核心的情况下,也能简单有效的编译起来。

  所以,现在我当然是很高兴,我们不需要外部补丁就能够覆盖从小型嵌入式设备到几千个节点的超级计算机的整个范围,我对内核的处理能力感到非常自豪。

  现在,我已经看到了这样可以做得很好,我也不愿意再考虑其他方式了。所以,是的,我相信我们能够为不同的目标继续保持同一个源代码,从手机到超级计算机。

  当然,有一个有趣的问题就是所谓的低端现在已经长大了。10年前SMP在桌面上都是罕见的,但现在即使在非常微小的嵌入式环境中都应用了SMP。因此,我们必须把“小”的范围扩大一点。现在有些手机拥有的计算能力比起原先我开发Linux的电脑都要强大的多。

  LM:你在博客上为你的IntelSSD写过一篇非常肯定的文章,称赞它“绝对够劲”。另一方面,其他一些市场上的SSD并没有得到Linux用户的 好评。Linux能够充分发挥SSD的写入性能和高寿命吗?编者按:在51CTO网站上,有“哪种操作系统最适合SSD硬盘<>”的相关专题。

  LT:这在很大程度上取决于你的使用情况。例如,即使是不好的SSD也可以完美充当第二块驱动器,因为99.9%的情况下你只用到它的读盘能力,所有的SSD硬盘读盘能力都很好,延迟速度快,随机读取性能也非常好。

  IntelSSD不是完美的。如果你做的是大文件的工作,读写大量的连续数据,那么还不如用普通磁盘,价格非常便宜,容量也大得多,而且速度一点也不慢。

  但对我来说,硬盘是系统最薄弱的部分。硬盘的缓存是一个巨大的问题,在95%以上的情况下隐藏了硬盘的性能。

  只是举个例子,我经常用“gitgrep某些东西”在我的内核树里查找哪些功能正在使用,或是类似的东西。这要花掉我0.5秒,所以它可以算是实时 的。但是如果我刚刚重新启动,或者刚刚做了其他事情让我的内核树不在缓存里呢(好了,这很罕见,但它确实发生)。那么如果我第二次进行“gitgrep” 的话,如果是SCSI硬盘,可就不是0.5秒了,而是一分钟或两分钟。

  Intel的SSD情况就好多了,对缓存中的“gitgrep”仍然是0.5秒,但第二种情况下我只需要10秒,以前还更快些,但最近增加了很多垃 圾。另外没有达到这个成绩的不要责怪Intel,这是我自己的个别例子。因此,现在即使是缓慢的情况下也已经不再是两个数量级了。但是有些SSD达不到这 个成绩,依然是两个数量级。

  顺便说一句,这在CPU也非常明显。我最大的不满就是Intel的P4架构也有类似的表现,大多数情况下它的表现绝对伟大,然后有一些偶然情况下,由于L1缓存太小,它的表现很可怕,而这我碰巧十分关心。

  LM:在系统级别,“有些地方非常好,有些地方非常糟”听起来像很多基于Linux的产品的通病了。从工作站到集群的节点,再到NAS设备或PVR。你是不是想建立一个良好的在桌面上工作的通用内核,让人们按照自己的需要进行配置?

  LT:是的。对我来说,Linux一直是最有趣的目标。主要的原因很简单,不仅因为这一直是我想做的,而且还因为所有的有趣问题总是在桌面使用中出现。

  其他所有的用途往往非常有限。你有一件事或几件事需要做,你只可以优化和简化这些问题的具体方面。

  在桌面上则相反,有各种各样的用途。种类繁多的硬件,种类繁多的软件,还有成千上万种用户的疯狂做法。

  因此,瞄准桌面总是强迫你去解决更本质的问题,比起其他任何目标来说。当然,Linux不仅是一种桌面操作系统。不仅仅是台式机,你还必须关注其他领 域,其他架构,数以千计的核心的可扩展性。但一般台式机的问题确实占到90%,其他架构的可扩展性等算是锦上添花的问题。

  LM:谈到不同的平台,你现在用什么电脑?有没有非x86的主机,或者专用的服务器、媒体播放器、或其他特殊用途的机器?

  LT:实际上我不喜欢使用大量的电脑。我不喜欢家里有“电脑室”,我的目标是只有一个主要的工作站,在上面完成一切事情。我工作的x86已经用了好几年了。

  我还有一些其他的机器(主要是笔记本电脑),有几台家庭用的机器(一台Tove用,一台孩子们用),它们也都是基于x86的。我将非常有兴趣看看今年或明年我是不是会增加一台ARM机,但它必须是一个很好的netbook的平台,我还没有决定。

  当然,我有一些Tivo产品,而且它们是用Linux的。但我真的不把它们看成Linux,我不会去修改它们。还有就是PS/3,玩游戏更有趣些,但我不把它当作计算机。

  现在我手里最有趣的机器是还没发布的,我不能公开谈论。例如,我曾有一台Nehalem机器,但当时我不能说,现在也是这种情况。

  LM:你认为硬件设计者们会不会做出某种革命性的设计,比如内存结构已经变得越来越复杂,从而对Linux的架构产生重大影响?

  LT:我不认为这很可能,原因很简单,Linux支持许多不同的平台,而且非常善于抽象,99%的内核代码并不需要对硬件的设计复杂度考虑太多。让我们拭目以待。也许今后的硬件会让我感到吃惊,真正带来巨大的架构变化,但现在我还是怀疑。

  LM:Linux修复安全性bug的办法似乎一直只是解决主内核中的问题,我们也知道分销商们为了提高安全性也在对内核做自己的修改,如果上游内核加入你所谓的“安全马戏团”和他们相比较,用户是不是能或多或少得到更安全的内核呢?

  LT:嘿,别误解我。我认为应该把该说的说出来,对大家都有好处。而且似乎他们做得不错,在内核安全性方面确实做得很好了。我的意思是,如果你真的希 望更多的安全性,应该简单地尝试多层的做法。我认为,各种虚拟机环境无论是Java还是Dalvik还是t等等,其中一个最大的优点就是安全层,它们本身 可能安全也可能不安全,但它们可以间接的添加安全层,这样安全性就能得到大幅度的提高。

  所以,我认为Linux在内核的安全性方面做的已经不错了,我个人的观点是,“安全剧场”很明显唱的也是好戏,确实有效。但是,我始终认为,不论你自以为平台有多安全,你总是应该用多层的方法来提高安全性。在任何层次上相信“绝对安全”的人都是无知和愚蠢的。
阅读(506) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~