顯然,操作系統(tǒng)不可能直接面對這些五花八門的I/O設(shè)各進(jìn)行管理,在操作系統(tǒng)和設(shè)備之間,需要一個(gè)中間層來對這些設(shè)備進(jìn)行必要的抽象,以屏蔽I/O設(shè)備的硬件細(xì)節(jié)。這個(gè)硬件抽象層是由I/O設(shè)各控制器和I/O驅(qū)動程序組成的。
I/O設(shè)備控制器是I/O設(shè)各廠商在生產(chǎn)時(shí)為設(shè)備所配置的,它是與設(shè)備密切相關(guān)的,不同的設(shè)各具有極大的差異。通常在T/O設(shè)各控制器中設(shè)置有用來接收命令的寄存器,這些寄存器中的內(nèi)容是I/O設(shè)各進(jìn)行I/O操作的依據(jù)。
I/O驅(qū)動程序則是可以接收操作系統(tǒng)請求,并對常,I/0設(shè)備生產(chǎn)廠商在出售設(shè)各時(shí),就會把設(shè)各驅(qū)動程序連同設(shè)各一同出售給用戶。目前,I/O驅(qū)動程序已成為了一種帶有標(biāo)準(zhǔn)接口的可選型軟件.而操作系統(tǒng)內(nèi)核只保留與設(shè)各無關(guān)的那部分設(shè)各管理軟件,而把與設(shè)各有關(guān)的驅(qū)動程序作為一種可裝卸的程序,以使用戶可按照自己的需要進(jìn)行配置。
I/O設(shè)備硬件與操作系統(tǒng)軟件之間的層次結(jié)構(gòu)如圖所示。