在Linux系统中,设备被抽象为文件(设备文件),主要分为以下几类:
/dev/sda1
)。bash
ls -l /dev/sda* # 查看块设备
/dev/ttyS0
)。bash
ls -l /dev/tty* # 查看字符设备
ifconfig
或ip addr
)。/dev
目录。/dev/null
、/dev/zero
、/dev/random
)。/dev/mapper/...
)。bash
ls -l /dev # 查看设备文件
lsblk # 查看块设备树状结构
bash
file /dev/sda1 # 显示块设备
file /dev/tty1 # 显示字符设备
bash
ls -l /dev/sda | awk '{print $5,$6}' # 输出主/次设备号
类型 | 访问方式 | 缓存 | 典型设备 |
---|---|---|---|
块设备 | 数据块随机读写 | 支持 | 硬盘、SSD |
字符设备 | 字节流顺序读写 | 不支持 | 键盘、串口 |
网络设备 | 网络协议栈 | 不适用 | 网卡 |
伪设备 | 内核模拟 | 不适用 | /dev/null, /dev/zero |
通过这种分类,Linux统一了硬件访问接口,使应用程序可以像操作文件一样操作设备。