Linux的主次设备号

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jiajiren11/article/details/88289764

主设备号与次设备号的功能


在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:
259 blkext
8 sd
9 md
11 sr
65 sd
66 sd
67 sd
68 sd
69 sd
70 sd
71 sd
128 sd
129 sd
130 sd
131 sd
132 sd
133 sd
134 sd
135 sd
253 device-mapper
254 mdp


从内核文档(kernel-doc)中查询各主次设备号代表的意义:


本人是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
详细内容如下图:
devices.txt

猜你喜欢

转载自blog.csdn.net/jiajiren11/article/details/88289764
今日推荐