Linux:Ext系列⽂件系统(二)

我们每天在电脑上创建、编辑、删除文件,却很少思考:这些文件是如何被磁盘 "记住" 的?为什么删除文件后空间能回收?其实这一切的背后,都是文件系统在默默工作。它就像磁盘的 "管理员",负责组织、管理和调度磁盘上的所有数据。今天我们就从最基础的 "块、分区、inode" 说起,揭开文件系统的底层逻辑

一、先搞懂 3 个核心概念:块、分区、inode

1. 块(Block):磁盘的 "最小存储单元"

磁盘的最小物理存储单位是扇区(512 字节),但操作系统读取数据时不会逐个扇区读取 ------ 效率太低。于是文件系统引入了 "块" 的概念:一个块是连续的多个扇区,最常见的大小是 4KB(相当于 8 个扇区)

块是文件存取的最小单位:无论文件大小是 1 字节还是 3KB,都会占用至少一个块。这就像我们租仓库,哪怕只放一个箱子,也得租一整个储物间

2. 分区(Partition):磁盘的 "功能分区"

一块磁盘容量可能很大(比如 1TB),如果全用来存一种数据,管理起来会很混乱。文件系统允许我们把磁盘分成多个 "分区",比如 Windows 的 C 盘、D 盘,Linux 的/根分区、/home分区

分区的本质是 "划定磁盘的一段连续柱面"(柱面是磁盘的物理结构,由所有盘片的同编号磁道组成)。每个分区都是独立的 "存储区域",可以单独格式化、单独管理,就像把一栋大楼分成多个独立的房间,各自用途不同

3. inode:文件的 "身份证"

我们知道 "文件 = 内容 + 属性":内容是文件的实际数据(存在块里),属性是文件的元信息(比如大小、所有者、创建时间、权限)。那么属性存在哪里?答案是inode(索引节点)

  • 每个文件对应一个唯一的 inode,里面存储了所有属性(唯独不包含文件名)
  • inode 有唯一的编号(inode 号),是文件的 "身份证号"
  • 一个分区的 inode 数量是固定的(格式化时确定),如果 inode 用完,哪怕磁盘还有空间,也无法创建新文件

举个例子:用ls -li命令查看文件,第一列就是 inode 号,后面的权限、大小、时间等,都来自 inode 存储的属性

二、文件是如何被 "找到" 的?inode 与块的映射

文件的内容存在块里,属性存在 inode 里,两者如何关联?答案藏在 inode 的结构中:每个 inode 都有一个 "块指针数组"(比如 ext2 文件系统有 15 个指针),这些指针直接或间接指向存储文件内容的块。

这个指针数组的设计很巧妙:

  • 前 12 个指针是 "直接块指针",直接指向存储数据的块(适合小文件)
  • 第 13 个是 "一级间接块指针",指向一个 "索引块",索引块里存储的是多个数据块的地址(适合中文件)
  • 第 14、15 个分别是二级、三级间接块指针,支持更大文件的存储

简单说:找到文件的 inode,就能通过指针数组找到所有存储内容的块,进而读取完整文件

三、目录的本质:文件名与 inode 的 "映射表"

我们访问文件时用的是文件名(比如test.txt),但文件系统认的是 inode 号 ------ 这中间的桥梁就是 "目录"

很多人不知道:目录也是一种文件!它的属性同样存在 inode 里,而它的 "内容" 非常特殊 ------ 是一张 "文件名→inode 号" 的映射表

比如我们在/home目录下创建test.txt/home目录的内容会新增一行记录:test.txt → 1052007(1052007 是test.txt的 inode 号)。当我们访问/home/test.txt时,文件系统会先读取/home目录的映射表,通过文件名找到 inode 号,再通过 inode 找到文件的属性和内容

四、总结

文件系统的基础逻辑其实很简单:

  • 用 "块" 存储文件内容,提高读写效率;
  • 用 "分区" 划分磁盘功能,方便管理;
  • 用 "inode" 存储文件属性,作为文件的唯一标识;
  • 用 "目录" 维护文件名与 inode 的映射,让我们能通过文件名访问文件。

理解了这 4 个核心组件,就相当于掌握了文件系统的 "骨架"。下一篇我们会深入实战:路径是如何被解析的?多个分区怎么用?软硬连接的区别是什么?

相关推荐
IT瑞先生18 分钟前
docker-compose下快速部署实操——持续更新...
运维·docker·容器
无锡银洲自动化31 分钟前
工业模拟量采集痛点分析:IDCB-4E/DR/Y测量前端解决方案
运维·产品运营
Kina_C1 小时前
Linux iptables 防火墙原理与实操——从四表五链到 NAT 配置
linux·运维·服务器·iptables
A洛2 小时前
Codex 实战:一句话完成 Temu 商品图采集与印花抠图自动化
运维·人工智能·自动化·codex
wdfk_prog2 小时前
嵌入式面试真题第 15 题:不可恢复异常后的通用崩溃快照、调用栈保存与离线分析架构
linux·开发语言·面试·架构
Urbano2 小时前
服装工厂卫衣量产提质增效方案:工序自动化替代、产能优化、多品牌设备选型及落地案例
运维·自动化
GlobalSign数字证书3 小时前
自动化时代,如何高效部署SSL证书?
运维·自动化·ssl
大侠锅锅5 小时前
第 19 篇:远程运维体系——指标、SSH、日志与 OTA 升级
运维·ssh
灵机一物6 小时前
企业选型参考:2026 CXL 内存扩展方案六强测评与落地指南
服务器·网络·数据库·人工智能
Web极客码6 小时前
如何用三段式确定性剪枝,为 LLM Agent 砍掉 35% 的 Token 成本?
服务器·人工智能·算法·机器学习