UNIX文件系统解析与磁盘空间统计
1. 收集文件系统信息的方法
在某些情况下,我们需要收集单个文件系统中所有文件的大量信息,例如进行磁盘空间统计,为每个用户使用的磁盘空间计费。一种常见的方法是读取顶级目录(文件系统挂载点),然后递归遍历其所有子目录。然而,这种方法效率极低,因为它需要大量的操作系统开销来确定每个目录项的类型(文件、目录、符号链接等),并打开文件系统中的每个目录。
为了提高效率,通常最好直接从磁盘读取信息,而不通过文件系统。这需要解读存储在磁盘上用于跟踪文件系统的数据结构,有时还需要读取文件系统中存储的文件的实际数据块。
2. 磁盘术语
在介绍文件系统如何布局在磁盘上之前,需要了解一些磁盘驱动器相关的术语:
- 磁盘驱动器 :通常由两部分组成,磁盘组(用于存储实际数据)和用于在磁盘组和其他设备之间传输数据的硬件。
- 磁盘组 :由多个盘片组成,盘片类似于留声机唱片,相互堆叠且中间有间隙。每个盘片通常有两个可记录信息的表面,但顶部和底部盘片的外表面不使用。
- 读写头 :每个磁盘组表面都有一个读写头,读写头可以从磁盘组边缘向中心移动,通常磁盘驱动器中的所有读写头会作为一个整体移动。
- 磁道 :在读写操作期间,读写头在盘片的特定部分保持静止,而磁盘组高速旋转。单个静止读写头可以读写的区域称为磁道,磁道是同心圆。
- 柱面 :所有盘片表面上同时位于读写头下方的磁道集合称为柱面。
-
超级会员免费看
订阅专栏 解锁全文
977

被折叠的 条评论
为什么被折叠?



