Linux 版 (精华区)

发信人: howdoit (教练让我上场!!!), 信区: Linux
标  题: Linux2.2的缤纷世界
发信站: 哈工大紫丁香 (Tue May 18 09:02:37 1999), 转信

《Linux公报》……让Linux更富魅力!

A Linux Journal Review: This is an updated version of an

article which appeared in the December 1998 issue of Linux

Journal. 

           Linux 2.2 的缤纷世界

                   By Joseph Pranevich  翻译:张立

    漫长的等待已经结束,Kernel 2.2.0终于和大家见面了。直到现

在,还没有哪个(Linux的)发行版宣布将何时(随其版本一道)发布

2.2.x的核心,但是合理的估计是今年三月份主流供应商将发布

2.2.x。这篇文章旨在描述这个具有里程碑意义的2.2.x核心的新增特

性。 

    请注意这篇文章没有包括Linux支持所有新硬件。许多设备,如扫

描仪和打印机只在用户端进行处理。其它的设备,如显示卡和鼠标,

则是被用户端与核心结合的驱动程序来处理的。如果你没有在本文的

列表中找到赶兴趣的设备类型,很可能Linux 2.2也支持它们,只是没

有必要用核心来处理罢了。 

1) 芯片 

    假如你没有更好的选择的话,Intel的芯片是一种快速的值得选用

的CPU。Merced、赛扬、MMX等标识出了Intel的领先技术。而AMD、

Cyrix和其它的公司也已成为市场中的有力竞争者。各自有不同的优

势、特色和缺陷。 

    Linux 2.2将是第一个支持多种非Intel处理器并拥有核心配置工

具的稳定版Linux。也许更重要的是Linux 2.2包含有对于广泛存在的

处理器错误进行除错的工具,包括声名狼藉的F00F奔腾(Pentium)臭

虫。其它的臭虫还不能处理,如AMD K6的sig 11臭虫。 

    Merced还未交货而且近期也不大可能完成,但是Linux 2.2已经移

植到Sparc64、Alpha和其它64位平台,所以64位核心的(系统)结构已

经实现。(当然,在发布Linux/Merced之前还有很多困难需要克服,但

是实现64位核心支持是重要的一步。)  较之Linux 2.0,多路处理器

的机器操作效率会大大提高(global spinlock已删除)。它支持高达16

个处理器(同Linux 2.0一样),所不同的是它的性能令人惊诧!还有,

现在对基于Intel的IO-APIC实现了更好的支持,这使对称多处理(SMP)

系统的表现更佳。你可以直接借助核心配置工具就可以对多路处理器

进行设定。 

    Linux 2.2改善了对大量工作站系统的支持,如Sparc、Sparc64和

Alpha机器。至于桌面系统,它已经移植到Motorola的m68K和PPC处理

器,而且有望运行在大量这种平台上,包括苹果机(Macintosh)。

Linux也正在转至如ARM (用于越来越流行的嵌入系统) 这样的处理

器。 

    对于8086、8088、80186、80286机器的Linux核心子集的支持工作

仍在进行。这个项目不会和总体核心(Linux-proper)开发混同,但是

它能为这些机器提供一个可选择的Linux子集(Linux-subset)操作系

统。 

    在内存消耗方面,平均来说安装Linux 2.2要比Linux 2.0需求更

多的内存。(尽管大量的组建可以模块化,或者将其编译出去以便系统

管理员在内存紧张的情况下灵活处理。) 关于实现文本(text-only)系

统可操作性的最低限度到底应该是多少的争论是存在的,不过在多数

情况下它是可以在只拥有4兆内存的情形下运行的(建议8兆)。乐观的

看,Linux 2.2包括一系列的优化功能,这会提高至少拥有16兆内存的

机器的运行表现。当然,内存越多越好。 

2) 系统总线家族 

    尽管不是那么至关重要和先进,Linux 2.2将支持绝大部分现存的

x86计算机,还完全支持可以在PS/2和更老的机器上找到的微通道

(Microchannel)总线。 

    另外,除了对系统总线的大量增补(包括许多新的PCI设备),它还

做了很大的改进。特别是PCI子系统,正经历着重要的更新。首先,

PCI设备报告接口有了改善,简化了新信息域(information fields)的

增加。这个变化对最终用户来说看不出什么区别,但是它使开发者的

工作更简化和顺利了。加之,它现在使你可以选择用兼容的PCI基本输

入输出系统(BIOS) 或是通过直接通路(direct access)来扫描PCI总

线。这允许Linux2.2在很多机器上运行,解决了PCI的BIOS与标准不兼

容而引起的启动问题。 

    不幸的是,核心对即插即用ISA设备的支持还是非常有限的。不

过,幸运的是在用户级有isapnp工具来安装调试PnP设备,只是稍微麻

烦一点,而后我们就可以在Linux下把要办的事做好。 

    便携式电脑和许多工作站可以从改进的电源管理系统中受益,包

括对一些不兼容的BIOS进行处理的工作区。而且,2.2拥有在多处理器

系统上部分利用高级电源管理的(APM)基本输入输出系统功能的能力。

  

3) IDE、SCSI和USB 

    Linux的IDE没有十分明显的变化。最明显的变化就是可以象SCSI

一样将IDE子系统以模块方式装载和卸载。(同时允许使用即插即用的

IDE控制器。)对于较落后的机器,升级了的IDE驱动程序支持较老的

MFM、RLL磁盘和控制器,并且是在不用装载老版本驱动程序的情况下

实现的。Linux 2.2现在能够自动地检测和配置基于PCI的IDE插卡,还

包括激活直接存储器地址(DMA)总线控制来减少CPU的开销并提高性

能。它也为众多不同的或有错误的控制器开发了许多驱动程序。 

    并行端口的IDE设备变得越来越普遍而且现在得到了Linux 2.2的

支持。即使是现在还未被支持的许多设备,也会逐渐在2.2发展的进程

中的得以实现。

 

    SCSI子系统的主要进展是增加了许多新插卡和芯片组的驱动。实

在太多了,无法在这里一一列出。 

    标准的Linux 2.2还没能支持PCMCIA适配器(或称作PC卡插槽),但

是它被外部模块提供商所支持。所以,即使没有在核心中被支持,

PCMCIA的支持仍可以从发行商那里得到。 

    IRDA的支持已经增加到这次核心的升级中了,但是还没能支持众

多的控制器,所以不象其它的特性一样成熟、可用。 

    唉,有个不太好的消息。那就是,虽然对USB的支持做了许多努

力,它没能赶上这次Linux 2.2的发布。(USB的支持可以通过象PCMCIA

那样的外部资源得到。) 

4) 端口:并口和串口 

    在这方面没有什么新鲜的,因为Linux一直对这些基本的组件提供

了相当好的支持。并行端口的驱动程序在考虑了跨平台问题的前提下

被重写了,因此过去仅仅称作"并行端口"而现在是"PC结构的并行端口

"(强化了功能)。唯一明显的变化是你可以毫不费力地以多种设备驱动

程序来共享单个并口。(注意:过去对并口的命名习惯有所改变,所以

你可能会遇到lp1变成lp0的情况。) 

    以前,串口设备如调制解调器(modem)涉及了两个设备,一个是调

入(call-in)一个是调出(call-out) (分别为ttyS和cua)。对于Linux

2.2,这两个被组合成一个设备(ttyS),而且访问cua设备会对核心记

录(kernel log)发送一条警示信息。Linux 2.2包括对多于4个串口的

支持,它允许串口设备共享中断,并且它包含一系列用于非标准端口

和多端口插卡的驱动程序。我对其唯一不满的地方是:缺乏通过

modules.conf文件和kmod,用标准方法载入模块的时候向模块传递设

备参数的支持。(取而代之的是,这些参数用setserial命令来设定,

有些令人生厌。) 

    Linux 2.2还将支持通用异步收发器(UART)芯片,在使用新的调制

解调器时能得到更高的传输速率。 

5) CD-ROMs、软驱和可移动介质 

    上百种大杂烩式的CD-ROM标准被隐含在ATAPI CD-ROM的"标准"

中。这使得开发者有时间完全重写CD-ROM驱动程序,使它们更加标准

化。个别驱动程序之间的小而微妙的差别已经被修复,能够更好地被

支持。可擦写CD-ROM还没有被支持。SCSI CD-ROM则支持得很好。 

    软驱同以往一样工作得很出色。大容量软驱方面也有所进展,但

还有待于进一步开发。许多通过ATAPI进行通信的这些设备在某种程度

上已经得到了支持。 

    IOMEGA的Zip驱动器在Linux 2.2下得到了相当不错的支持。这个

驱动器有三个版本:SCSI、ATAPI(IDE)和并口。在SCSI和ATAPI下,对

它支持如同对其它磁盘一样。并口版本实际上是用一种

SCSI-over-Parallel的协议来实现的。(其它的IOMEGA解决方案比如

DITTO驱动器可以用ftape驱动来得到支持。) 

    ATAPI的DVD驱动器在某种程度上已经被支持了。(SCSI的DVD驱动

器还没有得到支持,不过它们可以用SCSI CD-ROM的驱动程序良好的运

行。)不幸的是,这不等于说DVD在Linux世界中前途一片光明。因为现

下Linux还不能支持DVD的文件系统,而且也没有用户可用的工具来欣

赏DVD电影。当其标准稳定下来以后,很可能它会被增加到Linux核心

的2.2.x发展进程中来。 

    在Linux 2.2下,其它的可移动介质可能被或不被支持。如果该设

备由并口进行连接,它也许能通过核心包括的某种并口IDE设备协议模

块来得到支持。 

6) 绚丽的音效 

    声音代码被部分重写以便使其自始至终完全模块化。使得我们可

以轻松地加载和配置音响设备。(特别是那些令人厌烦的即插即用设

备。)许多新的音响设备也得到了支持,而且看起来这是Linux下一年

将要真正改善的一个领域。  

    一个值得注意的缺陷是对于PC机内部扬声器缺乏支持,这仅仅是

基于完整性的考虑。况且,Windows 95/98也未做到这一点。 

7) Linux的视频 

    Linux 2.2对越来越多的TV卡、广播调谐器插卡和数字摄象机的支

持令人十分惊喜。它在2.1的支持名单的基础上又增加了不少,以我个

人的拙见,Linux在这个领域中应大展宏图。 

8) 备份 

    Linux 2.2的备份和磁带设备子系统自2.0发布以来没有很大的改

观。更多的设备驱动程序已经写成,当然在备份设备方面还是有重要

的改进的,它们用来代替软盘(包括IOMEGA DITTO)。 

    可擦写CD-ROM逐渐成为备份数据的普遍解决方案,这在Linux 2.2

下也是能被支持的。但是,仍有许多重要问题亟待解决。(请看上文有

关CD-ROM的论述) 

9) 游戏棒、鼠标和输入设备 

    游戏棒在Linux 2.2中得到了更好的支持,而且包括众多新的类型

和带有不规则按扭的游戏棒。很可能你的游戏棒在Linux 2.2下可以运

用自如。 

    2.2中的鼠标和2.0中的没有什么真正的变化。(在2.0下,鼠标的

支持有些不相容。很大程度上,鼠标的控制是由核心外部的deamon后

台程序提供的。一些鼠标驱动是在仿真标准的微软鼠标。其中的缘由

十分明显。)有必要注意的是,虽然这不是单独的核心问题,微软的

(spinning wheel extension)鼠标在最近版本的XFree86(Linux最普遍

的图形用户界面)中得到了支持。(然而,众多的Linux应用程序不是为

利用spinning wheel extension鼠标这一特性而设计的。) 

    另外,其它的输入设备现在也被Linux 2.2所支持,其中包括数字

化仪。假如你的设备正仿真一个鼠标(许多人这么做),那么它已经被

Linux 2.2正确支持了(实际上Linux 2.0也是这样)。 

10) 视频 

    也许,Linux 2.2核心版本最令人喜出望外和先进的就是所谓的"

帧缓冲控制台"驱动('frame-buffer console' driver)了(或缩写为

'fbcon')。 

    先前,Linux核心(基于Intel的机器)只能理解和操作文本模式的

视频设备。而图形的支持由另外两个系统提供:'svgalib'用于基于控

制台的图形和专门的X服务器用于基于窗口的图形。这种组合系统经常

要求配置信息的重复,而且每个系统仅支持众多视频设备中有限的一

小部分。 

    因为这次的(核心)升级还很新,所以有待于观察它是否替换了以

前的二元性设计。Linux 2.2发布后,在新系统足够健壮以支持我们已

经想当然可以使用的插卡和技术以前,可能要经过一年的时间。我个

人认为这是个正确、合理的想法,但我对它的意见会有所保留,直到

我们看到Linus和开发者们决定在多大程度上支持这一特性。 

    作为这一新特性的副产品(side-effect),一些设备的基本多重报

头(primitive multi-heading)已加入到核心中了。当前,对于一些文

本模式的输出来说这是有限制的,但是估计这个对核心新增的事物将

会在2.2.x和2.3.x的发展周期中逐渐成熟。 

    如今,核心对"虚拟(virtual)"终端的支持可以被取消。这使得对

内存十分敏感的用户能够节省些资源。 

    尽管对桌面系统的用户来说是不可思议的,Linux现在可以在实际

上不包括任何视频设备的系统上工作得更好。除了可以通过串口或网

络连线进行登录以外,如Linux 2.0和先前版本的Linux允许的那样,

如今可以把核心的信息(通常在任何硬件被启动之前直接发送到控制

台)重定向到串口设备。 

11) 网络:以太网、ISDN和低端的调制解调器 

    我在这些方面没有太多的实践经验;这些年来,我一直在我所有

的机器上用相同的网卡。然而,以太网和ISDN设备的支持数量大大地

增加了,我还被告之在Linux 2.2中新兴的方案例如电缆调制解调器也

得到了支持。 

    唯一令我苦恼的是它仍然不支持所谓的"Windows调制解调器

"(Winmodems)。我并不是要抱怨Linux,只是我内心的理想主义倾向希

望有一天这些可怕的东西也能象它们的同胞们那样得到支持。 

12) 业余的无线电爱好者也是Linux爱好者 

    从早于Linux 2.0开始,Linux就是这样一种为数不多的操作系

统,它包括对基于计算机的业余无线电爱好者的内在支持。(实际上我

并不知道那需要些什么,但是看起来它是在美国以外很流行的一个选

件。)Linux 2.2增加了NetROM和ROSE业余无线电协议(amateur radio

protocol)。基本的AX.25层也得到了本质性的增强。 

13) 文件系统 

    Linux 2.2拥有广泛的新文件系统和适于互操作的分区类型。另

外,许多Linux支持的文件系统(包括我在此列出的那些)已经用新的缓

寸系统进行了升级,以便改善其性能。 

    对于微软阵营,Linux可以读取NTFS(Windows NT)驱动器和

Windows 98的FAT32驱动器(FAT32也为Windows 95的后期版本所用)。

Linux 2.2也能识别微软用于CD-ROM上的Joliet系统的长文件名(译

注:译者在Kernel 2.0.36<Red Hat>下可以正确读取用ISO

9660/Joliet格式刻录的光盘的长文件名)。Linux还可以识别微软发明

的扩展分区的新类型。用于读、写微软的压缩驱动器和栈式存储器

(Stacker)压缩驱动器的驱动程序正在开发阶段,但未包括在这个核心

中。允许对NTFS同时进行读操作和写操作的工作仍在进行中,但这一

支持尚处在实验阶段。 

    至于苹果机(Mac)的连通,允许读、写Mac磁盘的HFS驱动程序已经

包含在内。而HFS+和MFS(古老的软盘格式)则不在此列。苹果机的分区

表可以被核心读取;这使得Mac SCSI磁盘可以被装载(mount)进来。 

    但是,可惜的是OS/2的用户仍然不能写入他(她)们的HPFS驱动

器。为了支持新的'dcache'系统,已经对HPFS驱动进行了升级,但是

还未能完成象一些人期望的那样的彻底修整。核心之外的,为支持

读、写操作而进行的驱动程序开发工作正在继续,但这些变化不包含

在起初的2.2.0发布中。 

    如果有Amiga(一种多媒体计算机的商标)用户,他(她)们会乐意得

知自Linux 2.0以来FFS驱动程序正经历着不断地升级。尤其是当新一

代的PPC Amigas将继续支持这一格式时,这就显得十分有用。

 

    关于同其它UNIX的互通性,Linux 2.2迎来了突飞猛进的发展。

Linux 2.2仍然包含了用于BSD派生系统的UFS文件系统,其中有

Solaris(译注:太阳微<Sun>的UNIX)和BSD的免费版本。Linux 2.2现

下可以读取FreeBSD、SunOS和Solaris的分区表格式。就SysV风格的

UNIX而言,Linux 2.2 对SysVFS版本进行了稍许升级。Linux 2.2还可

以读取Acorn的RiscOS磁盘。最后,Linux 2.2还就持久盛行的Minix文

件系统进行了稍许升级,它可以在绝大多数UNIX系统上使用小型的驱

动器和软驱。拥有这么多的不兼容的格式(Linux 2.2可以读取其中这

么多的格式),而任何人都可以完成这么多工作,真是太奇妙了。 

    为了有利于"二代扩展(second extended)"文件系统,对"扩展

(extended)"文件系统的支持被已经被取消了。(这不会给多数人造成

麻烦,'ext2'比其前任文件系统要高级许多。)随着对初始ramdisk(数

量)的支持的增长,'romfs'被创造出来并只占用最小的系统开销。 

    Linux 2.2提供了对跨磁盘的文件系统增强了的透明支持。现在,

这种支持可以用在RAID 0、1、4、5模式和简单线性模式下。 

14) 网络(二): 

    在协议端,发生了许多变化以致于我还不能完全理解。下一代的

Internet协议,IPv6,开始初见端倪。还有SPX,它是IPX新的补充。

DDP,它是AppleTalk网络的可选协议,也得以改进。正如你所盼望的

那样,现存的协议都有所改善。我只希望能有使用这些协议的需要(或

机会)。 

    在低端,没有很大的变化。PPP、SLIP、CSLIP和PLIP仍然可以使

用。我猜想它们不需要太多地改进。(尽管这些驱动多少都进行了些升

级。) 

    Linux 2.2将有一个非常出色的网络内核、新的隧道编码、被称为

'ipchains'的全新的防火墙和路由系统、支持带宽消耗限制等等。我

真希望能明白所有的这些。 

    值得注意的是文件和打印共享协议也被显著地增强和改善了。

SMB,用于访问基于Windows的共享文件系统的协议,被除去了臭虫。

如果你是NetWare的发烧友,你会高兴地得知Linux 2.2在这方面进行

了大规模的改进,其中包括访问两种不同类别的NCP长文件名。可信赖

的NFS同样有所改善,在服务器端和客户端都是这样。最后,这些高手

们正(向CMU方面--over at CMU)艰辛地开发着新型的分布式网络文件

系统,叫做Coda。该文件系统支持众多呼声很高的特性,包括便携式

电脑的分离运作、高级缓寸系统和安全系统的改进。 

    Linux 2.2还包含了一个驱动程序,它允许你通过网络共享(和远

程装载--remotely mount)整个磁盘映射。 

15) 不是所有人都说英语 

    Linux 2.0是一个非常国际化的操作系统,它支持国际键盘。

Linux 2.2增加了其它的国际化特性,它能装载一些微软/统一的字符

编码标准(Micorsoft/UNICODE)的编码页(codepages),这是为了使文

件名能转化到Linux本地(Linux native)系统。(那是UTF8,统一的字

符编码标准的另一种编码形式。)现下,使用这种转化方式的文件系统

只有微软的VFAT和微软的Joliet ISO 9660(CD-ROM文件系统)扩展系

统。 

16) Unix 98:下一代 

    Linux 2.2在很多方面将成为更"标准"的UNIX。对于最终用户来

说,最明显的一点是用新的文件系统和克隆的设备(驱动)来增加

UNIX98风格的Pty设备,以提供其功能。 

17) 结尾 

    下面是许多无法分类而又值得一提的内容。 所以,接下来就不分

次序地介绍一下Linux 2.2在其它方面的升级: 

    返还驱动(loopback driver),它允许磁盘映射象普通的驱动器一

样被装载和控制,在很多方面得到了改进。其中最显要的改进是用户

得到了更强的加密技术支持,而且可装载加了密的磁盘与磁盘映射。 

    Linux 2.2还提供了访问计算机CMOS存储器的驱动程序,这可能对

某些应用程序是很有用的。(可惜的是,类似的可访问BIOS闪寸的驱动

程序还没有提供,仍需要用DOS软盘来升级BIOS的版本。) 

    在过去,Linux使用叫做'kerneld'的半用户/半核心

(half-user/half-kernel)的方法来加载和卸载驱动程序(此驱动程序

称为"模块")。这个方法是好的,但是效率较低。Linux 2.2删除了

kerneld,取而代之的是更小巧的"全部核心(all-kernel)"方案叫做

'kmod'。 

  

This is the 'revised millennium penguin' version of this

document (1/26/99) and is really just a minor update over the

last three final versions. Linux 2.2 is out now, so obviously

no new features will be added and I should be safe. 

As always, I can be reached at jpranevich@lycos.com. 

Thank you, and Good Night. 

Joseph Pranevich 

  


--
☆ 来源:.哈工大紫丁香 bbs.hit.edu.cn.[FROM: bin@mtlab.hit.edu.cn]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:206.742毫秒