在 Linux 系统中,字符设备(Character Devices)主要存放在以下两个位置:
/dev/dev//dev 目录下。c(通过 ls -l 查看时,权限位的第一个字符显示为 c)。bash
crw-rw-rw- 1 root root 1, 3 Jan 1 00:00 /dev/null # null设备(字符设备)
crw------- 1 root root 5, 1 Jan 1 00:00 /dev/console # 控制台(字符设备)/dev/tty*(终端设备)/dev/pts/*(伪终端)/dev/random、/dev/urandom(随机数生成器)/dev/mem(物理内存访问)/proc/devices/proc/devicescat /proc/devices 可以查看当前内核加载的字符设备驱动:
bash
Character devices:
1 mem
4 /dev/vc/0
5 /dev/tty
...动态创建设备文件:
mknod 命令手动创建设备文件(需指定主/次设备号和类型):
bash
sudo mknod /dev/my_char_device c 250 0 # 创建一个主设备号为250的字符设备udev(或 devtmpfs)自动管理 /dev 下的设备文件。驱动开发视角:
register_chrdev() 或 cdev 接口注册,成功后会在 /proc/devices 中显示。/dev 下的文件与驱动交互(如 open()、read()、write())。区分字符设备与块设备:
# 查看所有字符设备文件
ls -l /dev | grep '^c'
# 查看已注册的字符设备驱动
cat /proc/devices | grep -A 100 "Character devices"
如果需要进一步分析某个具体设备或驱动,可以提供更多上下文信息(如设备名称或用途)。