GNU/Linux 内核版本2.6 的美丽新世界 第一部分
Joseph Pranevich/超级用户我可不保证完全正确,哈哈,有时我还加入了自己的观点。或者翻译不出就不翻译什么的。翻译时倒是蛮激动,看到了很多新西西,但是我翻译的完全是垃圾。
第一部分,剩下的慢慢来吧。我现在也不是自由之身啊。
光阴似剑。好像昨天我们才使用2.4版本的内核,然而内核开发组确已经把时间推进到版本2.6的时代啦。本文将描述一些这个新内核的一些特性(偏重于i386体系)。不像一些有名无实的预告片,所有这些特性在2.5版本中已经可见了(而且只有很少的bug)。(安装Linux的传统,所有以偶数命名的才是可以发行使用的稳定版本,而那些奇数的,是为勇敢者备着的。) 有人说,这些特性中的一部分将在今后的2.6里被取消或者冠着“实验中”(experimental)的头衔。但是内核守护者已在处理这发面的问题,应该说下面所描述的和真实的2.6是八九不离十的。而且请注意这里一些“新”特性,实际上已经作为2.4的补丁出现在了一些系统中。
说实话,写这篇文章遇见了一个小问题:下一个内核版本的编号还尚未确定,尽管最大的可能是2.6,但是也有人提议因为NUMA(非均质存储器访问)和MMU-less(轻量级内存管理 maybe for PDA-like device)这样重大功能的加入,一个版本应该被称为3.0。为了行文方便,我们暂且称其为2.6。
本文第一草稿发表于2003年7月13日,以2.5.75版本作为参考。在2.6最终发布之前,将还会有更新。不过此非“官方”文档,且是第一版本,错误、遗漏在所难免,请广大读者不吝赐教。
在此之前:
Linux(内核)源自Linus在1991年为他的80386所写的一个类似Minix的操作系统。起初他把这定名为Freax(What's this?!),幸运的是最终被命名为Linux(这个多好听^_^)。第一个正式版本1.0在1994年三月发布,这个版本仅仅支持单个i386处理器。下一个版本1.3在1995年三月发布时,已经支持多个硬件体系(Alpha,Sparc,Mips)(同年一个垃圾公司出了一个超级垃圾)。
Linux2.0,1996年六月,支持更多的硬件体系,但是更要的是开始提供对SMP的支持。
Linux2.2,1999年六月,提供了更广泛的硬件支持,并很好的提升了SMP的效能。
Linux2.4,2001年六月,提供了可伸缩性的SMP支持(不懂?),并集成了很多“桌面”特性,如USB/PCMCIA/即插即用等等。
Linux2.6将有更大的跳跃,同时完美提供对更大型和更小型系统的支持。
*多平台支持
基于Linux内核的操作系统一个最大的长处就是提供了最广泛硬件体系的支持。从版本1.2开始,每一个新的内核都包括了新硬件的支持。2.6自然也不会打破这一优良传统。这不仅不会影响Linux在原有Intel硬件上性能的发挥,而且有利于Linux广泛的可用性。
*“小麻雀”-为嵌入式系统做准备的Linux
前面说到的,2.6将再次扩展所支持的硬件体系。这次将做的是把uCLinux计划引入主流的内核。uCLinux(u->Greek character "谬")是一个把Linux移植于单片机上的计划。多年来,这个Linux分支开做了很多嵌入式芯片的支持,把她引入主流正是大势所趋。
不像其它的Linux平台,嵌入系统通常不具备常规Linux支持硬件的全部特性。一个主要的差异在于很多此类系统没有完整的MMU(而在IA中,内存管理机构在80386时就被引入)。由此可能造成程序间会相互干扰;原用于除了交换分区的系统调用被屏蔽;以及不在适合用于多用户方案等等。
目前已知的有四个嵌入式处理器将被2.6支持。首先是Moto的m68k系列。该系列的还曾被命名为Dragonball、ColdFire,并由Moto、Lineo等公司开发。很多用户对此非常熟悉,因为Palm PilotsI~III也基于此。其它的几个平台包括日立H8/300系列,NEC v850等。
或许v2.6不太可能过于重视对这些体系的支持。所有以前的Linux版本,均(也许是间接)起源于Linus's那台也有自身限制的Intel80386。这样看,一些其它的陈旧设备也将被支持(确实,已经有项目在做了)。不同于对目前主流嵌入式系统的开发,对这些老设备的支持被看作是计算机爱好者们的目标,对终端用户(甚至是内核)的用处不会太大。
尽管技术上的原因uCLinux没有被合并,最近的一个Linux仍然支持了Axis Communications's 的ETRAX CRIS(精简指令机器)。在2.4.0是它已经被考虑,但最终没有被放入以后的版本。
*Opteron支持:给普通消费者的64位Linux
这里特别指出一个最新被支持的芯片:AMD Opteron(基于AMD64构架)。这款新的芯片提供对Intel芯片的向后兼容。但是还不知道他能否抗击Intel的安腾成为事实上的64位标准。
(没看明白这段什么意思
While later editions of the 2.4 kernel did support running on this
processor, there were limitations preventing it from being ready for
production use. Most critical for high-end uses may be that applications
were individually limited to 512 MB of RAM each. Additionally, support
for running x86 (32-bit) binaries on the platform has been improved.
)
*虚拟派生构架支持(这个西西实在太强了,不会翻译:Subarchitechture)
在版本2.6中,除了引进了新的处理器构架,还包括了一个称为虚拟派生构架的概念。以前,Linux默认的把处理机类型和硬件体系混为一谈。举例说来i386处理机就只能在PC/AT上使用。在2.4中,这条规矩被“SGI虚拟工作站”打破了,这允许那个无关的平台工作在Intel芯片上。2.6最大的改进在于,这个概念被进一步强化,使得所有的构架在人们需要的时候都可以变得看上去没有区别了。
这一标准立刻带来了两个支持i386的新平台。一个是NCR的Voyager构架。这是一个SMP系统(在Intel MP之前)可以支持最大32个486-686处理器,当然可能实际使用时并没有这么多。 另一个使用更广泛些:NEC的PC9800-曾经一度支配着小日本的PC构架。最早的PC9800使用8086处理机并最终变的和AT一样成熟。
通过一系列的形式化工作,Linux将更容易地支持这些“大体相同”的硬件。但是这也不是万能的。能够使用虚拟派生构架的原因是在底层(如IRQ)系统的差异非常小。而类似Linux for XBox的实现则不能用这个。
*永远的计算动力:NUMA、大型机
新的Linux内核当然也提供了对越来越大的服务器级机器的支持(一些是IA,另一些则不是)。尽管对于Linux来说这发面还有很多优化的工作要做,但是看着Linux在相关领域内快速的发展,我们有理由期待Linux将成为一个有力的竞争对手。
在这个领域内最最大的变化就是Linux刚刚支持的NUMA服务。NUMA是在多处理机系统中较SMP跨越了一大步的技术。SMP系统的一个限制就是多个处理机只能共享一个存储器池。这将造成极大的性能瓶颈。NUMA引进了一个新的概念:对于一个特定的处理机,将比其它处理机更容易地访问到它周围的内存。一种可能不太专业的描述,在你的系统中包含许多扩展卡,而每张卡上都包含CPU、内存、I/O等,卡间可以通讯。很容易想象,CPU在访问本卡上的内存时,要比访问其它卡上的速度快。NUMA可以看成是一种强耦合的集群系统。
……to be continued... thx, go on. hehe, 看俺来翻译:
While later editions of the 2.4 kernel did support running on this
processor, there were limitations preventing it from being ready for
production use. Most critical for high-end uses may be that applications
were individually limited to 512 MB of RAM each. Additionally, support
for running x86 (32-bit) binaries on the platform has been improved.
尽管2.4后期的版本支持Opteron, 还是存在一些限制使其(2.4+Opteron)不能产
品化. 对于高端用户来说, 最严重的限制是每个用户程序能使用的内存最多只能有512M. 另外, 2.6改善了对Opteron运行32bitX86机器代码的支持.
页:
[1]