基本裝置型別簡介

2021-09-02 20:46:55 字數 997 閱讀 5705

linux 將裝置分成三種基本型別,分別概述如下:

1、字元裝置

字元裝置是個能像位元組流(類似檔案)一樣被訪問的裝置,由字元裝置驅動程式來實現這種特性。字元裝置驅動程式通常至少要實現 open、close、read 和 write 系統呼叫。字元終端(/dev/console)和串列埠(/dev/tty0以及類似裝置)就是兩個字元裝置,它們能很好地說明「流」這種抽象概念。字元裝置可以通過檔案系統節點來訪問,比如 /dev/tty1 和 /dev/lp0 等。裝置檔案和普通檔案的區別在於普通檔案的訪問可以前後移動訪問位置,而大多數字元裝置是乙個只能順序訪問的資料通道。但也存在具有資料區特性的字元裝置,可前後移動訪問裝置。例如幀抓取器,應用程式可以用 mmap 或 lseek 訪問抓取的整個影象。

2、塊裝置

塊裝置也是通過 /dev 目錄下的檔案系統節點來訪問的。塊裝置(例如磁碟)上能容納檔案系統。在大多數 unix 系統中,塊裝置每次 i/o 操作只能傳輸乙個或多個完整的塊,而每塊包含 512 位元組(或 2 的更高次冪位元組的資料)。linux 可以讓應用程式像字元裝置一樣讀寫塊裝置,允許一次傳遞任意多位元組的資料。因而,塊裝置和字元裝置的區別僅僅在於核心內部管理資料的方式,也就是核心及驅動程式之間的軟體介面不同。

3、網路介面

任何網路事務都經過乙個網路介面形成,即乙個能夠和其他主機交換資料的裝置。通常,介面是個硬體裝置,但也可能是個純軟體裝置,比如環迴(loopback)介面。網路介面由核心中的網路子系統驅動,負責傳送和接收資料報,但它不需要了解每項事務如何對映到實際傳送的資料報。許多網路連線(尤其是使用 tcp 協議的連線)是面向流的,但網路裝置卻圍繞資料報的傳輸和接收而設計,它不需要知道各個連線的相關資訊,只需處理資料報即可。由於不是面向流的裝置,因此將網路介面對映到檔案系統中的節點就比較困難。unix 訪問網路介面的方法仍然是給它們分配乙個唯一的名字(如 eth0),但該名字在檔案系統中不存在對應的節點。核心和網路裝置驅動程式間的通訊,完全不同於和字元和塊裝置驅動程式之間的通訊,

是呼叫一套和資料報傳輸相關的函式而不是 read、write 等。

Linux 裝置樹基本簡介

一 基本簡介 裝置作用 提供裝置資訊 裝置樹 device tree 是一種描述硬體的資料結構在作業系統引導階段進行裝置初始化的時候,資料結構中的硬體資訊被檢測並傳遞給作業系統 裝置樹 裝置樹原始檔 x.dts dtc 裝置樹二進位制檔案 x.dtb 裝置樹基本語法 裝置樹的基本單元是節點 node...

塊裝置簡介

裝置分為塊裝置和字元裝置 ll rw blk.c是其他程式呼叫裝置所用到的程式。對硬碟和軟盤裝置上資料的讀寫是通過中斷處理程式進行 核心每次讀寫的資料量是邏輯塊 1024位元組 而裝置的儲存是扇區 512位元組 當程式讀取裝置資料時,首先向緩衝區管理程式提出申請,程式的程序進入睡眠狀態,緩衝區管理程...

裝置驅動簡介

系統呼叫是作業系統核心和應用程式之間的介面,裝置驅動程式是作業系統核心和機器硬體之間的介面。裝置驅動程式為應用程式遮蔽了硬體的細節,這樣在應用程式看來,硬體只是個裝置檔案,應用程式可以象操作普通檔案一樣對硬體裝置進行操作。裝置驅動與使用者程式的區別 1 應用程式以main 開始 驅動程式沒有main...