现在,在嵌入式产品、普通PC、笔记本电脑、服务器的身上都能看到Linux的身影。具有广泛的硬件适应性已经成为Linux技术发展的必然趋势。试想一个不支持多媒体和拨号上网的计算机,如何让家庭用户使用?硬件适配对于操作系统的重要性由此可略见一斑。对于Linux操作系统尤其如此,因为它几乎覆盖了从低端到高端的所有产品,需要管理更多的硬件设备。只有更好地支持各种嵌入式设备,小企鹅才能在众多数字产品中畅游;只有更好地支持层出不穷的PC机硬件及其外设,小企鹅才能成为家庭数码信息港的主人;只有更好地支持功能强大的高端设备,小企鹅才能在各种网络化平台中大显身手。
既然硬件的适配对于Linux操作系统如此重要,那么它现在支持的情况如何呢?
Linux硬件适配现状
Linux操作系统硬件适配方面发展很快。这是Linux支持者共同努力的结果。在1998年安装Linux操作系统时,更多的是字符方式安装。安装完成后进入系统能够启动X-Window是件激动人心的事情。这是显卡支持欠佳造成的结果。那时用内置Modem上网也几乎是不可能的事情,需要专业级发烧友,还得是特定型号的Modem。当然,这都是几年前的事情了,现在Linux对家庭用户要求的显卡、声卡、Modem一般都支持得很好,对于网卡的支持更是Linux的强项。现在,中软Linux的新版本在打印机支持方面更有杰出的表现(如图1、图2)。
Linux的硬件支持主要有以下几个来源:
一是核心组织提供的Kernel包中自带的硬件支持驱动。这包括大部分的通用硬件,如鼠标、键盘、硬盘、光驱、网卡、声卡、SCSI卡、RAID卡、USB设备、1394设备、蓝牙设备、红外设备等。核心中也包含显卡的驱动,但是一般只用来显示字符。
二是相关的软件开发组织,其中重要的有X的开发组织和ALSA(Advance Linux Sound Architecture),现在Linux上的图形显示就是利用X-Window开发组织提供的XFree86及其相关软件。XFree86中包含很多显卡的驱动。ALSA顾名思义是开发声卡驱动的组织,其开发的alsa-driver及相关软件对Linux上的声卡驱动做出了突出贡献。
三是专门开发驱动的商业机构。Linux上的东西不是什么都可以免费下载的,也有一些专门开发硬件驱动的商业机构,如OSS以前是免费提供声卡驱动下载的,但是现在需要交费。
四是硬件厂商。随着Linux的发展,越来越多的硬件厂商在开发基于Linux操作系统的驱动程序。例如如Intel、SmartLink等公司为内置Modem主芯片提供了驱动,MYSON公司为其网卡芯片提供了驱动,这些都可以从相关厂商的网站上下载。
五是Linux系统发行商,如中软网络在其发行的中软Linux中加入了对指纹仪和手写笔的支持。
厂商对硬件适配的努力
要在Linux系统中实现硬件适配的方便易用,仅有硬件的驱动程序是远远不够的,还需要有功能强大的硬件自动探测软件和美观易用的配置工具。中软Linux操作系统就采用了这样的硬件适配策略——自动探测与手动配置相结合的方法。对于常见的硬件勿需麻烦用户,系统即可给出最佳的配置;而对于某些特殊硬件,用户掌握着配置的自主权。中软Linux系统的硬件适配分三个阶段进行,分别是安装、第一次启动和正常运行。系统在安装过程中,对于计算机的网卡(如图3所示)、硬盘、光驱、键盘、鼠标、显卡、显示器等,都能自动的给出合理配置。第一次启动中软Linux系统,进入图形界面后系统会提示自动探测到的新硬件,显示网卡(如图4所示)、声卡、显卡、Modem等的配置界面,给用户选择优化驱动的机会。进入中软Linux系统,用户还可根据实际的需要,按自己的要求对硬件设备进行配置。这时用户点击主选单上的“设置→控制面板”(如图5所示)启动控制面板界面(如图6所示),就可以看到各种硬件的配置工具图标。用户对硬件进行配置只需要双击相应的硬件配置图标进入配置程序就可以了(如图7)。
为了能够支持尽可能多的硬件,在中软Linux系统开发的过程中,有专门的硬件驱动小组负责搜集、测试、整理和开发各种硬件的驱动程序,为各种类型的硬件分类建立了驱动库。当中包括核心自带的网卡、声卡、硬盘、光驱、鼠标、键盘等的驱动模块,有硬件厂商和第三方开发的Modem、声卡等驱动模块,也有XFree86中对显卡支持的驱动模块。他们还在系统中加入了指纹识别等驱动模块。
方便易用是桌面Linux追求的目标之一,中软Linux 4.0系统中硬件的图形化配置工具集中体现了这一点。所有的硬件配置工具都采用简单明了的图形界面、通俗易懂的提示语言,简便快捷的配置步骤。在人性化的用户交互界面背后,忠实的执行着用户命令,准确无误的生成相关系统配置文件。
虽然Linux对硬件的支持较之以前有很大进步,但是也应该清醒地看到现在Linux系统对一些新兴的硬件支持并不好,比如数码相机、数码摄像机、5.1声道声卡、USB光驱、USB移动硬盘等,对新一代的笔记本支持也存在某些问题。因此不断地丰富Linux上的硬件驱动成了众多Linux支持者的责任。
完善硬件适配的方法与思路
在谈完善Linux系统硬件支持的方法之前,先让我们来看一下Linux系统上硬件支持的技术实现。Linux系统的硬件适配由驱动程序库、硬件描述列表、硬件探测工具、图形化配置工具等组成。硬件自动适配的步骤如图8所示。
硬件的手动配置,分两种情况:一是配置工具读取硬件描述列表中的相关内容并显示出来供用户选择,配置工具根据用户的选择执行相应命令,启动驱动程序库中相应硬件的驱动,这是一种半自动方式;二是配置工具提供界面,用户填写硬件在驱动库中所需的驱动名称和启动此驱动程序的命令,或者没有任何配置工具,用户手工执行驱动某硬件所需的命令,这是完全的手工配置方式。从发展的角度来看,硬件适配最终应完全实现系统的自动化配置,手工配置只是目前的权宜之计。从硬件配置的过程可以得出这样的结论:即硬件驱动程序库和硬件描述列表是实现硬件自动化配置的基石,自动配置工具最终完成对硬件的适配。因此丰富Linux的硬件支持主要是不断扩容硬件驱动库,同时在硬件描述列表中增加相应的内容。
硬件驱动程序的开发需要硬件厂商提供相应接口信息。这就要求Linux的开发者与众多硬件厂商合作,针对出品的每一款硬件编写驱动程序,然后在Linux系统上进行严格测试,形成硬件型号与驱动对应的列表添加到系统的硬件描述表中。硬件描述列表是硬件与驱动程序之间的桥梁,在硬件探测工具探测到具体的硬件型号后,系统采用硬件驱动列表中指定的驱动程序对硬件进行驱动。在一款硬件有多个驱动程序的时候,须进行大量的对比测试,详细地比较各个驱动在不同应用软件运行时的性能,选择最优的驱动。
对于Linux操作系统的发行商来说,对于某个版本推出后出品的新硬件,需要在网站上提供相应的驱动,以支持新硬件,方便老用户的使用。
在Linux上不断的开发方便易用的应用软件,也是间接增加硬件支持的一个思路,这适用于同类硬件中已经有Linux支持的硬件。例如Linux上已经支持了很多款Modem,芯片生产厂商考虑到自身利益,自然会积极的开发基于Linux系统的驱动程序以扩大市场份额。
Linux硬件适配的展望
Linux硬件适配不是对某款硬件支持与否的问题,应该从系统的角度全面的考虑硬件与应用软件的完美结合,方便易用地解决硬件适配的问题,最终形成一系列的解决方案推向用户。最终用户需要的是能够解决业务中存在的问题、提高工作效率的整套解决方案,他们关心的并不是Linux是否支持某款芯片。因此我们在解决硬件适配问题时,需要注意到相应的软件是否已经成熟,应用环境是否具备,这样我们所做的工作才能真正的服务于社会,Linux社区也会从中受益,并继续完善Linux系统本身。
总之,硬件总是推陈出新的,Linux也是与时俱进的。随着时间的推移,众多Linux支持者的不断努力,桌面Linux必将能够在信息化领域中畅通无阻地遨游。