BDEV, CDEV
ls -l 文件类型标识 ls -l 输出第一列的第一个字符表示文件类型: 字符 类型 - 普通文件 d 目录 l 符号链接(symbolic link) c 字符设备(character device) b 块设备(block device) p 命名管道(named pipe / FIFO) s socket 例如 /dev/pts/2 这样的伪终端设备文件,ls -l 第一个字符是 c,因为它是字符设备:数据按字节流顺序读写,不支持像块设备那样按"块"随机寻址。下面分别展开字符设备和块设备的区别。 字符设备, character device 提供连续的数据流,应用程序只能顺序读取,没有寻址(seek)的概念——不能像访问数组那样跳到任意位置读取。此类设备按字节/字符读写数据,键盘、串口、调制解调器都是典型的字符设备。 块设备, block device 块设备以"块"为单位存储数据,典型的如磁盘设备、硬盘、软盘、光盘或者优盘/闪存。在 Linux 系统中一切皆文件,磁盘设备也是文件。应用程序可以随机访问设备数据,自行确定读取数据的位置;数据的读写只能以块(通常是 512 字节)的倍数进行。 ls -l /dev/sd* brw-rw---- 1 root disk 8, 0 Apr 1 07:15 /dev/sda brw-rw---- 1 root disk 8, 1 Apr 1 07:15 /dev/sda1 brw-rw---- 1 root disk 8, 2 Apr 1 07:15 /dev/sda2 brw-rw---- 1 root disk 8, 3 Apr 1 07:15 /dev/sda3 字符设备与块设备:谁支持随机访问 两者的根本区别在于能否被随机访问——即能否在访问设备时随意跳转到任意位置。 ...