在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本人是centos7主機,需要先安裝kernel-doc,可以通過yum安裝,這裡已經安裝。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:
#rpm -qa |grep kernel-doc#more /usr/share/doc/kernel-doc-3.10.0/documentation/devices.txtkernel-doc-3.10.0-957.5.1.el7.noarch
詳細內容如下圖:
(3)主次裝置號
分配並註冊主次裝置號 在已有的 dev裝置中,可以用ls l看其主次裝置號 裝置號是在驅動module中分配並註冊的,也就是說,驅動module擁有 這個裝置號 我的理解 而 dev目錄下的裝置檔案是根據這個裝置號建立的,因此,當訪問 dev目錄下的裝置檔案 時,驅動module就知道,自己該出場服...
linux主裝置號和從裝置號
裝置號是在驅動module中分配並註冊的,也就是說,驅動module擁有這個裝置號 我的理解 而 dev目錄下的裝置檔案是根據這個裝置號建立的,因此,當訪問 dev目錄下的裝置檔案時,驅動module就知道,自己該出場服務了 當然是由核心通知 在linux核心看來,主裝置號標識裝置對應的驅動程式,告...
Linux檢視裝置號
linux的裝置管理是和檔案系統緊密結合的,把裝置和檔案關聯起來,這樣系統呼叫可以直接用操作檔案一樣的方法來操作裝置。各種裝置都以檔案的形式存放在 dev目錄下,稱為裝置檔案。應用程式可以開啟 關閉和讀寫這些裝置檔案,完成對裝置的操作,就像操作普通的資料檔案一樣。為了管理這些裝置,系統為裝置編了號,...