Linux 中 I/O 设备分为两类:字符设备和块设备。两种设备本身没有严格限制,但是,基于不同的功能进行了分类来。
(1)字符设备
提供连续的数据流,应用程序可以顺序读取,通常不支持随机存取。相反,此类设备支持按字节自 / 字符来读写数据。举例来说,键盘、串口、调制解调器都是典型的字符设备。
(2)块设备
应用程序可以随机访问设备数据,程序可自行确定读取数据的位置。硬盘、软盘、CD-ROM 驱动器和闪存都是典型度的块设备,应用程序可以寻址磁盘上的任何位置,并由此读取数据。此外,数据的读写知只能以块(通常是 512B)的倍数进行。与字符设备不同,块设备并不支持基于字符的寻址。
总结
这两种类型的设备的根本区别在于它们是否可以被随机访问。字符设备只能顺序读取道,块设备可以随机读取。
(SAW:Game Over!)