在 Linux 系统中,字符设备(Character Devices)是一种按字节流顺序访问的设备,通常用于数据传输量较小或需要逐字节处理的场景。以下是常见的字符设备分类及示例:
/dev/ttyN
(如 /dev/tty1
~/dev/tty6
):本地文本终端,通过 Ctrl+Alt+F1~F6
切换。/dev/pts/N
(如 /dev/pts/0
):用于远程登录(SSH)或图形终端模拟器(如 GNOME Terminal)。/dev/ttyS*
(如 /dev/ttyS0
):物理串口设备(如 RS-232)。/dev/input/event*
:通用输入事件接口(如键盘、鼠标)。/dev/input/by-path/*
:按物理路径链接的输入设备。/dev/input/mice
:传统鼠标设备(PS/2 或 USB)。/dev/null
:丢弃所有写入的数据,读取时返回 EOF。/dev/random
、/dev/urandom
:内核提供的随机数源。/dev/zero
:读取时返回无限的空字节(\0
)。/dev/snd/*
:ALSA 音频子系统设备(如 /dev/snd/pcmC0D0p
为第一个声卡的播放设备)。/dev/lp0
、/dev/lp1
:传统并行端口打印机(LPT)。/dev/mem
:直接访问物理内存(需 root 权限)。/dev/kmem
:访问内核虚拟内存(已逐渐被废弃)。/dev/fb*
(如 /dev/fb0
):图形显示缓冲区的直接访问。/dev/st*
(SCSI 磁带机)。/dev/hidraw*
:原始 HID 设备(如 USB 键盘/鼠标)。/dev/gpio*
:通用输入输出接口(部分系统通过 sysfs 替代)。使用 ls
命令
字符设备文件在 ls -l
输出中以 c
标识:
ls -l /dev/tty1
# 输出示例:crw--w---- 1 root tty 4, 1 Jun 10 10:00 /dev/tty1
# "c" 表示字符设备,"4, 1" 为主/次设备号。
通过设备号筛选
ls -l /dev | grep '^c'
查看内核已注册设备
cat /proc/devices | grep -A 100 "Character devices"
/dev/ttyS0
与嵌入式设备通信。/dev/null
。/dev/random
读取高熵随机数。如果有特定设备的使用问题或驱动开发需求,可以进一步探讨!