Linux.文件系统精通指南
件系统精通指南 作者:件系统”?al 绍了这个概念以及它的实际应用 尽管内核是 核心, 但文件却是用户与操作系统交互所采用的主要工具。 这对 说尤其如此,这是因为在 统中,它使用文件 I/O 机制管理硬件设备和数据文件。 遗憾的是,新手通常会混淆介绍 件系统概念的术语。术语 文件系统 可以在 件编制中互换使用,用于指代几个不同但相关的概念。除磁盘分区的具体实例外,文件系统还指代数据结构以及分区中文件的管理方法。 另新手更感困惑的是,该术语还用于指代系统中文件的整体组织形式:目录树。此外,该术语还可以指代目录树中的每个子目录,如在 /件系统 中。某些人认为,这些目录和子目录不能称作真正意义上的文件系统,除非它们均驻留在各自的磁盘分区上。然而,其他人却将其称作文件系统,这无疑又增添了困惑。 手可以从上下文中理解这些术语的含义。 而新手却很难在一时半会儿就辨别出这样的上下文。 本文的主要目标就是提供足够的背景知识,以帮助您辨别此术语的上下文。在阐明文件系统术语的细微差别的过程中,您还将学习如何将某些非常有用的相关工具从理论应用上升到实际应用。 本文主要介绍了 核中的 盘分区和文件管理系统特性。此外,还介绍了 核中的新特性。 磁盘分区概述 的基本文件存储单元都是磁盘分区,即将一个或多个硬盘的逻辑划分,操作系统将每个逻辑分区视为独立的磁盘。文件和文件管理系统“居住”在磁盘分区中。 这些磁盘分区作为设备处理,进而通过 /录中的特殊文件使用文件 I/O 机制。 有两种类型的设备文件: 块 和 字符/原始 。两者之间的一个重要差别是,块设备被缓冲,而字符设备因为没有文件管理系统,所以不被缓冲。在 群文件系统 (推出之前,使用原始设备是提高 据文件分区性能的常见方法。(在本文的后续部分,我们将详细介绍原始设备。) 存储在磁盘最开始位置的分区表提供了该磁盘上分区的映射。可以使用 令查看系统的分区表。 # l 40 63 1940 5120 * 512 1 286 2162128+ c * 288 1940 12496680 5 288 289 15088+ 83 290 844 4195768+ 83 845 983 1050808+ 82 984 1816 6297448+ 83 1817 1940 937408+ 83 区表中的名称 / /h 别代表 动器 1 至 4,其中 表驱动器 1,表驱动器 2,依此类推。驱动器内的分区用数字指代,因此 /第一个 动器上的第五个分区。 对于 动器,使用了类似的命名模式: /第一至第四个分区保留给主分区,第五个及随后的分区用于逻辑分区。因此,以上所示的分区表中有一个驱动器 包含一个主分区 个扩展分区 五个逻辑分区 / /名称 出的文件系统表示根据 的 准挂载为特殊文件系统的共享内存文件系统。 您可能已经注意到,在 表中 括在括号中的。示 逻辑块寻址 ,它将硬盘的柱面、块和扇区模式转换为线性块编号进行处理。 在 ,分区分为主分区、扩展分区和逻辑分区。术语 主分区 是先前 统上四个分区限制的遗留产物。与 s 不同,以从主分区或逻辑分区启动。用作逻辑分区占位符的主分区称作扩展分区。扩展分区本身拥有指向一个或多个逻辑分区(它们只是主分区的子分区)的分区表。在以上的 表中, 是一个扩展分区。文件管理系统概述 要使分区后的磁盘可用,必须在其上构建文件系统。这种情况下,通常还将文件系统称作“分区类型”、“基于磁盘的文件系统”和“文件系统类型”。实际上,可以将这些文件系统看作是文件管理系统,这是因为该称呼正体现了它们的功能:它们通过维护文件上的元数据,使系统上的文件保持状态一致。 目的特点之一是需要实现与每个可用实用程序的多个样式和首选设置的兼容性, 而这种兼容性在可用文件管理系统的选择上体现得最为明显。 核内部的虚拟文件系统 (实现了此选择。用了一组可由其他文件管理系统使用的基本数据结构。这些数据结构是 超级块、或 目录文件 )和 数据块。 每个分区都包含一个超级块,用于维护分区中文件系统上的信息,包括一组在每个超级块中唯一编号的 闲 数 目以及 数、数据块总数、空闲数据块数和文件系统的状态。文件系统的状态有两种: 干净 (当文件处于未更改状态时)和 脏 (当有未写入磁盘的文件系统更改时)。超级块中的一个 应着一个文件。 除文件名外,含了有关文件的所有信息,其中包括: 地址 类型 大小 所有者 对文件数据所在块的引用 文件最后一次修改和访问的时间戳。 可以使用以下命令查看文件的 $ i 正如前面已经提到的,在超级块中唯一编号,且每个分区只有一个超级块,这就是硬链接无法跨越多个分区的原因。 文件名通过 象(用户看到的是目录文件)链接到一个 号。数据块保存实际的文件数据。 持任何具备 义的基本函数集的文件管理系统。对于像 样的文件管理系统,目提供了它自己的设备驱动程序。 您可以从以下输出中看到,不同的文件管理系统可以存在于同一系统的不同分区上。 T 1K 4195632 2015020 2180612 49% / / 14607 3778 10075 8% / 937372 202368 735004 22% / 6297248 3882504 2414744 62% / 256220 0 256220 0% / 2159992 1854192 305800 86% / 当前, 户遇到的最常用的文件管理系统是 受 持)和 下是非 区主要特性的汇总表 。 特性 受 持)最大分区大小 46有 4 是 有崩溃后重新启动 慢 快 非常快用于恢复清除文件的工具有 有 无崩溃后数据的状态良好 非常好 一般持 有 有 无稳定性 优秀 良好 良好由于 提供了用户级安全性以及更高效的磁盘空间使用等特性,因此尽管至少 实提供了碎片整理工具,但几乎不需要这些工具。传统的、事实上的标准 件管理系统。它是 本 默认文件管理系统,而 默认文件管理系统。最大文件大小实际上取决于所选择的块大小和硬件体系结构。 许多特性之一是它允许由磁盘分区决定块大小。 术允许在磁盘分区中使用可变的文件大小(这是因为它基于平衡树技术而不是基于范围),因此除日志功能以外,高效的空间使用也是其设计所固有的。 日志文件管理系统(如 录对文件系统元数据:闲块分配映射、射等的更改。当系统崩溃时,可以通过此方式检查日志以获得最近修改的元数据,从而确保快速恢复文件系统。此功能对大型系统尤其重要。如果没有此功能,则在出现硬件故障后,对于 文件系统,需要在重新启动时运行 具。对于大型文件系统,此过程可能要花费几个小时。 当然,记录日志需要付出一定的代价,即需要在处理时间和恢复之间寻求一个平衡。对于 可以选择日志记录模式,这些模式允许在寻求上述平衡时做出某些自主决定。 式(记录所有文件系统数据,包括数据块和元数据)是最安全但也是最慢的模式。默认模式(称作 记录元数据,但在写元数据之前先将数据块写入磁盘,从而在快速恢复和快速性能之间取得折衷。最快的模式是 式,该模式只记录元数据。在此模式中,可能会丢失文件数据,但文件系统自身的完整性将得到维护。 在编写本文档期间,好已经发布。同 样,记录元数据。与 同的是,它基于新的舞蹈树算法,此算法似乎比平衡树算法更快。它还可以扩展到使用无数个 且在磁盘写入时具有内置加密和压缩功能。 正应用程序集群 (配置文件和数据库文件的指定文件管理系统。其他文件(甚至是 件文件)将在 获得更好的性能。 当前,就文件管理系统的选择来讲,共同的见解是,除少数情况外, 间的性能基本相当。然而在各种系统的拥护者之间却爆发了激烈的争论。Re