显然,操作系统不可能直接面对这些五花八门的I/O设各进行管理,在操作系统和设备之间,需要一个中间层来对这些设备进行必要的抽象,以屏蔽I/O设备的硬件细节。这个硬件抽象层是由I/O设各控制器和I/O驱动程序组成的。
I/O设备控制器是I/O设各厂商在生产时为设备所配置的,它是与设备密切相关的,不同的设各具有极大的差异。通常在T/O设各控制器中设置有用来接收命令的寄存器,这些寄存器中的内容是I/O设各进行I/O操作的依据。
I/O驱动程序则是可以接收操作系统请求,并对常,I/0设备生产厂商在出售设各时,就会把设各驱动程序连同设各一同出售给用户。目前,I/O驱动程序已成为了一种带有标准接口的可选型软件.而操作系统内核只保留与设各无关的那部分设各管理软件,而把与设各有关的驱动程序作为一种可装卸的程序,以使用户可按照自己的需要进行配置。
I/O设备硬件与操作系统软件之间的层次结构如图所示。