内部设备总线

位于系统底层的总线几乎与处理器同样重要;这些总线就像胶合剂,将系统的各个部件连到一起。在PC世界中,这些总线一直是不可或缺的,无论是老的ISA(在最初的IBM PC机中可以找到)总线,还是现在的外部串口以及无线(wireless)总线。一旦新的总线及设备变成流行的消费产品,Linux总是能以很快的速度去适应它;而对于不很流行的设备,情况则差很多。

一个能说明这一情况的例子就是ISA总线的PnP(即插即用)特性,Linux直到2.4版本才支持ISA总线的即插即用扩展,比其他流行的商业操作系统要晚很多(在内核支持ISA PnP之前,你或许可以勉强使用一些用户态的实用程序使它工作)。Linux 2.6对这个子系统做了一个重要的改进,使它更完善、更好地集成于新的设备模型之中。新特性包括完整的PnP BIOS支持、设备名称数据库以及一些其他的使系统更加健壮的特性。这些改进的结果,是使得Linux成为一个真正意义上的即插即用操作系统,并且可以被设置成就像那些兼容机的BIOS达到的那样。

ISA时代ISA-PnP的两个可选的替代方案是MCA(微通道体系)和EISA(扩展ISA),尽管它们不那么流行。在Linux2.6的开发周期中,这两个子系统都做了一些改进以支持新的设备模型。此外,通过引入设备名称数据库,EISA与其他子系统一起获得了更进一步的标准化。

除了刚才提到的几个重要特性,Linux对硬件总线的支持也做了许多其它值得关注的改变。PCI总线是所有总线中最流行也是最重要的总线,Linux 2.6极大地提升了对它的支持,包括改进的热插拔和电源管理支持。新版本同样也支持包含多个AGP总线(即加速图形端口――基于PCI协议的一种独立高速总线)的系统,如高端图形工作站。就对PC硬件的支持而言,Linux紧紧跟随着硬件市场的潮流。

除了这些实际的设备总线,Linux2.6也增加了一个概念上的Legacy总线。这种总线对每种体系结构都是专有的,这些体系结构包含所有你可能想到的设备。例如,在一台PC机上,可能会有板上(on-board)的串口、并口、以及PS/2端口,这些设备实际存在着,但不被系统中的任何一个实际总线所枚举(enumerated)。在其他的一些平台上,这种Legacy支持可能包含更复杂的事情(如查询固件)。但一般来说,这只是一层包装,使得设备驱动程序在新的驱动模型视图下能以标准的方式操作这些设备。

外部总线

虽然早先的设备标准成熟并鲜有新的特性增加,但USB是一个例外。USB的支持在最近的内核开发周期中有了许多改进,其中最为显著的是新内核将支持USB 2.0设备。USB2.0是一种新的标准,支持设备带宽高达480M bps(当前的USB只有12Mbps)。支持此标准的设备通常被称作高速USB设备,它们正逐步占领市场。另外一个新的相关标准叫做USB On-the-Go(或称作USB OTG),它是USB协议中一个点到点的变种,用以直连设备;Linux 2.6尚未支持它(2.6的补丁是可以支持的)。除了设备支持外,多数USB设备的枚举方式都作了修正,使得Linux能访问现今许多同类型设备的所有实例(instance)。这一点对于大型打印机或存储设备来说相当有益(虽然后者可能更倾向于使用专用存储总线)。很明显,这一领域的技术最近几年成长显著,Linux对相关设备的支持也是紧跟市场的步伐。

无线设备

过去的几年,无线技术在公众应用中真正起飞了。看起来,在不远的将来,线缆(非电源)将成为历史。无线设备既包括网络设备(目前最常见的无线设备),也包括更通用的设备,比如PDA。

在无线网络空间中,设备可以大致分为长距(如基于业余无线设备的AX.25)和短距(通常是802.11,但一些旧式协议也存在)。从很早的时候(v1.2)起,对这两者的支持就成为 Linux的一个特征。在 2.6 的开发中,它们又都得到了更新。这里最大的改动是,用于支持各种板卡、协议的短距子系统的主要组件合并为一个单一的"无线"子系统以及 API。通过提供一组能工作于所有支持的设备的用户空间工具来实现不同的设备统一处理。这种方式解决了原先的不同设备不同处理所带来的很多小的兼容性问题。除了这种标准化之外,Linux 2.6版内核还有很多全局性的改进,包括当状态发生改变(比如一个处于"漫游"状态的设备)时更好的通知能力,以及对旨在更好地处理无线设备中周期性的延迟波动的一个TCP相关的改动。由于人们对2.4版内核中无线支持的期望,上述的很多特性已经包含在2.4版内核中了。

在无线设备空间,有着类似的主要改进。IrDA(以 Infrared Data Associates group命名的红外线协议)部分自上一主要发布以来有一些改进,比如电源管理、集成进了新的内核驱动模型。真正的改进还在于提供了对蓝牙设备的支持。蓝牙是一种新的无线协议,它设计为短距,功耗很低,也没有 IrDA 中的"视线"的限制。作为一种协议,蓝牙被设计为"到处可用"。它已被应用于多种设备,如 PDA,移动电话,打印机,以及更为怪异(bizarre)的设备如车载设备。协议本身由两种不同的数据连接类型组成:用于有损音频应用的SCO(Synchronous Connection Oriented,面向同步连接);以及可以支持重传等更为强壮的连接L2CAP(Logical Link Control and Adaptation Protocal,逻辑连接控制和适配协议)。L2CAP 还进一步的支持各种子协议,包括用于点对点网络的 RFCOMM 以及用于类以太网的 BNEP。Linux对采用蓝牙技术的设备的支持在不断提升,我们可以相信,当足够多的采用蓝牙技术的设备被使用时,这种支持将会非常成熟。值得一提的是,对蓝牙最初的支持已经集成到了2.4系列内核后几个版本中。


相关内容