Skip to content

文件系统的全局结构

考情分析

文件系统全局结构在 408 真题中偶有考查,主要以选择题形式出现,考查磁盘各区域的作用。属于 🔥 中频考点。

前面分别讲了 inode、目录、物理结构、空闲管理,这些组件在磁盘上是怎么排列在一起的?本篇把它们拼成一张完整的全局布局图。

文件系统的层次结构

文件系统的实现采用分层设计,从上到下各层的职责为:

层次职责
用户接口提供 open/read/write/close 等系统调用
文件目录系统管理目录,将文件名转换为 FCB/inode
存取控制模块验证访问权限
逻辑文件系统将逻辑地址转换为物理地址
物理文件系统管理磁盘块的分配和回收
设备驱动程序与磁盘硬件交互

磁盘的全局布局

一个磁盘通常划分为多个分区(partition),每个分区可以包含一个独立的文件系统。

磁盘整体结构

┌─────────────┬───────────┬───────────┬──────────┐
│     MBR      │  分区1    │   分区2   │  分区3   │
│ (主引导记录) │(文件系统1)│(文件系统2)│(交换区)  │
└─────────────┴───────────┴───────────┴──────────┘
  • MBR(Master Boot Record):位于磁盘最前端,包含引导程序和分区表。MBR 就像一栋大楼的总平面图——告诉你每层(分区)从哪开始、到哪结束
  • 分区表:记录各分区的起始位置和大小

单个分区的内部布局

┌────────┬────────┬──────────┬───────────┬──────────────┐
│引导块   │ 超级块  │空闲空间管理│ inode 区域 │   数据块区域   │
│(Boot   │(Super  │(位图/链表)│(inode     │ (Data        │
│ Block) │ Block) │          │  Table)   │  Blocks)     │
└────────┴────────┴──────────┴───────────┴──────────────┘
区域内容说明
引导块引导程序每个分区的起始位置,用于启动该分区上的OS
超级块文件系统元信息文件系统类型、块大小、块数量、空闲块数、inode 数等
空闲空间管理位图或链表记录哪些磁盘块/inode 是空闲的
inode 区域inode 表存放所有 inode,按编号排列
数据块区域文件数据存放目录和文件的实际数据

超级块

超级块是文件系统中最关键的数据结构之一,包含了文件系统的全局管理信息:

字段说明
魔数(Magic Number)标识文件系统类型(如 ext4 的魔数是 0xEF53)
块大小磁盘块的大小(如 1KB、4KB)
总块数文件系统中磁盘块的总数
空闲块数当前空闲的磁盘块数量
总 inode 数inode 的总数
空闲 inode 数当前空闲的 inode 数量
根目录 inode根目录的 inode 编号

超级块在文件系统挂载时读入内存,操作过程中在内存中修改,卸载时写回磁盘。超级块就像一本书的"出版信息页"——记录了总页数、章节数、已用页数等全局统计信息。

超级块损坏

超级块如果损坏,整个文件系统将无法使用。因此很多文件系统会在磁盘上保存超级块的多个副本

内存中的文件系统结构

文件系统挂载后,以下数据结构会被加载到内存中:

数据结构说明
内存超级块超级块的内存副本
内存 inode 表已打开文件的 inode 缓存
系统打开文件表所有已打开文件的信息
进程打开文件表每个进程自己的打开文件列表
目录缓存最近访问过的目录信息

考研高频考点

  • 🔥🔥 磁盘分区的内部布局(引导块/超级块/inode区/数据区)
  • 🔥🔥 超级块的内容和作用
  • 🔥 文件系统的层次结构(从系统调用到设备驱动)
  • 🔥 MBR 和分区表的作用

磁盘布局中有一块专门用于"空闲空间管理",下一篇来看操作系统是如何跟踪哪些磁盘块是空闲的。

真题练习

相关真题(2题)

2025Q32选择题2分

文件系统功能:确定盘块大小是文件系统的功能

2017Q29选择题2分

逻辑格式化:建立根目录和初始化空闲块管理结构,分区和扇区格式属于物理格式化