Linux 中的字符和块设备权限

Linux 中的字符和块设备权限

我正在尝试学习linux文件权限。在这种情况下,除了 crwxrwxrwx 中的(字符设备)“c”和 brwxrwxrwx 中的(块设备)“b”之外,大多数事情对我来说都很清楚。维基百科将字符设备解释为:

字符特殊文件或字符设备提供对硬件设备的无缓冲、直接访问。它们不一定允许程序一次读取或写入单个字符;这取决于相关设备。

关于块设备:

块特殊文件或块设备提供对硬件设备的缓冲访问,并提供对其细节的一些抽象。 [5]与字符设备不同,块设备始终允许程序员读取或写入任何大小(包括单个字符/字节)和任何对齐方式的块。

这个解释对我来说有点太技术性了。任何人都可以用更简单的方式解释这一点吗?问候

答案1

字符设备对比块设备,

  • 字符 ('c') 设备是驱动程序通过发送和接收单个字符(字节、八位字节)与其进行通信的设备。
  • 块(“b”)设备是驱动程序通过发送整个数据块与其进行通信的设备。

例如,在终端中输入文本使用字符,而对硬盘驱动器进行分区则使用

答案2

b = 块设备基本上是磁盘(sata、sas、scsi、pata、ide 连接单元)(但它可能是另一个容器/磁盘的一部分)

虽然磁带单元可能是基于字符的设备(但它是使用 sas/scsi/sata/ide/pata/fc/iSCSI(某种)连接的...)

所有块设备均由使用进程以较小/或较大数量的字节/八位字节的形式读取和写入。

c = 字符设备:一次一个字节/八位字节。

大多数设备通常由内核访问(例如在内核中执行的文件系统代码),但磁盘(面向块)由 dd 转储到磁带?

提示:一个块被读入进程内存,然后一次一个字节转储到磁带,同时另一个块被读入内存。

为了使磁带正常运行,系统必须能够跟上写入的速度(这样,即使是原始的磁带子系统也能够以与磁带前进一样快的速度传输数据,即写入数据,同时保持磁带传输速度恒定。)在这种情况下,运行 dd 的进程直接访问文件系统,而不是通过打开每个文件本身然后转储它。

如果您使用 tar,该进程将使用正常的打开/读取/关闭系统调用读取每个文件或目录。

答案3

您正在查看的是文件模式:

该模式由权限组成,文件类型(您关注的部分)和能力。文件类型与权限无关,你不需要了解它们,才能了解权限。您甚至不需要了解cb类型来使用系统,通常知道它们是设备类型就足够了。

在 gnu/linux 上设置文件权限等有哪些不同方法有关权限和模式的更多信息。

相关内容