| 项目 | 值 |
|---|---|
| 核心概念 | 文件系统实现(磁盘结构 + 调度 + 分配 + 目录 + 层次) |
| 关键公式 | 总时间 = 寻道时间 + 旋转延迟 + 传输时间 |
| 考查频率 | ⭐⭐⭐⭐ |
| 方式 | 随机访问 | 外部碎片 | 文件增长 | 代表 |
|---|---|---|---|---|
| 连续 | 快 | 有 | 困难 | ISO9660 |
| 链接(FAT) | 慢(FAT 可缓存在内存) | 无 | 容易 | FAT32 |
| 索引 | 快 | 无 | 容易 | ext4 |
索引分配中 inode 的 i_block[] 含直接指针 + 各级间接指针,数据块指针分散在索引块中。
| 方式 | 说明 |
|---|---|
| 线性列表 | 简单但查找慢(O(n)),适合小目录 |
| 哈希表 | 查找快(O(1)),需处理冲突 |
| B+ 树(HTree) | ext4 采用,适合大目录,查找 O(log n) |
从应用到硬件分为多层(见下方交互动画):用户应用程序 → 逻辑文件系统(目录管理、权限检查)→ 文件组织模块(逻辑块→物理块)→ 基本文件系统(发 I/O 请求)→ 设备驱动程序(控制设备控制器)→ 设备控制器(控制硬件)。
| 文件系统 | 最大文件 | 最大卷 | 特点 |
|---|---|---|---|
| ext4 | 16TB | 1EB | Linux 默认,日志 |
| NTFS | 16EB | 256TB | Windows 默认,ACL |
| FAT32 | 4GB | 8TB | 兼容性好 |
| XFS | 8EB | 8EB | 高性能大文件 |
| Btrfs | 16EB | 16EB | 快照、压缩 |
写操作先记录到日志区,再写入实际位置;崩溃后可从日志重做 / 撤销,保证原子性与一致性。
| 模式 | 说明 | 性能 | 安全 |
|---|---|---|---|
| writeback | 只记录元数据 | 快 | 低 |
| ordered | 元数据 + 数据顺序写 | 中 | 中 |
| journal | 元数据和数据都记录 | 慢 | 高 |
i_block[] 含 12 个直接指针 + 单级 / 二级 / 三级间接指针,共同实现索引分配下的「逻辑块 → 物理块」映射。↑ 以上为站内 HTML 相对链接(纯网页可浏览);本页右上「在 Obsidian 中打开」跳回源笔记。