裝置和模組的分類

2021-10-12 17:06:36 字數 988 閱讀 5337

以 linux 的方式看待裝置可區分為 3 種基本裝置型別. 每個模組常常實現 3 種型別中的 1 種, 因此可分類成字元模組, 塊模組, 或者乙個網路模組. 這種將模組分成不同型別或類別的方法並非是固定不變的; 程式設計師可以選擇建立在乙個大塊**中實現了不同驅動的巨大模組. 但是, 好的程式設計師, 常常建立乙個不同的模組給每個它們實現的新功能, 因為分解是可伸縮性和可擴張性的關鍵因素.

3 類驅動如下:

字元裝置

乙個字元( char ) 裝置是一種可以當作乙個位元組流來訪問的裝置( 如同乙個檔案 ); 乙個字元驅動負責實現這種行為. 這樣的驅動常常至少實現 open, close,

read, 和 write 系統呼叫. 文字控制台( /dev/console )和串列埠( /dev/ttys0 及其友 )是字元裝置的例子, 因為它們很好地展現了流的抽象. 字元裝置通過檔案系統結點來訪問, 例如 /dev/tty1 和 /dev/lp0. 在乙個字元裝置和乙個普通檔案之間唯一有關的不同就是, 你經常可以在普通檔案中移來移去, 但是大部分字元裝置僅僅是資料通道, 你只能順序訪問.然而, 存在看起來象資料區的字元裝置, 你可以在裡面移來移去. 例如, frame grabber 經常這樣, 應用程式可以使用 mmap 或者 lseek 訪問整個要求的影象.

塊裝置如同字元裝置, 塊裝置通過位於 /dev 目錄的檔案系統結點來訪問. 乙個塊裝置(例如乙個磁碟)應該是可以駐有乙個檔案系統的. 在大部分的 unix 系統, 乙個塊裝置只能處理這樣的 i/o 操作, 傳送乙個或多個長度經常是 512 位元組( 或乙個更大的 2 的冪的數 )的整塊. linux, 相反, 允許應用程式讀寫乙個塊裝置象乙個字元裝置一樣 – 它允許一次傳送任意數目的位元組. 結果就是, 塊和字元裝置的區別僅僅在核心在內部管理資料的方式上, 並且因此在核心/驅動的軟體介面上不同. 如同乙個字元裝置, 每個塊裝置都通過乙個檔案系統結點被訪問的, 它們之間的區別對使用者是透明的. 塊驅動和字元驅動相比, 與核心的介面完全不同.

網路介面

任何網路事務都通過乙個介面來進行, 就是說,

Linux 裝置和模組的分類

概念 在linux系統中,所有裝置都被對映成 裝置檔案 來處理,裝置檔案,應用程式可以像操作普通檔案一樣對硬體裝置進行操作。一 裝置型別 相當不錯,建議有時間看下原文 第一章 裝置驅動簡介 1.3.節 裝置和模組的分類 linux裝置驅動之字元裝置驅動 一般情況下,以 linux 的裝置可區分為 3...

Tornado模組分類和各模組之間的關係

1.core web framework tornado.httpserver 乙個無阻塞http伺服器的實現 tornado.template 模版系統 tornado.escape html,json,urls等的編碼解碼和一些字串操作 tornado.locale 國際化支援 2.asynch...

USB裝置分類

usb裝置分類 usb從裝置的分類可以從usb裝置介面描述符 standard inte ce descriptor 對應的的binte ceclass這乙個byte得到。binte ceclass的典型 為1,2,3,6,7,8,9,10,11,255。分別代表意思為 1 audio 表示乙個音訊...