驱动程序是如何驱动硬件的?

我想问一下,一个硬件设备被计算机系统控制如果必须要安装驱动程序的话,那么驱动程序是如何控制硬件的?

3个回答

驱动程序相比应用程序没有什么特别的,特别只是特别在它们可以拥有一些特权指令,访问操作系统的关键区域以及特殊的地址。

硬件大致分为几类,一类是像显卡之类的硬件,本质上它们相当于一个异构的处理器,它拥有专门的独立的指令,你的驱动程序相当于上传这些代码给它,然后它自己处理。
一类是类似硬盘、网卡之类的,高速IO,这些一般使用DMA,操作起来如同读写内存,操作系统会映射地址给这些设备,你去读写,好像是写内存,其实这些地址在你和设备之间共享。
还有一类类似USB、蓝牙、打印机、COM等等,这些外设相当于外设通讯,通过端口收发数据。

yishuixs
yishuixs 额,如果简单的说,是不是,硬件自己有一套指令,而驱动程序是把来自于操作系统的命令翻译给硬件,让硬件明白呢?如果真是这样的话,那么硬件的那一套指令是如何存储在哪里呢?
5 年多之前 回复

设备驱动程序用来将硬件本身的功能告诉操作系统,完成硬件设备电子信号与操作系统及软件的高级编程语言之间的互相翻译。当操作系统需要使用某个硬件时,比如:让声卡播放音乐,它会先发送相应指令到声卡驱动程序,声卡驱动程序接收到后,马上将其翻译成声卡才能听懂的电子信号命令,从而让声卡播放音乐。  所以简单的说,驱动程序提供了硬件到操作系统的一个接口以及协调二者之间的关系,而因为驱动程序有如此重要的作用,所以人们都称“驱动程序是硬件的灵魂”、“硬件的主宰”,同时驱动程序也被形象的称为“硬件和系统之间的桥梁”。  驱动程序即添加到操作系统中的一小块代码,其中包含有关硬件设备的信息。有了此信息,计算机就可以与设备进行通信。驱动程序是硬件厂商根据操作系统编写的配置文件,可以说没有驱动程序,计算机中的硬件就无法工作。操作系统不同,硬件的驱动程序也不同,各个硬件厂商为了保证硬件的兼容性及增强硬件的功能会不断地升级驱动程序。如:Nvidia 显卡芯片公司平均每个月会升级显卡驱动程序2-3次。驱动程序是硬件的一部分,当你安装新硬件时,驱动程序是一项不可或缺的重要元件。凡是安装一个原本不属于你电脑中的硬件设备时,系统就会要求你安装驱动程序,将新的硬件与电脑系统连接起来。驱动程序扮演沟通的角色,把硬件的功能告诉电脑系统,并且也将系统的指令传达给硬件,让它开始工作。

yishuixs
yishuixs 复制帝~~
5 年多之前 回复

严格来说,几乎所有的硬件都包含自己的cpu,当然有自己的指令,但是依照和主机连接方式的不同,并不一定需要主机传送什么指令。好比x86的计算机和arm的手机通讯,计算机并不需要了解手机的cpu用什么指令。
驱动程序不是什么翻译,它就是一个程序。
和你写的hello world本质上没有区别,只是这个程序运行在特权等级下。

yishuixs
yishuixs 嗯,受教了,谢谢!
5 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐