升级Linux硬件驱动结构

豆豆网   技术应用频道   2007年03月05日  【字号: 收藏本文

本文详细介绍升级Linux硬件驱动结构

  硬件驱动程序是界于硬件和Linux内核之间的软件接口,是一种低级的、专用于某一硬件的软件组件。这种软件组件可以使硬件与更普遍的高级应用程序接口产生互动。为某一具体的子系统或硬件端口(例如SCSI、USB或PCMCIA)提供支持,不同于为所有SCSI、USB或PCMCIA硬件设备提供支持。由于新的硬件每天都在产生,因此测试每一个可能用于某一具体子系统的硬件是不可能的。内核只为具体的一些子系统提供支持,硬件驱动程序也只是为使用这些子系统具体的某些硬件提供支持。新内核保持高级应用程序接口与低级硬件功能的分离。用户可以通过编写合适的硬件驱动程序或修改内核,更容易地为现有系统增加对新硬件的支持。

  Linux硬件驱动可以通过两种方式集成到内核中:一是将其直接编译进行内核从而一劳永逸;二是将其编写成一种目标格式,在需要添加某种硬件时,内核可以将其调入。当用户对Linux内核进行设置时,每个内核设置编译器都可显示各个可用内核设置变量的描述信息,从而使用户决定哪个变量要被消除,哪个需要写入内核,还有哪个可以编写成一种可加载内核模块。

  直接将硬件驱动程序写入内核优点在于,用户可以随时对它进行调用而无需安装。但是这样大大增加内核占用的空间。将硬件驱动程序编写成一种可加载的内核模块,虽然会因为寻找驱动模块而增加系统资源的占用和运行时间,但是与庞大的内核所消耗的资源相比显得微不足道。将硬件驱动程序编写成一种可加载的内核模块,还可为软件开发提供许多便利。当用户需要对某一硬件驱动程序进行开发或纠错时,用户可以动态地卸载旧的版本并加载新的版本,但是如果用户的驱动程序已写入内核,那么必须对内核进行重新编写,并且每次对修改后的程序进行测试时,都必须重新启动系统。另外,将硬件驱动程序视为可加载的内核模块进行开发和配置,这样用户就可以将硬件驱动程序作为一种独立的系统进行升级,而不必对内核进行改动了。

作者:冯立功    责编:豆豆技术应用

正在加载评论...