UNIX文件系统数据结构访问与磁盘操作解析
1. 文件系统数据读取背景
在某些操作中,直接读取磁盘来访问文件系统比通过操作系统内核更有优势,常见的如文件系统备份。这样做的主要原因是速度快,直接读取磁盘能显著提升操作效率,并且这也是读取含“空洞”文件并仅获取实际使用磁盘块的唯一方法。不过,直接读取磁盘操作复杂,程序需了解磁盘上文件系统数据结构的布局,正确解读一些“私有”信息位。由于该操作绕过了所有安全机制(如文件所有权和权限位),通常只有超级用户才能进行(通过设置文件系统的块和字符特殊设备的所有权和权限)。
2. 常见文件系统类型
多年来,发展出了两种常见的磁盘文件系统:由Ken Thompson和Dennis Ritchie发明的原始文件系统,以及由Kirk McKusick、Bill Joy、Sam Leffler和Robert Fabry开发的伯克利快速文件系统。在SVR4中,两种文件系统都被支持,稍作修改的原始文件系统称为“System V文件系统”,快速文件系统称为“UNIX文件系统”。Solaris 2.x仅支持快速文件系统(“UNIX文件系统”),已移除对“System V文件系统”的支持。这里主要讨论快速文件系统,因其更受欢迎,不过相关讨论在很大程度上也适用于旧文件系统,只是细节有所不同(一般来说,旧文件系统实现稍简单,但效率低很多)。需要注意的是,Silicon Graphics使用自己的文件系统格式,即扩展文件系统(EFS),它与这里描述的UFS文件系统有相似之处,但也存在差异。
3. 磁盘术语
为理解文件系统在磁盘上的布局,需先了解磁盘驱动器的工作原理。
- 磁盘结构
超级会员免费看
订阅专栏 解锁全文
1718

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



