字符设备和块设备的区别
字符设备
-
字符以每个字符为单位进行读写操作设备。它们是一种逐字符流式设备,字符都是独立的。
-
例如,键盘、USB、串口设备等通常被视为字符设备,因为它们接受和发送单个字符或字节的数据。
-
字符通常不支持随机访问,设备只能按顺序访问数据。因此,无法像文件系统那样以块为单位读取或写入数据。
-
字符的数据传输通常是非缓冲设备的,数据直接传递到应用程序,不涉及数据缓存。
块设备(文件系统)
-
块以块为单位进行读写操作设备。块通常具有固定的大小,如磁盘块的大小。
-
例如,硬盘驱动器、SSD硬盘(SSD)、USB驱动器等通常被视为块设备,因为它们支持按块读写数据。
-
块设备支持随机访问,可以以块但闻读取或写入数据。这使得块设备非常适合用于文件系统,因为文件系统通常以块为单位管理数据。
-
块的数据传输通常涉及数据缓冲设备,操作系统会在内存中维护设备的数据缓冲,以提高性能。
总结
- 字符设备以字符为单位进行操作,块设备以块为单位进行操作。
- 字符设备适用于流式数据、块设备适用于随机访问数据。
- 字符设备通常不涉及数据服务器,块设备通常不涉及数据服务器。
在Linux和其他类Unix系统中,字符设备和块设备都以设备文件的形式存在于'/dev'目录下,并由相应的设备驱动程序控制。应用程序可以通过打开设备文件并使用标准的I/O操作来与这些设备进行交互。
本文作者:不会笑的孩子
本文链接:https://www.cnblogs.com/doubleconquer/p/17726667.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步