Linux设备文件的命名
Linux内核能够识别的所有设备都记录在src/Documentation/devices.txt文件中,如下所示:
---------------------------------------------------------------------------------------------------------
主设备号 设备类型
次设备号=文件名 简要说明
---------------------------------------------------------------------------------------------------------
0 未命名设备 如挂载的空设备
0= 为空设备号保留
1 char 内存设备
1 = /dev/mem 直接存取物理内存
2 = /dev/kmem 存取经过内核虚拟之后的内存
3 = /dev/null 空设备.任何写入都将被直接丢弃,任何读取都将得到EOF
5 = /dev/zero 零字节源,只能读取到无限多的零字节
8 = /dev/random 随机数发生器,完全由用户的输入来产生随机数;
如果用户停止所有动作,则停止产生新的随机数
9 = /dev/urandom 更快,但是不够安全的随机数发生棍,尽可能由用户的输入来产生随机数;
如果用户停止动作,则把已经产生 的随机数做为种子米产生新的随机
11 = /dev/kmsg 任何对该文件的写入都将作为printk的输出
1 block RAM disk
0 = /dev/ram0 第1个RAM disk(initrd只能使用ram0)
1 = /dev/ram1 第2个RAM disk
...
4 char TTY(终端)设备
0 = /dev/tty0 当前虚拟控制台
1 = /dev/tty1 第1个虚拟控制台
...
4 block 如果根文件系统是以只读方式挂载的,那么就不可能创建真正的设备节点,
此时就使用该设备作为动态分配的主(major)设备的别名
0 = /dev/root
5 char 其他 TTY 设备
0 = /dev/tty 当前TTY设备
1 = /dev/console 系统控制台(一般是指/dev/tty0)
7 block 回环设备(用一个普遍的磁盘文件来模拟一个块设备)
对回环设备的绑定由 mount(8) 或 losetup(8) 处理
0 = dev/1oop0 第1个回环设备
1 = dev/1oop1 第2个回环设备
8 block SCSI磁盘 (0-15)
0 = /dev/sda 第1个 SCSI 磁盘{整个磁盘)
16 = /dev/sdb 第2个 SCSI 磁盘{整个磁盘)
32 = /dev/sdc 第3个 SCSI 磁盘(整个磁盘}
...
分区表示方法如下(以第3个 SCSI 磁盘为例)
33 -/dev/sdc 1 第1个分区
34 -/dev/sdc2 第2个分区
10 char 非串口鼠标,各种杂项设备和特性
1 = /dev/psaux PS/2鼠标
135 = /dev/rtc 实时时钟(Real Time Clock)
13 char 核心输入设备
32 = /dev/input/mouse0 第1个鼠标
33 = /dev/input/mouse1 第2个鼠标
...
63 = /dev/input/mice 所有鼠标的统一
64 = /dev/input/event0 第1个事件队列
65 = /dev/input/event1 第2个事件队列
29 char 通用帧缓冲 (frame buffer)设备
0 = /dev/fb0 第1个帧缓存设备
1 = /dev/fb1 第2个帧缓存设备
89 char I2C总线接口
0 = Idev/ i2c-0 第1个I2C适配器
1 = Idev/ i2c-1 第2个I2C适配器
136-143 char Unix98 PTY slave
这些设备节点是自动生成的(伴有适当的权限和模式),不能于动创建
方法是通过使用适当的 mount 选项(通常是,mode=0620,gid=<"tty"组的gid>)
将devpts文件系统挂载到/dev/pts目录即可。
0 = /dev/pts/0 第1个Unix98 PTY slave
1 = /dev/pts/1 第2个Unix98 PTY slave
180 char USB字符设备
96 = /dev/usb/hiddev0 第1个USB人机界面设备 (鼠标/键盘/游戏杆/手写板等)
...
111 = dev/usb/hiddev15 第16个USB人机界面设备
180 block USB块设备(U盘之类)
0 = /dev/uba 第1个USB 块设备
8 = /dev/ubb 第2个USB 块设备
16 = /dev/ubc 第3个USB 块设备
主设备号 设备类型
次设备号=文件名 简要说明
---------------------------------------------------------------------------------------------------------
0 未命名设备 如挂载的空设备
0= 为空设备号保留
1 char 内存设备
1 = /dev/mem 直接存取物理内存
2 = /dev/kmem 存取经过内核虚拟之后的内存
3 = /dev/null 空设备.任何写入都将被直接丢弃,任何读取都将得到EOF
5 = /dev/zero 零字节源,只能读取到无限多的零字节
8 = /dev/random 随机数发生器,完全由用户的输入来产生随机数;
如果用户停止所有动作,则停止产生新的随机数
9 = /dev/urandom 更快,但是不够安全的随机数发生棍,尽可能由用户的输入来产生随机数;
如果用户停止动作,则把已经产生 的随机数做为种子米产生新的随机
11 = /dev/kmsg 任何对该文件的写入都将作为printk的输出
1 block RAM disk
0 = /dev/ram0 第1个RAM disk(initrd只能使用ram0)
1 = /dev/ram1 第2个RAM disk
...
4 char TTY(终端)设备
0 = /dev/tty0 当前虚拟控制台
1 = /dev/tty1 第1个虚拟控制台
...
4 block 如果根文件系统是以只读方式挂载的,那么就不可能创建真正的设备节点,
此时就使用该设备作为动态分配的主(major)设备的别名
0 = /dev/root
5 char 其他 TTY 设备
0 = /dev/tty 当前TTY设备
1 = /dev/console 系统控制台(一般是指/dev/tty0)
7 block 回环设备(用一个普遍的磁盘文件来模拟一个块设备)
对回环设备的绑定由 mount(8) 或 losetup(8) 处理
0 = dev/1oop0 第1个回环设备
1 = dev/1oop1 第2个回环设备
8 block SCSI磁盘 (0-15)
0 = /dev/sda 第1个 SCSI 磁盘{整个磁盘)
16 = /dev/sdb 第2个 SCSI 磁盘{整个磁盘)
32 = /dev/sdc 第3个 SCSI 磁盘(整个磁盘}
...
分区表示方法如下(以第3个 SCSI 磁盘为例)
33 -/dev/sdc 1 第1个分区
34 -/dev/sdc2 第2个分区
10 char 非串口鼠标,各种杂项设备和特性
1 = /dev/psaux PS/2鼠标
135 = /dev/rtc 实时时钟(Real Time Clock)
13 char 核心输入设备
32 = /dev/input/mouse0 第1个鼠标
33 = /dev/input/mouse1 第2个鼠标
...
63 = /dev/input/mice 所有鼠标的统一
64 = /dev/input/event0 第1个事件队列
65 = /dev/input/event1 第2个事件队列
29 char 通用帧缓冲 (frame buffer)设备
0 = /dev/fb0 第1个帧缓存设备
1 = /dev/fb1 第2个帧缓存设备
89 char I2C总线接口
0 = Idev/ i2c-0 第1个I2C适配器
1 = Idev/ i2c-1 第2个I2C适配器
136-143 char Unix98 PTY slave
这些设备节点是自动生成的(伴有适当的权限和模式),不能于动创建
方法是通过使用适当的 mount 选项(通常是,mode=0620,gid=<"tty"组的gid>)
将devpts文件系统挂载到/dev/pts目录即可。
0 = /dev/pts/0 第1个Unix98 PTY slave
1 = /dev/pts/1 第2个Unix98 PTY slave
180 char USB字符设备
96 = /dev/usb/hiddev0 第1个USB人机界面设备 (鼠标/键盘/游戏杆/手写板等)
...
111 = dev/usb/hiddev15 第16个USB人机界面设备
180 block USB块设备(U盘之类)
0 = /dev/uba 第1个USB 块设备
8 = /dev/ubb 第2个USB 块设备
16 = /dev/ubc 第3个USB 块设备