字符设备和块设备的区别

字符设备

  • 字符以每个字符为单位进行读写操作设备。它们是一种逐字符流式设备,字符都是独立的。

  • 例如,键盘、USB、串口设备等通常被视为字符设备,因为它们接受和发送单个字符或字节的数据。

  • 字符通常不支持随机访问,设备只能按顺序访问数据。因此,无法像文件系统那样以块为单位读取或写入数据。

  • 字符的数据传输通常是非缓冲设备的,数据直接传递到应用程序,不涉及数据缓存。

块设备(文件系统)

  • 块以块为单位进行读写操作设备。块通常具有固定的大小,如磁盘块的大小。

  • 例如,硬盘驱动器、SSD硬盘(SSD)、USB驱动器等通常被视为块设备,因为它们支持按块读写数据。

  • 块设备支持随机访问,可以以块但闻读取或写入数据。这使得块设备非常适合用于文件系统,因为文件系统通常以块为单位管理数据。

  • 块的数据传输通常涉及数据缓冲设备,操作系统会在内存中维护设备的数据缓冲,以提高性能。

总结

  • 字符设备以字符为单位进行操作,块设备以块为单位进行操作。
  • 字符设备适用于流式数据、块设备适用于随机访问数据。
  • 字符设备通常不涉及数据服务器,块设备通常不涉及数据服务器。
    在Linux和其他类Unix系统中,字符设备和块设备都以设备文件的形式存在于'/dev'目录下,并由相应的设备驱动程序控制。应用程序可以通过打开设备文件并使用标准的I/O操作来与这些设备进行交互。
posted @ 2023-09-24 21:04  不会笑的孩子  阅读(276)  评论(0编辑  收藏  举报