为什么字符或块文件的大小以逗号分隔?
crw-rw-rw-. 1 root root 1, 3 Mar 8 10:15 /dev/null
brw-rw----. 1 root disk 8, 1 Mar 8 10:15 /dev/sda1
文件的大小是指在存储设备中占用的字节数。对于字符文件或块文件,大小是多少?您能用逗号解释一下它的表示吗?
答案1
这些值无论如何都不代表大小,而是引用某种设备标识。
查看 Linux 文档项目页,他们说:
设备按类型定义,例如“块”或“字符”以及“主要”和“次要”数字。主编号用于对设备进行分类,次编号用于标识特定设备类型。例如,连接到主控制器的所有 IDE 设备的主设备号均为 3。主设备和从设备以及各个分区通过使用次设备号进一步定义。这些是以下显示中日期之前的两个数字:
brw-rw---- 1 root disk 3, 0 Mar 15 2002 /dev/hda
brw-rw---- 1 root disk 3, 1 Mar 15 2002 /dev/hda1
brw-rw---- 1 root disk 3, 10 Mar 15 2002 /dev/hda10
brw-rw---- 1 root disk 3, 11 Mar 15 2002 /dev/hda11
brw-rw---- 1 root disk 3, 12 Mar 15 2002 /dev/hda12
brw-rw---- 1 root disk 3, 64 Mar 15 2002 /dev/hdb
brw-rw---- 1 root disk 3, 65 Mar 15 2002 /dev/hdb1
brw-rw---- 1 root disk 22, 0 Mar 15 2002 /dev/hdc
brw-rw---- 1 root disk 22, 64 Mar 15 2002 /dev/hdd
hda 和 hdb 设备的主设备号都是 3。当然,每个特定分区的次设备号都会发生变化。每个主编号类别的定义可以通过查看 /usr/src/linux/include/linux/major.h 文件的内容来检查。 devices.txt 还记录了主要编号和次要编号。它位于 /usr/src/linux/Documentation 目录中。该文件定义了主编号。几乎所有文件设备都是在安装时默认创建的。但是,您始终可以使用 mknod 命令或位于 /dev 目录本身的 MAKEDEV 脚本创建设备。通过提供要创建的设备、设备类型(块或字符)以及主设备号和次设备号,可以使用此实用程序创建设备。