设备文件

此页由Linux Wiki用户Chenxing于2012年6月23日 (星期六) 00:59的最后更改。

出自Linux Wiki

提示:此文已超过 12 年(4534 天)未更新,如发现内容过时或有误,欢迎改进:)

Linux中的设备都以文件形式存在于/dev中,内核文档对其做了详尽的介绍[1],国内也有翻译文档[2]。本文只摘录较常用的设备。

常用设备

按照Linux的文件类型概念,设备文件分为字符设备文件和块设备文件。下面对两类设备文件中较常用的分别做介绍,设备号可以使用ls -l /dev看到。

字符设备
主设备号 次设备号 文件名 简介
1 1 /dev/mem 访问物理内存
2 /dev/kmem 访问经内核映射后的内存(Kernel Virtual Memory)
3 /dev/null 空设备。写入该设备的信息将被直接丢弃,读取都将得到EOF。
4 /dev/port 访问I/O端口
5 /dev/zero 产生null(0x00)字节序列
7 /dev/full 对该设备的写操作将导致ENOSPC(无剩余空间)错误。可用于测试磁盘空间满时程序的行为(见/dev/full
8 /dev/random 随机数产生器。Linux中可依据系统的环境噪声产生真随机数,故速度很慢([3]
9 /dev/urandom 更快但不够安全的随机数发生器
2 * /dev/ptyp* 伪终端,Pseudo-TTY masters
3 * /dev/ttyp* 伪终端,Pseudo-TTY slaves
4 0-63 /dev/tty0-63 虚拟控制台
64-255 /dev/ttyS0-191 UART串口
5 0 /dev/tty 当前的TTY设备
1 /dev/console 当前的控制台设备
6 * /dev/lp* 并口打印机
10 0-15 /dev/psaux等 非串口的各种鼠标
175 /dev/fuse Fuse
13 0,1.. /dev/js0,1.. Joystick
32,33.. /dev/mouse0,1.. 鼠标
63 /dev/mice 统一了的鼠标
64,65.. /dev/input/event0,1.. 事件队列
14 OSS(Open Sound System)设备,如mixer等


块设备
主设备号 次设备号 文件名 简介
1 * /dev/ram* ramdisk
2 * /dev/fd* 软驱
3 0 /dev/hda 第一个主IDE设备,如硬盘或光驱
64 /dev/hdb 第一个从IDE设备
1 /dev/hda1 hda的第一个分区
...
63 /dev/hda63 hda的第63个分区
4 0 /dev/root 根文件系统以只读方式挂载时使用该设备作为动态分配的主(major)设备的别名
7 * /dev/loop* loop设备,用于挂载在非块设备上的文件系统,如ISO格式的虚拟光驱文件
8 0 /dev/sda 第一个SCSI磁盘(USB硬盘、SATA硬盘都按SCSI处理)
16 /dev/sdb 第二个SCSI磁盘(正因如此,最多只支持SCSI设备上15个分区)
11 * /dev/scd* SCSI光驱
22 0,64 /dev/hdc,d 第二个主、从IDE设备

其它常见文件

/dev还有一些文件,它们并不是设备,而是符号链接等。

下表列出了与标准输入输出的一些符号链接文件:

软链接名 目的地 说明
/dev/fd /proc/self/fd 文件描述符
/dev/stdin fd/0 文件描述符(标准输入)
/dev/stdout fd/1 文件描述符(标准输出)
/dev/stderr fd/2 文件描述符(标准错误输出)

参考资料

  1. 内核文档中对设备文件命名的介绍
  2. 金步国:Linux设备文件简介
  3. Wikipedia: /dev/random

本文对您有帮助?分享给更多朋友!

反馈与讨论

发现文档不全面、有错误却没时间编辑文档?想分享自己的经验或见解?欢迎在此留言、讨论。
个人工具
简体繁体转换