在 Linux 系统中,设备主要分为以下几类,除了常见的块设备(Block Device),还有其他重要的设备类型:
/dev/input/*)/dev/ttyS*)/dev/tty*)/dev/random、/dev/urandom)/dev/snd/*)open()、read()、write() 等系统调用直接操作。eth0、wlan0)访问,不以文件形式存在于 /dev 目录。数据传输基于数据包(Packet)。eth0)wlan0)tun/tap)ifconfig、ip、nmcli 等。/dev/null(黑洞设备,丢弃所有写入的数据)/dev/zero(提供无限的空字符 \0)/dev/loop*(环回设备,将文件模拟为块设备)/dev/pts/*(伪终端,用于 SSH 或终端仿真)procfs(/proc):提供进程和内核信息的虚拟文件系统。sysfs(/sys):暴露内核对象(设备、驱动等)的层级结构。devtmpfs(/dev):动态管理设备节点的虚拟文件系统。/dev/misc,用于无法明确归类的设备(如内核调试接口)。/dev/dri/* 或专用驱动(如 NVIDIA 的 /dev/nvidia*)访问。bash
ls -l /dev # 查看设备文件类型
c(如 crw--w---- 1 root tty 4, 1 /dev/tty1)。b(如 brw-rw---- 1 root disk 8, 0 /dev/sda)。ip link 或 ifconfig 查看,无 /dev 节点。| 类型 | 访问方式 | 缓存 | 典型用途 |
|---|---|---|---|
| 块设备(b) | 按块随机访问 | 有缓存 | 磁盘、SSD |
| 字符设备(c) | 按字节流顺序访问 | 通常无缓存 | 键盘、串口、终端 |
| 网络设备 | 数据包(Socket) | 无文件节点 | 网卡、虚拟网络接口 |
通过理解这些设备类型,可以更高效地管理 Linux 系统硬件资源或开发驱动程序。如果需要进一步探讨某一类设备,请随时提问!