超聲波探傷系統(tǒng)驅(qū)動程序的作用
超聲波探傷系統(tǒng)驅(qū)動程序的分類
探傷系統(tǒng)將設備分為三種基本類型:字符設備、塊設備和網(wǎng)絡設備,每個模塊一般為其中的某一類,但也可以構(gòu)造一個大的模塊并在其中實現(xiàn)不同類型的設備驅(qū)動。為了提高設備驅(qū)動的伸縮性和可擴展性,最好為每個新功能創(chuàng)建一個單獨的模塊。
1. 字符設備:字符設備像字節(jié)流一樣被訪問,在存取時一般沒有緩存,在對字符設備發(fā)出讀/寫請求時,硬件設備 I/O 一般會緊接著發(fā)生。字符設備文件和普通文件的區(qū)別在于,字符設備只能順序訪問,而普通文件可以隨機訪問。
2. 塊設備:塊設備主要用來容納文件系統(tǒng),例如磁盤。從應用程序角度來看,塊設備和字符設備的訪問方式相同,可以進行讀寫并允許一次傳遞任意多字節(jié)的數(shù)據(jù)。但是在內(nèi)核中,塊設備驅(qū)動程序和字符設備驅(qū)動程序具有完全不同的接口。塊設備在系統(tǒng)內(nèi)存中一般有緩沖區(qū),以提高訪問效率。
3. 網(wǎng)絡設備:網(wǎng)絡設備驅(qū)動程序主要是針對數(shù)據(jù)包的傳輸和接收而設計,它不需要了解各項事務如何映射到實際傳送的數(shù)據(jù)包,只負責處理數(shù)據(jù)包。內(nèi)核和網(wǎng)絡設備驅(qū)動程序之間的通信有專用的一套函數(shù),與內(nèi)核和字符設備以及塊設備驅(qū)動程序之間的通信方式完全不同。由于網(wǎng)絡設備接口不是面向流的,因此在文件系統(tǒng)中沒有相應的節(jié)點,操作系統(tǒng)給網(wǎng)絡設備接口分配了唯一的名字。
設備驅(qū)動程序的概念
系統(tǒng)調(diào)用是操作系統(tǒng)內(nèi)核與應用程序之間的接口,設備驅(qū)動程序則是操作系統(tǒng)內(nèi)核與系統(tǒng)硬件之間的接口。設備驅(qū)動程序為上層應用程序屏蔽了硬件的實現(xiàn)細節(jié),這樣從應用程序角度來看,硬件設備只是一個設備文件,應用程序可以像操作普通文件一樣對硬件設備進行操作。
設備驅(qū)動程序是操作系統(tǒng)的一部分,它主要完成以下功能:
1. 如果以模塊化方式動態(tài)加載,則在加載和卸載設備驅(qū)動時分別完成對設備的初始化和釋放;如果以靜態(tài)鏈接方式編譯進內(nèi)核,則在系統(tǒng)啟動時會完成對設備的初始化;
2. 完成內(nèi)核與硬件之間的數(shù)據(jù)傳輸,從硬件讀取數(shù)據(jù)到內(nèi)核或者把數(shù)據(jù)從內(nèi)核寫到硬件;
3. 完成用戶空間和內(nèi)核之間的數(shù)據(jù)傳輸,從用戶空間復制數(shù)據(jù)到內(nèi)核或者把數(shù)據(jù)從內(nèi)核空間傳輸?shù)接脩艨臻g;