Device Driver 簡稱 Driver
裝置驅動程式用來將硬體本身的功能告訴作業系統,可視驅動程式爲硬體的靈魂,同時也可稱驅動程式為硬體和系統之間的橋樑。
裝置驅動程式可分為下列三類:
1. 字元裝置
一個位元組(Byte)一個位元組讀取資料的裝置,一般會在驅動層實現 open(), close(), read(), write() and ioctl()等函數。
2. 區塊裝置
一般是像磁碟一樣的裝置,進行讀寫時,每次只能傳輸一個或多個區塊,但是Linux可以讓應用程式像存取字元裝置一樣的存取區塊裝置。
3. 網路裝置
主要是面對資料封包的接收和發送而設計的,網路裝置在Linux中是一種很特殊的裝置,不像字元裝置與區塊裝置的API函數,而是實現了一種通訊端界面,任何網路資料傳輸都可以透過通訊端來完成。
CPU有兩種指令:
1. 特權指令:Kernel mode可使用
2. 普通指令:Kernel mode and User mode可使用
模組是可以在執行時加入核心的程式,Linux kernel支援很多種模組,驅動程式就是其中最重要的一種,甚至檔案系統也可以寫成一個模組。利用insmod指令將模組加入正在執行的核心,也可用rmmod指令將一個未使用的模組從核心中刪除。
載入模組有兩種類別:
1. 靜態載入:模組在核心啟動時載入
2. 動態載入:在核心已經執行時載入