从理论上讲,所有的 硬件设备都需要安装相应的驱动 程序才能正常工作。但像CPU、 内存主板软驱、键盘、 显示器等设备却并不需要安装驱动 程序也可以正常工作,而 显卡声卡网卡等却一定要安装驱动程序,否则便无法正常工作。这是为什么呢?


这主要是由于这些 硬件对于一台个人电脑来说是必需的,所以早期的设计人员将这些硬件列为BIOS能直接支持的硬件。换句话说,上述 硬件安装后就可以被BIOS和 操作系统直接支持,不再需要安装驱动程序。从这个角度来说,BIOS也是一种驱动 程序。但是对于其他的 硬件,例如: 网卡,声卡, 显卡等等 却必须要安装驱动 程序,不然这些硬件就无法正常工作。


当然,也并非所有驱动 程序都是对实际的 硬件进行操作的,有的驱动程序只是 辅助系统的运行,如android中的有些驱动程序提供辅助 操作系统的功能,这些驱动不是 linux系统的标准驱动,如ashmen,binder等。

驱动 程序(Device Driver)全称为“ 设备驱动程序”,是一种可以使 计算机和设备通信的特殊程序,可以说相当于 硬件的接口, 操作系统只能通过这个接口,才能控制硬件设备的工作,假如某设备的驱动程序未能正确安装,便不能正常工作。

bios驱动软件开发实践 bios 主板驱动_字符设备

惠普显卡驱动安装

正因为这个原因,驱动

程序在系统中的所占的地位十分重要,一般当

操作系统安装完毕后,首要的便是安装

硬件设备的驱动程序。不过,大多数情况下,我们并不需要安装所有

硬件设备的驱动程序,例如

硬盘

显示器

光驱、键盘、鼠标等就不需要安装驱动程序,而显卡、

声卡、扫描仪、

摄像头、Modem等就需要安装驱动程序。另外,不同版本的

操作系统

硬件设备的支持也是不同的,一般情况下版本越高所支持的

硬件设备也越多,例如笔者使用了Windows XP,装好系统后一个驱动

程序也不用安装。



设备驱动程序用来将硬件本身的功能告诉 操作系统,完成硬件设备电子信号与操作系统及 软件的高级 编程语言之间的互相翻译。当 操作系统需要使用某个 硬件时,比如:让 声卡播放音乐,它会先发送相应指令到 声卡驱动 程序,声卡驱动程序接收到后,马上将其翻译成声卡才能听懂的电子信号 命令,从而让声卡播放音乐。



所以简单的说,驱动 程序提供了 硬件操作系统的一个接口以及协调二者之间的关系,而因为驱动程序有如此重要的作用,所以人们都称“驱动 程序是硬件的灵魂”、“硬件的主宰”,同时驱动程序也被形象的称为“硬件和系统之间的桥梁”。

bios驱动软件开发实践 bios 主板驱动_bios驱动软件开发实践_02

戴尔电脑驱动盘

驱动

程序即添加到

操作系统中的一小块

代码,其中包含有关

硬件设备的信息。有了此信息,

计算机就可以与设备进行通信。驱动

程序

硬件厂商根据

操作系统编写的配置文件,可以说没有驱动

程序

计算机中的硬件就无法工作。

操作系统不同,

硬件的驱动

程序也不同,各个硬件厂商为了保证硬件的

兼容性及增强硬件的功能会不断地升级驱动程序。如:Nvidia

显卡芯片公司平均每个月会升级

显卡驱动程序2-3次。驱动程序是

硬件的一部分,当你安装新硬件时,驱动程序是一项不可或缺的重要元件。凡是安装一个原本不属于你电脑中的

硬件设备时,系统就会要求你安装驱动

程序,将新的硬件与

电脑系统连接起来。驱动

程序扮演沟通的角色,把

硬件的功能告诉电脑系统,并且也将系统的指令传达给硬件,让它开始工作。



当你在安装新 硬件时总会被要求放入“这种硬件的驱动 程序”,很多人这时就开始头痛。不是找不到驱动 程序的盘片,就是找不到文件的位置,或是根本不知道什么是驱动 程序。比如安装 打印机这类的 硬件外设,并不是把连接线接上就算完成,如果你这时候开始使用,系统会告诉你,找不到驱动程序。怎么办呢?参照说明书也未必就能顺利安装。其实在安装方面还是有一定的惯例与通则可寻的,这些都可以帮你做到无障碍安装。



Windows系统中,需要安装 主板光驱显卡声卡等一套完整的驱动 程序。如果你需要外接别的 硬件设备,则还要安装相应的驱动 程序,如:外接游戏硬件要安装手柄、方向盘、摇杆、跳舞毯等的驱动程序,外接打印机要安装 打印机驱动程序,上网或接入 局域网要安装 网卡、Moden甚至ISDN、ADSL的驱动程序。说了这么多的驱动 程序,你是否有一点头痛了。下面就介绍Windows系统中各种的不同 硬件设备的驱动 程序,希望能让你拨云见日。



在Windows 9x下,驱动 程序按照其提供的 硬件支持可以分为: 声卡驱动程序、 显卡驱动程序、鼠标驱动程序、 主板驱动程序、网络 设备驱动程序、打印机驱动程序、扫描仪驱动程序等等。为什么没有CPU、 内存驱动 程序呢?因为CPU和内存无需驱动程序便可使用,不仅如此,绝大多数键盘、鼠标、 硬盘软驱显示器和主板上的标准设备都可以用Windows自带的标准驱动程序来驱动,当然其它特定功能除外。如果你需要在Windows系统中的DOS 模式下使用 光驱,那么还需要在DOS模式下安装光驱驱动 程序。多数显卡、声卡、 网卡等内置扩展卡和打印机、扫描仪、外置Modem等外设都需要安装与设备型号相符的驱动 程序,否则无法发挥其部分或全部功能。驱动 程序一般可通过三种途径得到,一是购买的 硬件附带有驱动程序;二是Windows系统自带有大量驱动程序;三是从Internet下载驱动程序。最后一种途径往往能够得到最新的驱动 程序



Windows 9x使用的驱动 程序包通常由一些。vxd(或.386)、。drv、.sys、。dll或.exe等文件组成,在安装过程中,大部分文件都会被拷贝到“Windows\ System” 目录下。



编辑本段开发



驱动 程序的开发工作是很具挑战性的,因为必须配合着 硬件软件上相当明确与高级的平台技术。由于大多数的驱动 程序(device drivers)运行在内核 模式(kernel mode), 软件的错误经常造成系统严重的不稳定,例如蓝屏(blue screen),这跟过去的用户模式(user mode)下的 程序设计(例如Delphi、VB、Java)有明显的差异性。



驱动开发的原理与步骤:1,明白你手头的 硬件工作原理,包括处理器架构的知识,还有外设控制器的 datasheet 为必读之物;2,假如你们要开发的整个系统是裸机 程序,那你要开发的驱动程序就是一套和硬件打交道的函数库;但是假如你们计划在产品中使用一个 操作系统,那开发驱动之前就需要熟悉这个操作系统的相关内部操作原理,因为你写的是驱动程序需要很好的“镶嵌”到这个操作系统的环境中去。



编辑本段微软平台



为了大量减轻驱动 程序开发人员的负担, 微软不断的改进驱动程序的开发 软件与架构,从早期复杂深晦的VxD,到Windows XP上的Windows Driver Model(以下简称WDM)开发架构,如今Windows Driver Foundation(以下简称WDF)已成为新一代的Windows平台驱动程序发展架构,这个架构大量简化了驱动程序的开发流程,更符合 面向对象的精神,此架构包含了UserMode Driver Framework 与Kernel Mode DriverFramework两种开发 模式。在开发Windows平台上的驱动 程序之前,必须先安装DDK包,目前DDK最新版本为5600,同时支持WDM与WDF两种架构。



编辑本段Unix平台



Linux作为UNIX的一个变种,继承了UNIX的设备管理方法,将所有的设备是具体的文件,通过文件系统层对设备进行访问。这种设备管理方法可以很好地做到“设备无关性”,可以根据 硬件外设的更新进行方便的扩展。



Linux中的设备大致可以分为三类: 字符设备块设备网络设备



字符设备没有 缓冲区,以 字节为单位顺序处理数据,不支持随机读写。常见的字符设备如普通打印机、系统的串口、 终端显示器嵌入式设备中的简单按键、 手写板等。



块设备是指在输入输出时数据处理以块为单位的设备,一般都采用 缓冲技术,支持数据的随机读写。典型的 块设备硬盘光驱等。



字符设备和 块设备面向的上一层是文件系统层。对用户来说, 块设备和字符设备的访问接口都是一组基于文件的 系统调用,如read, write等。



网络设备块设备和字符设备不同,网络设备面向的上一层是 网络协议层。设备文件是一个唯一的名字(如eth0),在文件系统中不存在对应的节点项。 内核和网络驱动 程序之间的通信使用的是一套和 数据包传输相关的函数,而不是read, write等。



每一个设备都有一对主设备号、次设备号的 参数作为唯一的标识。主设备号标识设备对应的驱动 程序;次设备号用来区分具体驱动程序的实例。主设备号的获取可以通过动态分配或指定的方式。在 嵌入式系统中外设较少,一般采用指定的方式。



编辑本段安装顺序



驱动 程序安装的一般顺序: 主板芯片组(Chipset)→ 显卡(VGA)→ 声卡(Audio)→ 网卡(LAN)→ 无线网卡(Wireless LAN)→红外线(IR)→ 触控板(Touchpad)→PCMCIA控制器(PCMCIA)→ 读卡器(Flash Media Reader)→ 调制解调器(Modem)→其它(如 电视卡、CDMA上网 适配器等等)。不按顺序安装很有可能导致某些 软件安装失败。



第一步,安装 操作系统后,首先应该装上操作系统的Service Pack(SP) 补丁。我们知道驱动 程序直接面对的是 操作系统硬件,所以首先应该用SP补丁解决了操作系统的 兼容性问题,这样才能尽量确保操

bios驱动软件开发实践 bios 主板驱动_bios驱动软件开发实践_03

驱动安装过程



第二步,安装主板驱动。主板驱动主要用来开启 主板芯片组内置功能及特性,主板驱动里一般是主板识别和管理 硬盘的IDE驱动 程序或补丁,比如 Intel芯片组的INF驱动和VIA的4in1补丁等。如果还包含有AGP补丁的话,一定要先安装完IDE驱动再安装AGP补丁,这一步很重要,也是很多造成系统不稳定的直接原因。



第三步,安装DirectX驱动。这里一般推荐安装最新版本,目前DirectX的最新版本是DirectX 9.0C。可能有些用户会认为:“我的 显卡并不支持DirectX 9,没有必要安装DirectX 9.0C”,其实这是个错误的认识,把DirectX等同为了Direct3D。DirectX是 微软嵌在 操作系统上的 应用程序接口(API),DirectX由显示部分、声音部分、输入部分和网络部分四大部分组成,显示部分又分为Direct Draw(负责2D加速)和Direct 3D(负责3D加速),所以说Direct3D只是它其中的一小部分而已。而新版本的DirectX改善的不仅仅是显示部分,其声音部分(DirectSound)——带来更好的声效;输入部分(Direct Input)——支持更多的游戏 输入设备,并对这些设备的识别与驱动上更加细致,充分发挥设备的最佳状态和全部功能;网络部分(DirectPlay)——增强 计算机的网络连接,提供更多的连接方式。只不过是DirectX在显示部分的改进比较大,也更引人关注,才忽略了其他部分的功劳,所以安装新版本的DirectX的意义并不仅是在显示部分了。当然,有 兼容性问题时另当别论。



第四步,这时再安装 显卡声卡网卡、调制解调器等插在 主板上的 板卡类驱动。



第五步,最后就可以装打印机、扫描仪、读写机这些外设驱动。



这样的安装顺序就能使 系统文件合理搭配, 协同工作,充分发挥系统的整体性能。



另外, 显示器、键盘和鼠标等设备也是有专门的驱动 程序,特别是一些品牌比较好的产品。虽然不用安装它们也可以被系统正确识别并使用,但是安装上这些驱动 程序后,能增加一些额外的功能并提高稳定性和性能



编辑本段安装推荐



电脑用户在装完电脑系统之后,需要为各种 硬件设备寻找匹配的驱动 程序,推荐 金山重装高手



1. 金山装机精灵拥有最全面、完整的驱动数据



2.智能检测未安装驱动的 硬件设备,推荐安装经过验证的最稳定驱动 程序



3.自动检测因 故障导致不能正常使用的驱动的 硬件设备,提供解决方案;



4.优先推荐通过“ 微软WHQL徽标认证版”驱动 程序,及时更新相应组件。



编辑本段inf文件



Windows怎样知道安装的是什么设备,以及要拷贝哪些文件呢?答案在于——张 inf文件



以.inf为后置名的文件是从Windows 95时代开始引入的一种描述设备安装信息的文件,它用特定语法的文字来说明要安装的 设备类型、生产厂商、型号、要拷贝的文件、拷贝到的目标 路径,以及要添加到注册表中的信息。通过读取和解释这些文字,Windows便知道应该如何安装驱动程序。目前几乎所有 硬件厂商提供的用于Windows 9x下的驱动 程序都带有安装 信息文件。事实上, inf文件不仅可用于安装驱动 程序,还能用来安装与 硬件并没有什么关系的 软件,例如Windows 98支持“Windows更新”功能,更新时下载的系统部件就是利用inf文件来说明如何安装该部件的。



在安装驱动 程序时,Windows一般要把. inf文件拷贝一份到“Windows\Inf”或“Windows\Inf\Other”目录下,以备将来使用。Inf目录下除了有 inf文件外,还有两个特殊文件Drvdata.bin和Drvidx.bin,以及一些。 pnf文件,它们都是Windows为了加快处理速度而自动生成的 二进制文件。Drvdata.bin和Drvidx.bin记录了。 inf文件描述的所有 硬件设备,也许朋友们会有印象:当我们在安装某些设备时,经常会看到一个“创建驱动 程序 信息库”的窗口,此时Windows便正在生成这两个 二进制文件



Windows 9x专门提供有“添加新 硬件向导”(以下简称硬件向导)来帮助使用者安装硬件驱动 程序,使用者的工作就是在必要时告诉硬件向导在哪儿可以找到与硬件型号相匹配的. inf文件,剩下的绝大部分安装工作都将由硬件安装向导自己完成。



硬件设备安装驱动 程序对Windows 9x用户来说并不是一件陌生事,在安装或重装Windows时需要安装驱动程序,在购买了某些新硬件之后也需要安装驱动程序。如果驱动 程序安装不正确,系统中某些 硬件就可能无法正常使用。虽然Windows 9x支持 即插即用,能够为用户减轻不少工作,但由于PC机的设备有非常多的品牌和型号,加上各种新产品不断问世,Windows不可能自动识别出所有设备,因此在安装很多设备时都需要人工干预。