常用设备文件介绍
操作系统功能之一就是与周边的输入输出设备进行通信,采用统一的接口来控制这些外围设备。
Linux操作系统的所有设备可分为三种类:块设备(block device、字符设备(character device)和伪设备;并且,Linux沿袭Unix的风格,将所有设备认成是一个文件,叫设备文件。
设备文件命名约定,如下表:
前缀名 | 设备类型 |
| 前缀名 | 设备类型 |
| 前缀名 | 设备类型 |
fb | frame缓冲 | lp | 打印机 | pt | 伪终端 | ||
fd | 软盘 | s | SCSI设备 | tty | 终端 | ||
hd | IDE硬盘 | sg | SCSI通用设备 | ttyS | 串口 | ||
sd | SCSI硬盘 | st | SCSI磁带 | par | 并口 | ||
sr | SCSI光驱 | scd | SCSI音频光驱 |
|
|
大部分设备文件的前缀名后面跟随数字,用于唯一指明某一设备。但,硬盘驱动器的前缀名后面跟随字母和数字,字母用于指明设备,而数字用于指明分区。因此,/dev/sda3指定了硬盘上的一个分区,/dev/pts/2指定了一个网络终端会话。
示例
[root@0xfffff ~]# ls –l /dev/sda*
brw-r----- 1 root disk 8, 0 Dec 10 20:52 /dev/sda
brw-r----- 1 root disk 8, 1 Dec 10 12:52 /dev/sda1
brw-r----- 1 root disk 8, 10 Dec 1020:52 /dev/sda10
brw-r----- 1 root disk 8, 2 Dec 10 12:52 /dev/sda2
brw-r----- 1 root disk 8, 3 Dec 10 12:52 /dev/sda3
brw-r----- 1 root disk 8, 4 Dec 10 20:52 /dev/sda4
brw-r----- 1 root disk 8, 5 Dec 10 12:52 /dev/sda5
brw-r----- 1 root disk 8, 6 Dec 10 12:52 /dev/sda6
brw-r----- 1 root disk 8, 7 Dec 10 12:52 /dev/sda7
brw-r----- 1 root disk 8, 8 Dec 10 20:52 /dev/sda8
brw-r----- 1 root disk 8, 9 Dec 10 12:52 /dev/sda9
[root@0xfffff~]# ls –l /dev/pts/
crw--w----1 root tty 136, 0 Dec 13 20:14 0
crw--w----1 root tty 136, 1 Dec 13 20:12 1
crw--w----1 root tty 136, 2 Dec 13 20:13 2 #/dev/pts/2 网络终端(伪终端)会话,
一、块设备
是一种可以固定大小的数据块为单位进行选址和访问的设备,一般都有缓冲且可以随机存取,例如硬盘、软盘、CD-ROM和内存区域。
/dev/hd[a-t]:IDE设备
/dev/sd[a-z]:SCSI设备
/dev/fd[0-7]:标准软驱
/dev/md[0-31]:软raid设备
/dev/ram[0-15]:内存
/dev/cdrom => /dev/hdc
二、字符设备
是一种以字符流作为操作对象的设备,不能选址操作,大多无缓冲且只能顺序存取。例如打印机,网络接口和终端设备。
/dev/tty[0-63]:虚拟终端
/dev/ttyS[0-3]:串口终端
/dev/lp[0-3]:并口终端,如打印机
/dev/console:控制台
/dev/random:随机数设备
/dev/urandom:随机数设备
三、伪设备
伪设备的设备节点并不一定要对应物理设备。没有这种对应关系的设备是伪设备。
/dev/null:接受和丢弃所有输入;即不产生任何输出,,相当于黑洞。
/dev/full:永远在被填满状态的设备。
/dev/loop[0-7]:本地回环设备
/dev/zero:产生连续的NUL字符的串流(数值为0),无限零资源。
/dev/random:产生一个虚假随机的任意长度字符串流。(Blocking)
/dev/urandom:产生一个虚假随机的任意长度字符串流。(Non-Blocking)
/dev/ptmx /dev/pts/0~N:产生1至N个网络终端(伪终端)会话
四、常见设备文件的设备号
为了方便管理,操作系统将这些设备统一地以设备号分类,每个类型中的设备再依据(主、次)设备号加以进一步区分。主设备号相同的设备是同类设备(一般使用同一个驱动程序)。
主设备号:1 类型:字符 设备名称:内存设备
次设备号=文件名称 简要说明
1 = /dev/mem 直接存取物理内存
2 = /dev/kmem 存取经过内核虚拟之后的内存
3 = /dev/null 空设备。任何写入都将被直接丢弃,任何读取都将得到EOF。
4 = /dev/port 存取 I/O 端口
5 = /dev/zero 零字节源,只能读取到无限多的零字节。
8 = /dev/random 随机数发生器。完全由用户的输入来产生随机数。
9 = /dev/urandom 更快的随机数发生器。用户的输入来产生随机数。
10 = /dev/aio 异步 I/O 通知接口
11 = /dev/kmsg 任何对该文件的写入都将作为printk 的输出
主设备号:1 类型:块 设备名称:RAM disk
0 = /dev/ram0 第1个 RAM disk(initrd只能使用ram0)
1 = /dev/ram1 第2个 RAM disk
示例
brw-r----- 1 root disk 1, 0 Dec 10 20:52 ram0
brw-r----- 1 root disk 1, 1 Dec10 20:52 ram1
...
brw-r----- 1 root disk 1, 15 Dec10 20:52 ram15
主设备号:4 类型:字符 设备名称:TTY(终端)设备
0 = /dev/tty0 当前虚拟控制台
1 = /dev/tty1 第1个虚拟控制台
...
63 = /dev/tty63 第63个虚拟控制台
示例
crw-rw---- 1 root tty 4, 0 Dec 10 20:52 tty0
crw------- 1 root root 4, 1 Dec10 18:16 tty1
...
crw-rw---- 1 root tty 4, 63 Dec 10 12:52 tty63
主设备号:5 类型:字符 设备名称:其他TTY 设备
0 = /dev/tty 当前 TTY 设备
1 = /dev/console 系统控制台(一般是/dev/tty0)
2 = /dev/ptmx 所有 PTY master 的复用器
示例
crw-rw-rw- 1 root tty 5, 0 Dec 12 10:50 tty
crw------- 1 root root 5, 1 Dec10 12:53 console
crw-rw-rw- 1 root tty 5, 2 Dec 13 13:35 ptmx
主设备号:7 类型:字符 设备名称:虚拟控制台捕捉设备(允许读写)
0 = /dev/vcs 当前虚拟控制台(vc)的文本内容
1 = /dev/vcs1 tty1 的文本内容
...
6 = /dev/vcs6 tty6的文本内容
128 = /dev/vcsa 当前虚拟控制台(vc)的文本/属性内容
129 = /dev/vcsa1 tty1 的文本/属性内容
...
134 = /dev/vcsa6 tty6 的文本/属性内容
主设备号:7 类型:块 设备名称:回环设备(普通的磁盘文件模拟一个块设备)
0 = /dev/loop0 第1个回环设备
1 = /dev/loop1 第2个回环设备
对回环设备的绑定由 mount 或 losetup处理
主设备号:8 类型:块 设备名称:SCSI 磁盘(0-15)
0 = /dev/sda 第1个 SCSI 磁盘(整个磁盘)
16 = /dev/sdb 第2个 SCSI 磁盘(整个磁盘)
32 = /dev/sdc 第3个 SCSI 磁盘(整个磁盘)
...
240 = /dev/sdp 第16个 SCSI 磁盘(整个磁盘)
主设备号:9 类型:块 设备名称:Metadisk(RAID)设备
0 = /dev/md0 第1组 metadisk
1 = /dev/md1 第2组 metadisk
主设备号:10 类型:字符 设备名称:非串口鼠标,各种杂项设备和特性
1 = /dev/psaux PS/2鼠标
134 = /dev/apm_bios APM(高级电源管理) BIOS
135 = /dev/rtc 实时时钟(Real Time Clock)
162 = /dev/smbus 系统管理总线(SystemManagement Bus)
164 = /dev/ipmo Intel的智能平台管理(IntelligentPlatform Management)接口
175 = /dev/agpgart AGP图形地址重映射表(GraphicsAddress Remapping Table)
188 = /dev/smbusbios SMBus(系统管理总线) BIOS
228 = /dev/hpet HPET driver
231 = /dev/snapshot 系统内存快照
主设备号:11 类型:块 设备名称:SCSI CD-ROM 设备
0 = /dev/scd0 第1个 SCSI CD-ROM
1 = /dev/scd1 第2个 SCSI CD-ROM
主设备号:21 类型:字符 通用 SCSI 设备(通常是SCSI光驱)
0 = /dev/sg0 第1个通用 SCSI 设备
1 = /dev/sg1 第2个通用 SCSI 设备
示例
crw------- 1 root root 21, 0 Dec 10 12:52 sg0