在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统一了硬件访问接口,使应用程序可以像操作文件一样操作设备。