设备文件
优质
小牛编辑
130浏览
2023-12-01
了解这些设备的最基本要求就是对每个设备文件的含义了如指掌,下面列出了 Linux-3.13.2 内核中常见的已注册设备及其含义(省略了生僻与罕见的设备)。
---------------------------------------------------------------------- 主设备号 设备类型 次设备号=文件名 简要说明 ---------------------------------------------------------------------- 0 未命名设备(例如NFS之类非设备的挂载) 0 = 为空设备号保留 参见主设备号为144,145,146的块设备,以了解"扩展区域"(expansion area) 1 char 内存设备 1 = /dev/mem 物理内存的全镜像。可以用来直接存取物理内存。 2 = /dev/kmem 内核看到的虚拟内存的全镜像。可以用来访问内核中的内容(查看内核变量或用作rootkit之类)。 3 = /dev/null 空设备。任何写入都将被直接丢弃(但返回"成功");任何读取都将得到EOF(文件结束标志)。 4 = /dev/port 存取I/O端口 5 = /dev/zero 零流源。任何写入都将被直接丢弃(但返回"成功");任何读取都将得到无限多的二进制零流。 7 = /dev/full 满设备。任何写入都将失败,并把errno设为ENOSPC(没有剩余空间);任何读取都将得到无限多的二进制零流。 这个设备通常被用来测试程序在遇到磁盘无剩余空间错误时的行为。 8 = /dev/random 真随机数发生器。以背景噪声数据或硬件随机数发生器作为熵池,读取时会返回小于熵池噪声总数的随机字节。 若熵池空了,读操作将会被阻塞,直到收集到了足够的环境噪声为止。建议用于需要生成高强度密钥的场合。 [注意]虽然允许写入,但企图通过写入此文件来"预存"随机数是徒劳的,因为写入的数据对输出并无影响。 9 = /dev/urandom 伪随机数发生器。更快,但是不够安全。仅用于对安全性要求不高的场合。 即使熵池空了,读操作也不会被阻塞,而是把已经产生的随机数做为种子来产生新的随机数。 [注意]虽然允许写入,但企图通过写入此文件来"预存"随机数是徒劳的,因为写入的数据对输出并无影响。 10 = /dev/aio 异步I/O通知接口 11 = /dev/kmsg 任何对该文件的写入都将作为printk的输出;而读取则得到printk的输出缓冲区内容。 1 block RAM disk [已过时,请用TMPFS] 0 = /dev/ram0 第1个 RAM disk 1 = /dev/ram1 第2个 RAM disk ... [说明]将/dev/ram0用作initrd的做法已过时(因为它仅针对image-initrd格式),当下的主流是cpio-initrd格式。 4 char TTY(终端)设备 0 = /dev/tty0 当前虚拟控制台 1 = /dev/tty1 第1个虚拟控制台 ... 63 = /dev/tty63 第63个虚拟控制台 64 = /dev/ttyS0 第1个UART串口 ... 255 = /dev/ttyS191 第192个UART串口 [说明]"UART串口"是指 8250/16450/16550 UART串行控制芯片 4 block 如果根文件系统以是以只读方式挂载的,那么就不可能创建真正的设备节点, 此时就使用该设备作为动态分配的主设备的别名,并挂载为根文件系统。 0 = /dev/root 5 char 辅助 TTY 设备 0 = /dev/tty 当前 TTY 设备 1 = /dev/console 系统控制台(一般是/dev/tty0) 2 = /dev/ptmx 所有 Unix98 PTY master 的复用器 3 = /dev/ttyprintk 内核通过此设备使用printk发送内嵌的用户消息(依赖于CONFIG_TTY_PRINTK) 64 = /dev/cua0 对应于 ttyS0 的呼出(Callout)设备 ... 255 = /dev/cua191 对应于 ttyS191 的呼出(Callout)设备 7 char 虚拟控制台捕捉设备(这些设备既允许读也允许写) 0 = /dev/vcs 当前虚拟控制台(vc)的文本内容 1 = /dev/vcs1 tty1 的文本内容 ... 63 = /dev/vcs63 tty63 的文本内容 128 = /dev/vcsa 当前虚拟控制台(vc)的文本/属性内容 129 = /dev/vcsa1 tty1 的文本/属性内容 ... 191 = /dev/vcsa63 tty63 的文本/属性内容 7 block 回环设备(用一个普通的文件来模拟一个块设备) 0 = /dev/loop0 第1个回环设备 1 = /dev/loop1 第2个回环设备 ... [提示]对回环设备的绑定由 mount(8) 或 losetup(8) 处理 8 block SCSI 磁盘(0-15) 0 = /dev/sda 第1个 SCSI 磁盘(整个磁盘) 16 = /dev/sdb 第2个 SCSI 磁盘(整个磁盘) 32 = /dev/sdc 第3个 SCSI 磁盘(整个磁盘) ... 240 = /dev/sdp 第16个 SCSI 磁盘(整个磁盘) 分区表示方法如下(以第3个 SCSI 磁盘为例) 33 = /dev/sdc1 第1个分区 34 = /dev/sdc2 第2个分区 ... 47 = /dev/sdc15 第15个分区 [提示]对于DOS分区来说,1-4是主分区,5-15是逻辑分区。但对于GPT分区来说,全是主分区,没有逻辑分区的概念。 [提示]目前的内核将SATA/PATA/IED硬盘统一使用 /dev/sd* 来表示,已经不再使用 /dev/hd* 这种过时的设备文件了。 9 block Metadisk(RAID)设备 0 = /dev/md0 第1组 metadisk 1 = /dev/md1 第2组 metadisk ... [说明]MD驱动(CONFIG_BLK_DEV_MD)的作用是将同一个文件系统分割到多个物理磁盘上。 10 char 各种杂项设备(含非串口鼠标) 1 = /dev/psaux PS/2鼠标 128 = /dev/beep 能够让主板的蜂鸣器发出不同频率声音的设备(Fancy Beeper Daemon) 130 = /dev/watchdog 看门狗(CONFIG_WATCHDOG) 131 = /dev/temperature 机器内部温度 135 = /dev/rtc 实时时钟(Real Time Clock) 143 = /dev/pciconf PCI配置空间 144 = /dev/nvram 非易失配置RAM 151 = /dev/led 发光二极管(LED)灯 152 = /dev/kpoll 内核轮询(Poll)驱动 156 = /dev/lcd 液晶(LCD)显示屏 161 = /dev/userdma 用户空间DMA访问 162 = /dev/smbus 系统管理总线(System Management Bus) 164 = /dev/ipmo Intel的智能平台管理(Intelligent Platform Management)接口 165 = /dev/vmmon VMware虚拟机监视器 170 = /dev/thinkpad/thinkpad Thinkpad设备 173 = /dev/ipmikcs 智能平台管理(Intelligent Platform Management)接口 175 = /dev/agpgart AGP图形地址重映射表(Graphics Address Remapping Table) 182 = /dev/perfctr 性能监视计数器 183 = /dev/hwrng 通用硬件随机数发生器 184 = /dev/cpu/microcode CPU微代码更新接口(依赖于CONFIG_MICROCODE) 186 = /dev/atomicps 进程状态数据的原子快照 188 = /dev/smbusbios SMBus(系统管理总线) BIOS 189 = /dev/ussp_ctl 用户空间串口控制器 200 = /dev/net/tun TAP/TUN 网络设备(TAP/TUN以软件的方式实现了网络设备) TAP模拟了以太网帧(第二层),TUN模拟了IP包(第三层)。 202 = /dev/emd/ctl 增强型 Metadisk RAID (EMD) 控制器 203 = /dev/cuse 用户空间的字符设备(Character device in user-space) 212 = /dev/watchdogs/0 第一只看门狗 213 = /dev/watchdogs/1 第二只看门狗 214 = /dev/watchdogs/2 第三只看门狗 215 = /dev/watchdogs/3 第四只看门狗 220 = /dev/mptctl Message passing technology (MPT) control 223 = /dev/input/uinput 用户层输入设备 224 = /dev/tpm TCPA TPM driver 227 = /dev/mcelog X86_64 Machine Check Exception driver 228 = /dev/hpet 高精度事件定时器(HPET) 229 = /dev/fuse Fuse(用户空间的虚拟文件系统) 231 = /dev/snapshot 系统内存快照 232 = /dev/kvm 内核虚构机(基于AMD SVM和Intel VT硬件虚拟技术) 234 = /dev/btrfs-control Btrfs文件系统控制设备 235 = /dev/autofs Autofs控制设备 236 = /dev/mapper/control 设备映射(Device-Mapper)控制器 237 = /dev/loop-control 回环设备控制器 238 = /dev/vhost-net 用于 virtio net 的宿主内核加速器 11 block SCSI CD-ROM 设备 0 = /dev/scd0 第1个 SCSI CD-ROM 1 = /dev/scd1 第2个 SCSI CD-ROM ... 13 char 核心输入设备 0 = /dev/input/js0 第一个游戏杆(joystick) 1 = /dev/input/js1 第二个游戏杆(joystick) ... 32 = /dev/input/mouse0 第1个鼠标 33 = /dev/input/mouse1 第2个鼠标 ... 63 = /dev/input/mice 所有鼠标的合体 64 = /dev/input/event0 第1个事件队列 65 = /dev/input/event1 第2个事件队列 ... 14 char OSS(Open Sound System)兼容设备[已过时] 0 = /dev/mixer OSS混音控制器(CONFIG_SND_MIXER_OSS) 1 = /dev/sequencer OSS音序器(CONFIG_SND_SEQUENCER_OSS) 3 = /dev/dsp OSS数字音频波形输出设备(CONFIG_SND_PCM_OSS) 8 = /dev/sequencer2 第二OSS音序器(CONFIG_SND_SEQUENCER_OSS) 16 = /dev/mixer1 第二OSS混音控制器(CONFIG_SND_MIXER_OSS) 19 = /dev/dsp1 第二OSS数字音频波形输出设备(CONFIG_SND_PCM_OSS) 21 char 通用 SCSI 设备(通常是SCSI光驱) 0 = /dev/sg0 第1个通用 SCSI 设备 1 = /dev/sg1 第2个通用 SCSI 设备 ... [说明]许多发行版还将这些设备命名为 /dev/sga, /dev/sgb, /dev/sgc ... 29 char 通用帧缓冲(frame buffer)设备 0 = /dev/fb0 第1个帧缓冲设备 1 = /dev/fb1 第2个帧缓冲设备 ... 31 = /dev/fb31 第32个帧缓冲设备 43 block 网络块设备(Network block devices) 0 = /dev/nb0 第1个网络块设备 1 = /dev/nb1 第2个网络块设备 ... 44 block 闪存转换层(Flash Translation Layer)文件系统 0 = /dev/ftla 第1个MTD(Memory Technology Device)上的FTL 16 = /dev/ftlb 第2个MTD(Memory Technology Device)上的FTL 32 = /dev/ftlc 第3个MTD(Memory Technology Device)上的FTL ... 240 = /dev/ftlp 第16个MTD(Memory Technology Device)上的FTL [说明]分区的表示方法与SCSI磁盘相同(最大15个) 65 block SCSI 磁盘(16-31) 0 = /dev/sdq 第17个 SCSI 磁盘(整个磁盘) 16 = /dev/sdr 第18个 SCSI 磁盘(整个磁盘) 32 = /dev/sds 第19个 SCSI 磁盘(整个磁盘) ... 240 = /dev/sdaf 第32个 SCSI 磁盘(整个磁盘) 66 block SCSI 磁盘(32-47) 0 = /dev/sdag 第33个 SCSI 磁盘(整个磁盘) 16 = /dev/sdah 第34个 SCSI 磁盘(整个磁盘) 32 = /dev/sdai 第35个 SCSI 磁盘(整个磁盘) ... 240 = /dev/sdav 第48个 SCSI 磁盘(整个磁盘) 67 block SCSI 磁盘(48-63) 0 = /dev/sdaw 第49个 SCSI 磁盘(整个磁盘) 16 = /dev/sdax 第50个 SCSI 磁盘(整个磁盘) 32 = /dev/sday 第51个 SCSI 磁盘(整个磁盘) ... 240 = /dev/sdbl 第64个 SCSI 磁盘(整个磁盘) 81 char video4linux 0 = /dev/video0 第1个视频采集设备(摄像头) ... 63 = /dev/video63 第64个视频采集设备(摄像头) 64 = /dev/radio0 第1个无线电设备(收音机之类) ... 127 = /dev/radio63 第64个无线电设备(收音机之类) 224 = /dev/vbi0 第1个垂直中断(vertical blank interrupt) ... 255 = /dev/vbi31 第64个垂直中断(vertical blank interrupt) 89 char I2C 总线接口 0 = /dev/i2c-0 第1个 I2C 适配器 1 = /dev/i2c-1 第2个 I2C 适配器 ... 90 char 内存技术设备(Memory Technology Device) (RAM, ROM, Flash) 0 = /dev/mtd0 第1个 MTD (读写) 1 = /dev/mtdr0 第1个 MTD (只读) ... 30 = /dev/mtd15 第16个 MTD (读写) 31 = /dev/mtdr15 第16个 MTD (只读) 93 block NAND闪存转换层(Flash Translation Layer)文件系统 0 = /dev/nftla 第1个NFTL层 16 = /dev/nftlb 第2个NFTL层 ... 240 = /dev/nftlp 第16个NFTL层 [说明]分区的表示方法与SCSI磁盘相同(最大15个) 98 block 用户模式下的虚拟块设备(分区处理方式与 SCSI 磁盘相同) 0 = /dev/ubda 第1个用户模式块设备 16 = /dev/udbb 第2个用户模式块设备 ... 108 char 独立于特定设备的 PPP 接口 0 = /dev/ppp 独立于特定设备的 PPP 接口(CONFIG_PPP) 117 block 企业卷管理系统(Enterprise Volume Management System) 0 = /dev/evms/block_device EVMS块设备 1 = /dev/evms/legacyname1 第1个EVMS传统设备 2 = /dev/evms/legacyname2 第2个EVMS传统设备 ... 两个范围都可以相互延伸(向上/向下)一直到它们相遇 ... 254 = /dev/evms/EVMSname2 第2个EVMS本地设备 255 = /dev/evms/EVMSname1 第1个EVMS本地设备 [说明]"legacyname"来源于普通的块设备名, 例如 /dev/sda5 将会变成 /dev/evms/sda5 119 char VMware虚拟网路控制器 0 = /dev/vnet0 第1个虚拟网路 1 = /dev/vnet1 第2个虚拟网路 ... 128-135 char Unix98 PTY master 这些设备不应当存在设备节点,而应当通过 /dev/ptmx 接口访问。 136-143 char Unix98 PTY slave 0 = /dev/pts/0 第1个 Unix98 PTY slave 1 = /dev/pts/1 第2个 Unix98 PTY slave ... 这些设备节点是自动生成的(伴有适当的权限和模式),不能手动创建。 方法是通过使用适当的 mount 选项(通常是:mode=0620,gid=<"tty"组的gid>) 将 devpts 文件系统挂载到 /dev/pts 目录即可。 144 block 用于更多非设备型挂载的扩展区域(Expansion Area)#1 0 = mounted device 256 255 = mounted device 511 145 block 用于更多非设备型挂载的扩展区域(Expansion Area)#2 0 = mounted device 512 255 = mounted device 767 146 block 用于更多非设备型挂载的扩展区域(Expansion Area)#3 0 = mounted device 768 255 = mounted device 1023 147 block DRBD(Distributed Replicated Block Device) 0 = /dev/drbd0 第1个 DRBD 设备 1 = /dev/drbd1 第2个 DRBD 设备 ... 153 block EMD(Enhanced Metadisk RAID)存储单元(分区处理方式与 SCSI 磁盘相同) 0 = /dev/emd/0 第1个存储单元 1 = /dev/emd/0p1 第1个存储单元的第1个分区 2 = /dev/emd/0p2 第1个存储单元的第2个分区 ... 15 = /dev/emd/0p15 第1个存储单元的第15个分区 16 = /dev/emd/1 第2个存储单元 32 = /dev/emd/2 第3个存储单元 ... 240 = /dev/emd/15 第16个存储单元 179 block MMC(MultiMeidaCard)块设备 0 = /dev/mmcblk0 第1块 SD/MMC 卡 1 = /dev/mmcblk0p1 第1块 SD/MMC 卡的第1个分区 8 = /dev/mmcblk1 第2块 SD/MMC 卡 ... [说明]每个MMC块设备保留的次设备号数量由 CONFIG_MMC_BLOCK_MINORS 决定(默认=8)。 或者也可以通过内核引导参数 mmcblk.perdev_minors 进行修改。 180 char USB字符设备 0 = /dev/usb/lp0 第1个USB打印机 ... 15 = /dev/usb/lp15 第16个USB打印机 48 = /dev/usb/scanner0 第1个USB扫描仪 ... 63 = /dev/usb/scanner15 第16个USB扫描仪 96 = /dev/usb/hiddev0 第1个USB人机界面设备(鼠标/键盘/游戏杆/手写版等) ... 111 = /dev/usb/hiddev15 第16个USB人机界面设备(鼠标/键盘/游戏杆/手写版等) 132 = /dev/usb/idmouse ID Mouse (指纹扫描仪) 180 block USB块设备 0 = /dev/uba 第1个USB块设备 8 = /dev/ubb 第2个USB块设备 16 = /dev/ubc 第3个USB块设备 ... 192 char 内核 profiling 接口 0 = /dev/profile Profiling 控制设备 1 = /dev/profile0 CPU 0 的 Profiling 设备 2 = /dev/profile1 CPU 1 的 Profiling 设备 ... 193 char 内核事件跟踪接口 0 = /dev/trace 跟踪控制设备 1 = /dev/trace0 CPU 0 的跟踪设备 2 = /dev/trace1 CPU 1 的跟踪设备 ... 195 char Nvidia 图形设备(比如显卡) 0 = /dev/nvidia0 第1个 Nvidia 卡 1 = /dev/nvidia1 第2个 Nvidia 卡 ... 255 = /dev/nvidiactl Nvidia卡控制设备 202 char 特定于CPU模式的寄存器(model-specific register,MSR) 0 = /dev/cpu/0/msr CPU 0 的 MSRs 1 = /dev/cpu/1/msr CPU 1 的 MSRs ... 202 block Xen 虚拟块设备 0 = /dev/xvda 第1个 Xen 虚拟磁盘(整块磁盘) 16 = /dev/xvdb 第2个 Xen 虚拟磁盘(整块磁盘) 32 = /dev/xvdc 第3个 Xen 虚拟磁盘(整块磁盘) ... 240 = /dev/xvdp 第16个 Xen 虚拟磁盘(整块磁盘) [说明]分区的表示方法与SCSI磁盘相同(最大15个) 203 char CPU CPUID 信息 0 = /dev/cpu/0/cpuid CPU0的CPUID 1 = /dev/cpu/1/cpuid CPU1的CPUID ... 226 char DRI(Direct Rendering Infrastructure) 0 = /dev/dri/card0 第1个显卡 1 = /dev/dri/card1 第2个显卡 ... 232 char 生物识别设备 0 = /dev/biometric/sensor0/fingerprint 第1个设备的第1个指纹传感器 1 = /dev/biometric/sensor0/iris 第1个设备的第1个虹膜传感器 2 = /dev/biometric/sensor0/retina 第1个设备的第1个视网膜传感器 3 = /dev/biometric/sensor0/voiceprint 第1个设备的第1个声波传感器 4 = /dev/biometric/sensor0/facial 第1个设备的第1个面部传感器 5 = /dev/biometric/sensor0/hand 第1个设备的第1个手掌传感器 ... 10 = /dev/biometric/sensor1/fingerprint 第2个设备的第1个指纹传感器 ... 20 = /dev/biometric/sensor2/fingerprint 第3个设备的第1个指纹传感器 ...