Man*_*áoz 20 linux file device
所有文件/dev都是特殊文件......它们代表计算机的设备.它们是使用mknod系统调用创建的.我的问题是:我如何知道用于创建此特殊文件的次要和主要数字?
Jed*_*ith 27
该列表称为LANANA Linux设备列表,由Alan Cox管理.
您可以在线(直接链接)或在Linux源中找到最新的副本.它在内核树中的文件名是.Documentation/devices.txt
要查看创建节点中的主要和次要号码/dev(或与此有关的任何设备节点),只需使用ls与-l选项:
22:26 jsmith@undertow% ls -l /dev/xvd?
brw-rw---- 1 root disk 202, 0 Nov 1 20:31 /dev/xvda
brw-rw---- 1 root disk 202, 16 Nov 1 20:31 /dev/xvdb
brw-rw---- 1 root disk 202, 32 Nov 1 20:31 /dev/xvdc
Run Code Online (Sandbox Code Playgroud)
在这个例子中,202是三个设备的主要编号,而且0是16,并且32是未成年人.的b左边表示该节点是一个块设备.替代方案是c,一个角色设备:
crw-rw-rw- 1 root tty 5, 0 Nov 22 00:29 /dev/tty
Run Code Online (Sandbox Code Playgroud)
$ ls -l /dev/fd0 /dev/null brw-rw---- 1 root floppy 2, 0 Nov 22 19:48 /dev/fd0 crw-rw-rw- 1 root root 1, 3 Nov 22 19:48 /dev/null $ stat -c '%n: %F, major %t minor %T' /dev/fd0 /dev/null /dev/fd0: block special file, major 2 minor 0 /dev/null: character special file, major 1 minor 3
大多数设备号是固定的(即/dev/null始终是字符设备1:3),但在Linux上,一些是动态分配的.
$ cat /proc/devices Character devices: ... 10 misc ... Block devices: ... 253 mdp 254 device-mapper $ cat /proc/misc ... 57 device-mapper ...
例如,在此系统上,它只是恰巧/dev/mapper/control会c:10:57而其余/dev/mapper/*将b:254:*,这可能不同于一个引导周期到另一个周期-或甚至作为模块被装载/卸载,并加入/删除的设备.
您可以进一步浏览这些设备注册/sys.
$ readlink /sys/dev/block/2:0 ../../devices/platform/floppy.0/block/fd0 $ cat /sys/devices/platform/floppy.0/block/fd0/dev 2:0 $ readlink /sys/dev/char/1:3 ../../devices/virtual/mem/null $ cat /sys/devices/virtual/mem/null/dev 1:3