Linux
設備文件和設備驅動程序之間的區別
我是設備驅動程序程式的初學者。
我不明白 Linux 中設備驅動程序和設備文件之間的區別。
誰能解釋其中的區別?
設備驅動程序是操作或控制特定類型設備的軟體。在現代的單片核心作業系統上,這些通常是核心的一部分。許多單體核心,包括 Linux,都採用模組化設計,允許在執行時載入可執行模組。設備驅動程序通常使用此功能,儘管沒有什麼可以阻止將設備驅動程序編譯到核心映像中。
設備文件是設備驅動程序的介面,它出現在文件系統中,就好像它是一個普通文件一樣。在類 Unix 作業系統中,這些通常位於
/dev
目錄下,也稱為設備節點。設備文件可以表示字元設備,它一次發出一個字元的流數據,也可以表示允許隨機訪問數據塊的塊設備。設備節點由
mknod
系統呼叫創建。設備節點公開的核心資源由主要和次要編號標識。通常,主要編號標識設備驅動程序,次要編號標識驅動程序控制的特定設備。設備文件似乎包含的內容取決於設備驅動程序通過設備文件公開的內容。例如,代表滑鼠的字元設備文件將滑鼠
/dev/input/mice
的移動作為字元流公開,而代表硬碟的塊設備文件,例如/dev/sda
,則公開設備記憶體的可定址區域。一些設備文件也接受輸入,允許使用者空間應用程序通過寫入設備文件來與設備通信。