字元裝置
乙個字元( char ) 裝置是一種可以當作乙個位元組流來訪問的裝置( 如同乙個檔案 ); 乙個字元驅動負責實現這種行為. 這樣的驅動常常至少實現 open, close, read, 和 write 系統呼叫. 文字控制台( /dev/console )和串列埠( /dev/ttys0 及其友 )是字元裝置的例子, 因為它們很好地展現了流的抽象. 字元裝置通過檔案系統結點來訪問, 例如 /dev/tty1 和 /dev/lp0. 在乙個字元裝置和乙個普通檔案之間唯一有關的不同就是, 你經常可以在普通檔案中移來移去, 但是大部分字元裝置僅僅是資料通道, 你只能順序訪問.然而, 存在看起來象資料區的字元裝置, 你可以在裡面移來移去. 例如, frame grabber 經常這樣, 應用程式可以使用 mmap 或者 lseek 訪問整個要求的影象.
塊裝置如同字元裝置, 塊裝置通過位於 /dev 目錄的檔案系統結點來訪問. 乙個塊裝置(例如乙個磁碟)應該是可以駐有乙個檔案系統的. 在大部分的 unix 系統, 乙個塊裝置只能處理這樣的 i/o 操作, 傳送乙個或多個長度經常是 512 位元組( 或乙個更大的 2 的冪的數 )的整塊. linux, 相反, 允許應用程式讀寫乙個塊裝置象乙個字元裝置一樣 -- 它允許一次傳送任意數目的位元組. 結果就是, 塊和字元裝置的區別僅僅在核心在內部管理資料的方式上, 並且因此在核心/驅動的軟體介面上不同. 如同乙個字元裝置, 每個塊裝置都通過乙個檔案系統結點被訪問的, 它們之間的區別對使用者是透明的. 塊驅動和字元驅動相比, 與核心的介面完全不同.
網路介面
任何網路事務都通過乙個介面來進行, 就是說, 乙個能夠與其他主機交換資料的裝置. 通常, 乙個介面是乙個硬體裝置, 但是它也可能是乙個純粹的軟體裝置, 比如環迴介面. 乙個網路介面負責傳送和接收資料報文, 在核心網路子系統的驅動下, 不必知道單個事務是如何對映到實際的被傳送的報文上的. 很多網路連線( 特別那些使用 tcp 的)是面向流的, 但是網路裝置卻常常設計成處理報文的傳送和接收. 乙個網路驅動對單個連線一無所知; 它只處理報文.
在dev_ioctl中,已經執行了rtnl_lock,鎖定netlink,避免衝突。因此網路介面的kernel內部具體實現不需要再執行了rtnl_lock。只有使用者態程序執行到核心態才需要此鎖。
網路介面掃盲
1 網路介面的命名 這裡並不存在一定的命名規範,但網路介面名字的定義一般都是要有意義的。例如 eth0 ethernet的簡寫,一般用於乙太網介面。wifi0 wifi是無線區域網,因此wifi0一般指無線網路介面。ath0 atheros的簡寫,一般指atheros晶元所包含的無線網路介面。lo ...
網路介面層
網路介面層對應osi的資料鏈路層,物理層。資料鏈路層分為 mac子層 介質訪問控制層。完成幀的封裝與拆封,物理介質傳輸差錯的檢測 定址,實現介質訪問控制協議。llc子層 邏輯鏈路層。連線管理 建立和釋放連線 是與高層的介面,保證幀的可靠性,按序傳輸激流量控制。邏輯上的資料傳輸控制,作為一種資料傳輸思...
Linux 網路介面
url linux中的lo回環介面詳細介紹 1 linux的網路介面之掃盲 1 網路介面的命名 這裡並不存在一定的命名規範,但網路介面名字的定義一般都是要有意義的。例如 eth0 ethernet的簡寫,一般用於乙太網介面。wifi0 wifi是無線區域網,因此wifi0一般指無線網路介面。ath0...