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

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



