在Unix-like操作系统中,设备文件(device file),也被称为专用文件(special file),它为设备驱动提供一个接口,使得操作系统(用户)可以像操作文件一样对设备进行访问(Windows操作系统也借用了类似的概念)。一般I/O设备可以分为字符设备(character device )和 块设备(block device),两者的区别在于:
- 字符设备没有数据缓冲(unbuffered),即一次只写入或读出一个字符;块设备是有数据缓冲的,缓冲可以为输入输出保存一“块”(block)数据,当缓冲区填满后,系统(用户)便可以对数据进行读或写操作;
- 字符设备一次只进行一个字符的输入输出,它通常不支持随机的访问,相反,块设备则可以进行数据的随机访问与定位;
常见的字符设备有:鼠标,键盘,串行接口设备,声卡等;常见的块设备有:磁盘,CD_ROM驱动器,闪存驱动器等。
参考文献:
[2] What are character special and block special files in a unix system?
[3] character devices VS block devices