深入探索文件系统:结构、访问方法与目录管理
1. 文件系统基础
在计算机系统中,文件系统是管理和组织数据的关键部分。文件通常包含数据分支(data fork)和资源分支(resource fork)。资源分支存储着用户感兴趣的信息,例如程序中显示的按钮标签。以Macintosh操作系统为例,它提供了工具,允许用户修改资源分支中的数据,方便外国用户将按钮标签改为自己的语言。而数据分支则包含程序代码或传统的文件内容。在UNIX或MS - DOS系统中,若要实现类似的修改,程序员通常需要更改并重新编译源代码,除非创建了用户可更改的数据文件。这表明操作系统支持常用结构能为程序员节省大量精力,但结构过多会导致系统臃肿和程序员困惑,过少则会使编程不便。
2. 内部文件结构
操作系统在文件内部定位偏移量可能会很复杂。磁盘系统有明确的块大小,由扇区大小决定,所有磁盘I/O操作都以块(物理记录)为单位,且所有块大小相同。然而,物理记录大小很难与所需的逻辑记录长度完全匹配,逻辑记录长度甚至可能不同。常见的解决方法是将多个逻辑记录打包到物理块中。
以UNIX操作系统为例,它将所有文件定义为简单的字节流,每个字节可通过其相对于文件开头(或结尾)的偏移量单独寻址,此时逻辑记录大小为1字节。文件系统会根据需要自动将字节打包和解包到物理磁盘块中,例如每个块为512字节。
逻辑记录大小、物理块大小和打包技术决定了每个物理块中包含的逻辑记录数量。打包可以由用户的应用程序或操作系统完成,无论哪种方式,文件都可视为块的序列,基本I/O函数都以块为单位操作。从逻辑记录到物理块的转换是一个相对简单的软件问题。
但由于磁盘空间总是按块分配,每个文件的最后一个块
超级会员免费看
订阅专栏 解锁全文
5万+

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



