直接面向設各硬件的程序叫做設各驅動程序。設各驅動程序的作用就是在設各硬件寄存器的基礎上來實現(xiàn)系統(tǒng)上層的各項操作命令。這些函數(shù)雖然是直接面向設備的硬件編程,有一部分代碼是用匯編語言來編寫的,但通常都會提供一個高級語言的接口,因此,它們的外觀看起來與一般的c函數(shù)沒有區(qū)別,例如read()、write()、open()、close()等?! ≡趌inux中,常用一個結構作為調(diào)用上述設各驅動程序中各個函數(shù)的跳轉表,即把指向上述設備驅動程序函數(shù)的指針集中在一個結構中。這個結構就是我們已經(jīng)熟悉的file_opera_tions。為了清楚起見。把在文件系統(tǒng)中介紹的結構file opcrattons的部分內(nèi)容列舉如下: 其實,計算機的信息最終還是要落實到某個實際物理設備或裝置上的。當然,文件作為一個具有邏輯關系的數(shù)據(jù)集合是存儲到磁盤這個物理設各中的。如果把磁盤中的數(shù)據(jù)塊看成是一個沒備·那么上面這個結構中的各函數(shù)指針落實到具體文件i節(jié)點中的文件操作函數(shù)集,實質上就是磁盤這個設備的驅動程序,所以前面也曾經(jīng)把i節(jié)點叫做設備文件。 原則上,作為不是以存儲數(shù)據(jù)為目的的諸如鼠標、鍵盤、顯示器、打印機等其他設備,file_operations結構中函數(shù)指針的名稱可以由程序設計人員任意命名.例如,write()實質上就是處理器向設備輸出數(shù)據(jù),把它改為output()也未嘗不可。但由于將來要用文件系統(tǒng)來管理設備,也就是要把設各也要看做一種文件.所以這里還是應該遵循文件系統(tǒng)的命名方法。