在 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 读取高熵随机数。如果有特定设备的使用问题或驱动开发需求,可以进一步探讨!