Linux的主次裝置號

2021-09-12 02:58:20 字數 1535 閱讀 8534

在linux核心中,主裝置號標識裝置對應的驅動程式,告訴linux核心使用哪乙個驅動程式為該裝置(也就是/dev下的裝置檔案)服務;而次裝置號則用來標識具體且唯一的某個裝置。

比如說在linux的終端打入命令:

[root@node1 ~]# ll /dev/sd*

brw-rw---- 1 root disk 8, 0 feb 26 03:21 /dev/sda

brw-rw---- 1 root disk 8, 1 feb 26 03:21 /dev/sda1

會出現很多的檔案列表,這裡舉例字串裝置檔案【字串裝置的開頭表示為c,當然塊裝置表示為b】,這些檔案可以稱為檔案系統書的節點,都是位於/dev目錄下。

另外上面2行中的數字,8表示的是該裝置的主裝置號,0,1表示的是該裝置的次裝置號。

乙個主裝置號和乙個次裝置號就組成了該裝置的唯一識別符號。

雖然現在的linux核心允許多個驅動程式共享主裝置號,但是現在大多數的裝置仍然按照「乙個主裝置號對應乙個驅動程式」的原則組織。

次裝置號用來指向驅動程式所實現的裝置,核心本身基本上不會去關心關於次裝置號的任何其他資訊。

#cat /proc/devices

character devices:1 mem

4 /dev/vc/0

4 tty

4 ttys

5 /dev/tty

5 /dev/console

5 /dev/ptmx

7 vcs

10 misc

13 input

21 sg

29 fb

99 ppdev

128 ptm

136 pts

162 raw

180 usb

188 ttyusb

189 usb_device

202 cpu/msr

203 cpu/cpuid

226 drm

245 dimmctl

246 ndctl

247 aux

248 hidraw

249 usbmon

250 bsg

251 hmm_device

252 watchdog

253 rtc

254 tpm

block devices:

本人是centos7主機,需要先安裝kernel-doc,可以通過yum安裝,這裡已經安裝。

#rpm -qa |grep kernel-doc

kernel-doc-3.10.0-957.5.1.el7.noarch

#more /usr/share/doc/kernel-doc-3.10.0/documentation/devices.txt

詳細內容如下圖:

(3)主次裝置號

分配並註冊主次裝置號 在已有的 dev裝置中,可以用ls l看其主次裝置號 裝置號是在驅動module中分配並註冊的,也就是說,驅動module擁有 這個裝置號 我的理解 而 dev目錄下的裝置檔案是根據這個裝置號建立的,因此,當訪問 dev目錄下的裝置檔案 時,驅動module就知道,自己該出場服...

linux主裝置號和從裝置號

裝置號是在驅動module中分配並註冊的,也就是說,驅動module擁有這個裝置號 我的理解 而 dev目錄下的裝置檔案是根據這個裝置號建立的,因此,當訪問 dev目錄下的裝置檔案時,驅動module就知道,自己該出場服務了 當然是由核心通知 在linux核心看來,主裝置號標識裝置對應的驅動程式,告...

Linux檢視裝置號

linux的裝置管理是和檔案系統緊密結合的,把裝置和檔案關聯起來,這樣系統呼叫可以直接用操作檔案一樣的方法來操作裝置。各種裝置都以檔案的形式存放在 dev目錄下,稱為裝置檔案。應用程式可以開啟 關閉和讀寫這些裝置檔案,完成對裝置的操作,就像操作普通的資料檔案一樣。為了管理這些裝置,系統為裝置編了號,...