linux字元裝置

2021-10-02 23:37:19 字數 1096 閱讀 5377

字元裝置的定義

linux下有三種裝置:字元裝置、塊裝置、網路裝置等等。它們均以乙個檔案節點形式顯示在檔案系統的/dev目錄下(crw--w---- 1 root tty 4, 0 7月 11 09:11 tty0其中c代表字元裝置型別)。

字元裝置是指裝置無需緩衝即可直接進行讀寫的裝置, 如滑鼠,鍵盤,串列埠裝置等, 它與塊裝置的區別在於是字元操作的基本單位是位元組。下面為字元裝置結構示意圖:

字元裝置的性質及特點

字元裝置的分類

字元裝置主要包括控制終端裝置和序列終端裝置, 例如控制台和鍵盤。依據功能和硬體上的差別, 字元終端裝置有如下分類:

具體分類可參看

字元裝置與驅動程式的關係

字元裝置與驅動程式的處在不同的層次上, 驅動程式實現了對硬體的控制邏輯, 並將其以統一介面的形式呈現給上層使用者。

這樣的話, 字元裝置驅動程式就是硬體和檔案組織系統間的介面, 它或解釋底層硬體中斷, 翻譯並轉交給使用者程序, 或將使用者程序發出的訊號傳輸給硬體, 觸發硬體中斷。

例如,當使用者在鍵盤上鍵入了乙個字元時,會引起鍵盤中斷響應(中斷請求訊號 irq1, 對應中斷號int 33 ),此時鍵盤中斷處理程式就會從鍵盤控制器讀入對應的鍵盤掃瞄碼,然後根據使用的鍵盤掃瞄碼對映表譯成相應字元,放入 tty 讀佇列 read_q 中。然後呼叫中斷處理程式的 c 函式do_tty_interrupt(),並呼叫寫控制台函式con_write()。此時如果該終端的回顯( echo )屬性是設定的,則該字元會顯示到螢幕上。

並且, 程序對字元裝置的讀寫通過檔案系統實現的檔案讀寫操作從使用者緩衝區讀取乙個字元寫入寫佇列, 若寫佇列已滿, 則將寫佇列輸出到控制台顯示出來。

整個操作過程見圖 7-3 所示 :

Linux字元裝置驅動

linux下的裝置驅動程式被組織為一組完成不同任務的函式的集合,通過這些函式使得windows的裝置操作猶如檔案一般。在應用程式看來,硬體裝置只是乙個裝置檔案,應用程式可以象操作普通檔案一樣對硬體裝置進行操作,如open close read write 等。linux主要將裝置分為二類 字元裝置和...

linux字元裝置模型

字元裝置的結構體 struct dev t dev 字元裝置模組的載入和解除安裝函式 static int init init void else ret cdev add dev.cdev,dev no,1 裝置驅動模組的解除安裝函式 static void exit exit void 字元裝置...

linux字元裝置驅動

linux字元裝置驅動 字元裝置檔案和字元裝置驅動通過主裝置號聯絡 主裝置號對應裝置型別 次裝置區分同型別的裝置 核心如何如何描述裝置號?用dev t 實質為12 20位的整數 major minor 怎樣申請裝置驅動?1.靜態申請 2.動態分配 int alloc chrdev region 安裝...