荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: georgehill (人生不定式), 信区: Linux
标  题: 【中文版】LINUX 2.4的美妙世界 (转载)
发信站: BBS 荔园晨风站 (Sun Sep 24 08:26:45 2000), 站内信件

【 以下文字转载自 georgehill 的信箱 】
【 原文由 georgehill.bbs@smth.org 所发表 】
发信人: rover (Eggplant), 信区: FreeDevelop
标  题: 【中文版】LINUX 2.4的美妙世界 (转载)
发信站: BBS 水木清华站 (Wed Aug  2 22:17:02 2000)



LINUX 2.4的美妙世界


原文:http://linuxtoday.com/story.php3?sn=10698
作者:Joe Pranevich
译者:Axis*


LINUX2.2相对于2.0是一个巨大的进步。它支持了许多新的文件系统类型,使用了
全新的文件名缓存机制,而且大幅度提高了在多CPU系统上的伸缩性。LINUX2.4会
百尺竿头更进一步,成为更加适合桌面应用、服务器应用和嵌入式应用的平台。目
前,LINUX内核开发者希望能尽快地将2.4送到最终用户手中,因此可以理解,2.4
与2.2之间的差别不会向2.2与2。0之间那样大。不过,读完了本文之后,我相信你
会同意,2.4的进步同样引人注目。(否则我还写这文章干什么呢?)

2.4是指LINUX内核的版本。内核是LINUX(或GNU/LINUX)操作系统的核心,但内核
本身也可以划分成核心部分和非核心部分。任何操作系统都必须包括一组相关的设
备驱动程序,但LI NUX远不止于此。调度器、资源分配器、虚拟文件系统层、内存
管理还有一些其他的无名战士,它们是LINUX世界的真正英雄。是这些东西定义了
LINUX之所以成为LINUX。在任何LINUX 支持的硬件平台上,从i386(Intel兼容PC
),到ARM(嵌入设备),到Sparc64(高端服务器)这些代码都是一致的。从许多
方面看,LINUX2.4的“心脏”与LINUX2.2还是有所不同的,而上文列举的一些子系
统也有或多或少的改变。

LINUX2.2与更早的版本使用一种比较粗糙的基本资源管理系统,以分配和跟踪IO端
口,IRQ以及其他计算机中的稀有资源。不幸,在一些重要的方面--对当今的桌
面操作系统来说至关重要--这一系统力不从心。LINUX2.4下,新的系统使用了一
种高度概括,适应性很强的实现方式。它允许将资源分级分组,摆脱了以前对预定
义资源类型的依赖,同时也使驱动模块开发所需的大多数工作得到了简化。此外,
它也是ISA即插即用支持的基础,下文将会详述。这个Linus 灵机一动的结果,也
许是2.4内核中影响最深远的一个变化。(译注:也许我是多此一举,但如果你还
不清楚的话,Linus是Linux的创始人。Linux=Linus的 UNIX。)

虚拟文件系统层(VFS)也有重大改变。在LINUX2.2时,VFS曾有很大的进步,使缓
存更佳,整体效率大增。然而,LINUX2.2中的虚拟文件系统层依然遗留着一些重要
的限制,有待2.4的解决。其中一个限制是,2.2保留了两个用于文件缓存的缓冲区
,一个读一个写(page cache和buffer cache)。你可以想象,这使内核开发者们
的工作十分复杂,每次编程都得保证 两个缓存之间的同步时,就象在手术室里带
无菌消毒手套一样。LINUX2.4完全超越了这一障碍,把两个缓存合而为一。这项改
变,使LINUX2.4效率更高,使代码更容易理解,而且用于缓存的内存可以大致减半
。在重写代码的过程中 ,还消除了许多竞争状况(race condition,多个进程/线
程修改同一个未经保护的变量,形成竞争。),精简了代码,从而能在高端系统上
获取更好的伸缩性,而且在牵涉多个文件系统时加速了磁盘写操作。

LINUX2.2在高端系统上的一个普遍问题是对进程/线程数的限制。(译注,LINUX中
用户线程与内核线程是一一对应的,和大多数商业UNIX不同。

详见: http://pauillac.inria.fr/~xleroy/Linuxthreads)
LINUX2.2缺省只允许1024个进程/线程同时运行(译注:修改源代码,可达4096个
)。高端系统同时要服务上千的用户,所以这显然是一个问题--它一度是阻碍
LINUX进入企业级市场的一大因素。LINUX2.4消除了这个限制,并且允许在系统运
行中动态调整进程数上限。因此,进程数现在只受制于物理内存的多少。在高端服
务器上,即使只安装了512M内存,现在也能轻而易举地同时支持1万6千个进程。有
其他用户报告,说在他们的系统上运行的进程/线程数更加多。

在内存消耗方面,LINUX2.4增加了一些新的子系统,精简了一些旧的子系统,删除
了一些过时的代码,总的结果是和2.2的内存消耗基本相同。在某些情况下甚至比
2.2消耗更少的内存!值得注意的是,LINUX2.4能够支持更大的内存。在Intel体系
的系统上,LINUX2.4最多能支持到到4 G。

二进制文件类型

LINUX内核中一个经常被忽视的部分是程序加载器,它负责定位可执行程序,把程
序正确地加载到内存,然后运行之。许多人不知道LINUX还支持一种“misc.”二进
制加载器。它是一个灵活的模块,使你能象在Windows中那样,把二进制文件和“
HELPER”应用关联起来。例如,它可以让你把所有Windows程序和WINE(Windows模
拟器)关联起来,然后只要一打“./notepa d.exe”就行。(不过,一般来说,把
所有的事情都交给内核也太走极端了,未必是个好主意。 比如,一打“
/etc/passwd”就弹出个编辑器,就不怎么妙。Windows提供的许多关联功能交给文
件管理器就行。)许多人认为这项功能是一大进步,允许WINE和DOSEMU(DOS模拟
器)的运行更为透明。

通过按需起动JAVA解释器/编译器,LINUX2.2和2.0支持直接运行JAVA程序。Linux
是第一种在内核层提供这种支持的操作系统。运行JAVA应用时,JAVA二进制加载器
会运行JAVA解释器/ 编译器,并提供恰当的参数。自然,使用新的“misc.”加载
器实现这个功能会更简单,LINUX 2.2已经提供了有关的说明。2.4中会取消对旧加
载模块的支持。

尽管2.2是要求内核必须编译成ELF格式的第一个LINUX版本,但LINUX2.4会更加依
赖于ELF执行程序格式。(ELF是一种先进的执行程序格式,支持多个代码段和数据
段,更方便的动态链接库调用和其他特性。大致上与WIN32格式相当,但设计更完
善。)利用ELF格式的优势,内核开发者们可以使一些代码更加模块化,更加易于
维护。许多种的驱动模块会更加“即插即用 ”,因为不需要在核心代码中显式初
始化它们,内核连接的方式就可以决定初始化的方式。

此外,LINUX2.4中还有别的重大改进,有必要在深入到各个子系统之前先作说明。
LINUX2.4 引入了POSIX的时钟和定时器,允许用非实时时钟的设备同步系统时间,
因此在一定程度上更加遵循标准。网络文件系统(NFS),是大多数UNIX上的标准
网络文件共享方式。2.4已经支持了NFS版本3的绝大多数特性(下面有关文件系统
的部分会展开讨论)。此外,线程模式也作了小范围调整,以提高兼容性。

千面LINUX

尽管LINUX操作系统的心脏是上述的基础架构,但最终用户最关心的,还是与具体
系统相关的那些部分。LINUX的“手足”包括所有与处理器相关或无关的的驱动代
码,它们控制处理器、磁盘驱动器、端口以提供计算机功能的其他一切硬件。本文
主要集中讨论i386上的Linux,因为这是作者最熟悉的平台。自LINUX2.2发行以来
,所有平台上的移植版都取得了长足的进步,可惜我对它们大多没有个人经验。从
目前来说,2.4比2.2只多一种平台(SuperH),不过2.4发行时可能还有增加。

在Intel兼容的硬件上,LINUX2.4会对2.2已经支持的处理器提供同样优秀的支持,
包括针对386 ,486,586(奔腾)和686(奔腾PRO/奔腾II/奔腾III/赛扬)和
AMD/Cyrix兼容处理器的优化。但2.4会包括对新芯片硬件的额外支持。LINUX2.2支
持Intel的内存类型范围寄存器(Memory Type Range Register,MTRR)以提升高
带宽设备的性能(如AGP显示卡);但2.4会进而同时 支持AMD K7和Cyrix的MCR提
供的同类功能。LINUX2.2支持IO-APIC(高级可编程中断控 制器),允许中断处理
由多个处理器分担;2.4会更上一层楼,支持内置多个IO-APIC的高端系统,进一
步提高伸缩性。

Linux 2.4与Merced(IA64)

尽管大家翘首以待的IA64处理器尚未面世,但Intel的准备工作早已紧锣密鼓了。
因为芯片还没有上市,LINUX2.4现在不直接支持Merced芯片。但有好几个小组在工
作,以保证芯片面世后, LINUX立刻就可以在上面运行。毫无疑问,目前LINUX本
身对64位芯片的支持,(Alpha和UltraSparc 支持是源代码的一部分)大大简化了
移植工作。这意味着,保证64位LINUX能在Merced 上运行的许多工作,如保证内核
的核心部分和模块不依赖于32位的字长和存储方式,都已经完成了相当一段时间了


我不希望暗示大家,LINUX在64位系统上运行已经不存在任何问题,那不是事实。
不过,绝大多数的困难和微妙之处都已经解决,剩下的问题都是以前遗留的。(
all that remains are problems derived from a legacy world.)

LINUX2.4与386之前的Intel芯片

有趣的是,不少人向我询问LINUX对386之前的Intel芯片的支持。至少目前的回答
是:查无此物。一个姐妹项目,ELKS(可嵌入LINUX子集)正致力于为这些硬件开
发一个类LINUX的操作系统,并在硬件支持的前提下提供保护模式。但是,这个开
发项目并不属于LINUX,所以也不在本文讨论范围之内。

总线--ISA,PCI,USB,MCA,等等等等

处理器只是计算机的一小部分。同样主要的是总线结构。总线负责连接(或者不负
责地连接)内部和外部设备。到目前为止,LINUX2.4并没有怎样改动已支持总线的
内部工作机制,包括ISA, EISA,VLB,PCI和MCA,只是清除BUG和融入新的资源模
式。这方面的一个好消息是ISA 即插即用的实现终于在内核层实现了。将来,这会
允许PNP设备无须任何附加的配置工具就可以使用,也就是真正的即插即用。

这方面还有更令人振奋的消息。USB,一种新的外部总线类型,支持鼠标、键盘、
声卡和扫描仪这样的外部设备,也即将被内核支持。本文写作时,支持还没有到
100%,许多的USB设备还没有得到支持。但我相信LINUX支持的设备只会与日俱增
,就象帧缓冲设备一样。帧缓冲设备是LINUX2.2引入的一项特性,见下文。目前,
鼠标和键盘的工作基本尽如人意,声卡的支持在迅速发展。其他设备,如MODEM和
网卡已经有初步的支持,但驱动程序还不完整。

除USB之外,LINUX2.4也支持I2O设备(智能输入输出),一种PCI的扩展。从理论
上说,这会促进更多与操作系统无关的设备和驱动程序的产生。许多I2O设备已经
在LINUX下正常运行,LINUX2.4发行前会支持更多。

PCMCIA(笔记本电脑中风行的半外部式总线)支持将会成为标准内核的一部分。
PCMCIA的用户再也无需下载安装特殊的源代码了。

LINUX与ISA即插即用

我曾经一遍又一遍地听到这样的问题:“LINUX何时会支持即插即用?”。这问题
本身可以有几种理解,而LINUX支持某些即插即用(如PCI)已经好几年了。ISA即
插即用是ISA总线标准的一个超集,一度让许多LINUX用户头痛。我高兴地宣布,
LINUX2.4终于会直接支持和自动配置PNP设备了。不过,本文成文时,还有许多设
备的驱动模块还没有作相应的调整。

块设备--磁盘驱动器、RAID控制卡等

对大多数用户来说,LINUX中本质上有三种不同的设备:块设备、字符设备和网络
设备。我们会依次讨论。

简单地说,块设备就是这样的设备,其存储的数据能被表示成可分别访问的小块。
用更专业化一些的方式来说,块设备就是支持随机存取的设备;它允许用户搜寻到
设备上任一角落然后进行读写(这种定义也在一定程度上简化了。)块设备的一般
例子是硬盘、软盘、RAM盘、任何可以想象为“盘”的东西。如果某个设备有些特
别的功能,例如能够EJECT,这些功能将由ioct ls(I/O Controls,I/O控制)实
现,任何特权足够的程序都可以调用。LINUX2.2已经支持大多数 在企业中和桌面
上普遍使用的存储设备类型,包括RAID控制卡,IDE和SCSI硬盘,还有其他许多设
备。LINUX2.4会在几个重要的方面继续提高。

IDE是今天的PC上使用最广泛的硬盘类型。每个IDE控制卡支持两个独立的盘(可以
是硬盘、光驱等),每个盘在LINUX里表现为独立的块设备。LINUX2.4在这方面的
进展是把单个系统支持的IDE控制器数从2.2的4个增加到10个,支持的IDE盘数也相
应加到20个,DVD和CD- ROM的换盘机(译注:DVD/CD-ROM Changer,支持三碟联放
之类的功能)也得到了更好 的支持。 使LINUX完全透明地支持可写CD和DVD的工作
还在进行之中,有可能赶不上2.4的 发行。目前,对这些设备的支持还限于只读的
,但可以把预先准备好的IMAGE直接拷贝到CD或 DVD上。最后,LINUX2.4能够支持
许多新芯片组的Ultra-DMA功能,并且绕开一些旧硬件中的BUG。

LINUX2.4的SCSI子系统也有进步,主要是又增加了新的控制卡。尽管大家长期等待
的SCSI系统重写没有发生,但对代码的大清理已在进行。

“裸I/O”是一个从商业UNIX传到LINUX里的概念。对一个裸设备的访问不经过缓冲
,访问动作立即生效,而且内存里的数据总与物理盘上的数据保持一致。这一功能
在企业级应用中大有用武之地,因为它允许在系统发生故障时,对那些超级重要的
数据提供更强的保护。同时,许多数据库软件认为自己能比主机的文件系统更高效
地处理缓存问题,因此也使用这一功能。从前这一概念之所以没有得到实施,是因
为商业UNIX没有一种伸缩性强的方法来分配和访问这些设备,它们要求每个块设备
都有相应的裸设备。经过长时间的考虑和许多被否决的建议,最后决定建立一个裸
设备节点的池,其中每个节点都可以与任意一个块设备关联。这样我们可以需要多
少裸设备,就分配多少个节点。

块设备可以有许多应用。使用块设备的最普遍方式是加载上面的文件系统。(在内
核内部,文件系统代码就叠在块设备驱动模块之上)。当然,文件系统在所有的
LINUX支持的平台上都可以用,不仅限是i386的LINUX。

LINUX2.4包括了2.2里的所有文件系统:FAT(MSDOS),VFAT(Windows 9x),
NTFS (WindowsNT),HFS(Macintosh)和许许多多的其他文件系统。为支持新的
页面缓存系统,所有这些文件系统都或多或少地重写过,有的经历过大手术,也由
此得到了性能提高。事情不好的一面是,专为2.2编译的二进制文件系统模块会无
法工作。(在驱动模块层,LINUX不向下兼容。一般源码公开的模块会很快更新,
而二进制模块的提供商或者也快速更新,或者开放源码。)

一些用户会注意到与某些操作系统兼容性的大改善。OS/2用户终于可以在LINUX下
写他们的硬盘了。可惜NT用户还没有那样的奢侈,除非他们愿意使用一个“实验性
”的驱动程序--在特殊情况下可能造成文件系统破坏。2.4会增强与其他UNIX的
兼容性。一个关键性突破是将支持SGI 的IRIX上的xfs文件系统以及IRIX磁盘标记
格式(分区表)。另外,由于支持了CDROM上的 UFS,对NEXTSTEP的支持也会改善


通过SMB(Server Message Block protocol)使用WINDOWS文件的用户应该会高兴
, 因为不会再有编译选项让他们选是否要绕过Win9x的BUG了。现在,LINUX会自动
检测要连接的文件系统,有必要的话自动使用针对Win9x的解决办法。这使LINUX在
异种操作系统共存的环境下吸引力大增。(上面说的只是作为SMB的客户机,服务
器的功能可以由广泛使用的SAMBA软件包承担。)

对许多LINUX用户来说,共享其他UNIX系统的文件尤为重要。LINUX2.4将首次支持
NFS版本3的协议。版本3包括了许多方面的改进,是企业用户对LINUX要求得最多的
一个特性。

LINUX2.4还是缺少了一些东西。例如,目前还没有日志式的文件系统。由于日志式
文件系统较短的文件系统检查时间和数据恢复的简便程度,许多人认为这是企业级
系统的一个入门功能。(译注:这里作者可能有误。上文提到的IRIX xfs就是一种
高性能的日志文件系统,但不知 2.4发行时会不会认为是LINUX的NATIVE文件系统
。另外,ext3,目前LINUX缺省文件系统ext2的后继者,会支持日志功能,而且完
全向下兼容。目前ext3正在BETA,有兴趣者可以到 ftp://ftp.uk.Linux.
org/pub/Linux/sct/fs/jfs/下载。)Macintosh上的HFS+,HFS的后继者尚未被支
持。还有DVD上用的UDF,也没有支持。大家都希望这些功能可以集成到2.4,但代
码冻结(code freeze,除了消灭BUG以外不改代码,以便测试的开发阶段)就在眼
前。

帧缓冲

另一种更为复杂的块设备是帧缓冲。帧缓冲只是显示内存在虚拟内存中的表现形式
。读写这块内存,屏幕上像素的颜色就会变化。因为帧缓冲支持通过ioctl改变调
色板以及其他的视频功能,因此比其他的块设备复杂。(也可以“格式化”这种设
备,并且建立和加载文件系统,不过我不推荐任何人这样做。)

2.4包括了一些新的驱动程序、增强了一些旧的驱动程序。现在,尽管Linux的帧缓
冲未必性能最佳,未必支持所有的模式,但至少可以支持许多种“标准”的显卡。
请记住这一功能可以不启用,在i386上,只有除此之外别无他法支持显卡的人才需
要。(译注:帧缓冲本来就是工作站上的概念)现在,Xfree比内核支持的显示卡
多得多,所以用X一般不需要内核支持。(SVG Alib与其他的库函数允许直接处理
被支持的硬件,但使用它们必须谨慎,否则会有安全问题。)

字符设备-键盘、鼠标、主控台和端口

下一类LINUX能够识别的设备是字符设备。字符设备在存取时没有“位置”的概念
,也无法不按顺序访问,这类设备包括终端、端口、鼠标、键盘以及其他你可以想
到的东西。LINUX2.4在这方面也有进展。

最大的新闻当然是对USB鼠标和键盘的支持。一插上USB总线,这些设备就可以和传
统的鼠标键盘一样使用。另外,LINUX现在能够运行在更多的系统上,包括那些有
缺陷,BIOS不能初始化键盘的机器。而且,对不接键盘的机器也加强了支持。(主
要是对付那些没有键盘就无法工作的问题机器)

所有版本的LINUX输出到屏幕都是用字符模式,尽管看起来并非如此。(LINUX通过
内置的扩展VT100终端接口来控制光标的定位,其实现方法是嵌入一个很小的文本
模式帧缓冲设备)如果使用的是帧缓冲设备而不是传统的文本模式,那么LINUX2.
2会在帧缓冲设备上再重叠一层终端驱动模块,取得和传统文本模式相当或更好的
效果。

LINUX2.4对这个子系统并没有作太大的调整,但它首次支持了把主控台(CONSOLE
,内核信息显示的主要渠道)重定向到并行口,以便接打印机输出。(早些版本的
LINUX就允许把主控台重定向到串行口。)这一功能主要为那些需要得到内核信息
或其他调试信息的硬拷贝的开发人员或者服务器应用而设。

当然,LINUX如果不能完美地支持各种端口,那也走不了多远。端口可以说是字符
设备最纯粹的形式,主要分串行口和并行口两种。

LINUX2.4的串行口支持并没有多大改变,2.2遗留下来的大多限制依旧存在。(特
别是串行口模块的选项,无法在模块调用时用参数改变这些选项,必须用外部的工
具)。2.2的晚期版本和 2.4允许同一块PCI多用户卡上的串行口共享IRQ,以前只
支持ISA卡或者主板上的串行口共享IR Q。一些其他的多用户卡也会得到更好的支
持,而且新驱动模块和旧模块的升级总是源源不断加入LINUX。

相比之下,并行口子系统在2.2的基础上经历了一番巨变。现在已经有了一个普遍
的并行口驱动模块,能同特性未明的并行口设备进行抽象的通信。举例来说,轮询
并行口设备PNP功能的程序就可以利用它。另外,LINUX2.4支持使用新并行口的所
有传输模式,包括在硬件支持时利用 DMA写并行口,这样能够加速对打印机和并行
口硬盘的访问。

红外线设备的支持大有进展,包括更好的红外网络支持。 在另一个战线,支持所
谓“WinMODEM”,或者说软猫的工作做得并不多。这些MODEM的功能大部分由软件
完成,而且生产厂商一般只提供WINDOWS下的驱动程序,由此得名。尽管到目前为
止支持这类设备的代码还没有递交给Linus,但在3.0发行之前它们还是有可能见天
日的。这方面主要的障碍是每种WINMODEM都各不相同,一种WINMODEM驱动程序基本
不可能驱动另一种WINMODEM,而市场上这类产品又多如牛毛。不过,开放源码软件
的黑客们经常做不可思议的事情,所以如果哪一天内核代码中加了哪种WINMODEM,
我也不会奇怪。事实上,大部分的基础工作已经完成了。

当然,在某些方面LINUX2.4 还有进步的余地。USB上可以连接多套键盘和鼠标 但
LINUX2.4对此没有内置支持,你无法把一套键盘鼠标设成一个终端,把另一套键盘
鼠标设成另一个终端。这些功能可以由GGI开发项目支持。GGI为LINUX内核提供专
门的多头控制和帧缓冲支持,不过GGI还没有同主源码发行版同步,甚至有可能一
直作为Linux外围的开发项目。如果你需要这样的功能,GGI应该值得一试。(译注
:在图形界面下,Metro-X商业软件能够支持多头控制,未来版本的Xfree86也能
支持。)

可访问性

一般不认为LINUX是“用户友好”的操作系统。因此,大家如果听说LINUX2.4和2.
2的一些较晚的版本支持语音合成卡,也许会觉得奇怪。这些语音合成卡允许用户
用耳朵听LINUX的所有输出,包括系统起动早期的信息。很少有操作系统在内核层
具备如此完整的支持。如果要完全发挥这些卡的功能,还需要一些其他的补丁和工
具,但内核本身集成驱动程序,是LINUX向正确方向迈出的一大步。

多媒体:声音,电视,无线电广播等

复杂的字符设备就比较有趣了。LINUX在向桌面平台的发展过程中,花了大力气支
持这样的设备,包括声卡、电视卡、无线电广播卡、还有其他的音频和视频输出设
备。说老实话,LINUX 2.4在这方面还没有什么突破性的进展。但2。4还是支持了
许多新的声卡和视频卡,特别是提高了对全双工支持的水平。LINUX2.4还有代码能
够简化某些设备在特定地址范围内获取内存,从而大大简化了一些声卡的配置。

网络和网络协议

网络互联和网络硬件是LINUX历来的强项之一。这些玩意儿既不是字符设备,也不
是块设备,它们无须专门的设备节点(或者说设备文件)。LINUX2.4在这一方面会
有很大的提高,包括新的驱动模块,BUG的补救,还有给现存的驱动模块添加新功
能。

LINUX网络套接字实现的模式是UNIX下的普遍标准。可惜,这标准本身存在着一些
缺陷。不过还好,弥补这些缺陷用不着全盘把标准推翻。在LINUX2.2和之前的版本
中,如果有一组进程都在等待网络套接字上的一个事件(比如一组WEB服务器进程
),一旦事件发生,所有进程都会被唤醒。因此,LINUX每收到一个WEB请求,都会
唤醒一组进程,其中每个都会试图响应W EB请求。显然,多个服务器进程服务一个
请求没有意义,所以得到请求的只会是一个,所有其他的进程继续休眠。这在操作
系统理论中称雷电效应(Thundering Herd Effect / Stampede Effect ,一群羊
安静地躺着午睡,突然之间晴空霹雳。。。)LINUX早己把休眠-唤醒-休眠的过
程(Context Switch)尽量优化了,但显然这还是不够高效。LINUX2.4的做法是,
如果事件 发生,只唤醒 一个进程(Wake One)。这可以提高Apache这类应用的效
率,使LINUX更适合 WEB服务器的角色。

同时,LINUX2.4的网络层是完全另起炉灶重写的。首先,新的网络层尽可能地实行
并行处理,因此其伸缩性比起以前的版本,不可同日而语。其次,它包括了许多的
优化,以便绕过不少流行操作系统网络实现中的不合理处(例如Windows)。这里
有必要指出,到目前为止,LINUX 是唯一与IPV4(译注:就是目前因特网使用的
TCP/IP协议版本)协议标准完全保持兼容的操作系统,而LINUX2.4的IPV4伸缩性又
大有提高。不过,为保证兼容标准,以前定义IP别名的冒号格式(eth0:0)会在
2.4中取消,一些高级用户可能得改写他们的SHELL脚本了。

下一个重大突破是对DECNet协议的支持,这允许Linux更好地与一些
Digital/Compaq的小型机,如VMS通信。

对于低档桌面系统的用户,PPP是日常生活的一个重要组成部分。Linux2.4对PPP代
码进行了大范围的重写和模块化工作,现在ISDN上的同步PPP和串行口MODEM上的异
步PPP已经合而为一了。

作为结束语,我个人觉得Linux2.4可能会被称为“桌面LINUX”,因为它的桌面功
能有如此显著的提高。我也知道,一定会有人不同意这样的说法,因为服务器或嵌
入式应用,也同样会从 Linux2.4获益良多。不过,只要Linux在不断地迅速发展,
这些说法都无关紧要。

如果作者有误,请email jpranevich@Linuxtoday.com。

如果译者有误,请email axisx@poboxes.com,请不要用HZ编码。


*版权声明:本文由夏昊先生译自linuxtoday.com,转载/发表请与夏昊直接联系.



------------------------------------------------------------------------
--------


Copyright 1999,China Linux Forum


--
梦后楼台高锁,酒醒帘幕低垂
去年春恨却来时,落花人独立,微雨燕双飞

记得小苹初见,两重心字罗衣
琵琶弦上说相思,当时明月在,曾照彩云归

※ 来源:·BBS 水木清华站 smth.org·[FROM: 162.105.16.253]
--
※ 转载:·BBS 荔园晨风站 bbs.szu.edu.cn·[FROM: 192.168.1.115]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店