seegongsik
操作系统

什么是设备驱动程序

到第 10 课为止,操作系统都在内部管理 CPU 和内存。可电脑还得和外面的设备打交道:键盘、鼠标、屏幕、磁盘、打印机,还有操作系统做出来时还不存在、昨天才买的新设备。每种设备说的“话”都不一样,它怎么全都听得懂呢?

01

世上的设备太多了

能接到电脑上的设备多得数不清:键盘、鼠标、屏幕、磁盘、打印机、摄像头,而且每年还有新设备不断冒出来。
每种设备收发的信号也各不相同。
操作系统不可能把这么多全都记住。

操作系统

点一点设备:它们各用各的信号说话,光靠操作系统很难听懂。

每种设备说的话都不一样,让人一筹莫展。可也不能照着每一种设备重新改一遍操作系统,因为新设备会不断出现。
所以在两者之间安排一个人:翻译。

02

驱动程序就是翻译

操作系统只说一种标准的话,就是“读”“写”“打开”这样简单的请求。
每种设备附带的驱动程序负责翻译:把操作系统的“读”换成只有那种设备才懂的信号,再把设备的回答译回标准的话。

读→口译→

发出标准命令“读”,驱动程序就把它翻译成各个设备的信号。

操作系统永远只要说同样的标准的话,各种设备的麻烦事都由驱动程序包下来。
那么,操作系统从没见过、刚刚问世的设备,又怎么能用上呢?

03

新设备?装上驱动就行

操作系统不跟设备说话,只跟驱动程序说话。所以哪怕来了从没见过的新设备,办法也很简单:只要装上那种设备的驱动程序,也就是它的专属翻译。
操作系统本身一点都不用改,驱动程序把两边接上,马上就能用。

操作系统✗新设备?
不通

接上新设备:一开始说不通,装上驱动程序就马上通了。

一个驱动程序,就能轻松接纳新设备。现在话说得通了,可还剩一件事。
设备通常比 CPU 慢得多。操作系统该怎么等这种慢吞吞的设备呢?

04

别一直问,让它拍拍肩膀

要是操作系统守在慢设备旁边,一个劲儿地问“好了吗?好了吗?”,快速的 CPU 这段时间就只能闲着。
这太浪费了。所以它只把请求交代下去,就去干别的活儿。设备干完了,就用中断轻轻拍一下它的肩膀:“好了!”
这时操作系统才回来处理。

CPU

比一比两种方式:一直问,CPU 就闲着;拍肩膀,CPU 就能去干别的活儿。

让设备来拍肩膀,CPU 一刻也不闲着:交代完请求就去干别的,信号来了再处理。
这个中断,就是和外部设备打交道的关键本事。那么,翻译和拍肩膀两样凑在一起,会怎样呢?

05

靠翻译和拍肩膀,和外界好好相处

操作系统用两样本事对付越来越多的设备:替每种设备翻译的驱动程序,以及干完就通知的中断。
多亏了它们,就连从没见过的设备也能毫不浪费地对付。
在这么多设备里,有一样特别重要,那就是文件所在的磁盘。操作系统是怎么整理磁盘的呢?

操作系统
驱动↔键盘
驱动↔硬盘
驱动↔打印机

把操作系统放在中间,就能看到驱动程序在翻译,设备在用中断拍肩膀。

总结一下,和外部设备好好相处的秘诀有两个:替每种设备转达话语的翻译,也就是驱动程序;以及慢设备干完活时通知一声的拍肩膀,也就是中断。
有了这两样,操作系统就能和世上任何设备携手合作。下一课,我们来看怎样把其中的磁盘整理成文件和文件夹。

一句话总结操作系统不必直接认识所有设备。只要用标准的话提出请求,每种设备附带的“驱动程序”就会把它翻译成那种设备的信号。所以新设备只要装上驱动程序就能马上用。还有,等慢设备时,不必一直问“好了吗?”,而是让设备干完后用中断拍拍肩膀。这段时间里,CPU 去干别的活儿。
← 操作系统
如果有帮助,请支持我们