前言
本笔记整理文件系统核心知识点,包含文件基本操作、文件共享、文件保护、文件系统层次结构、磁盘格式化与文件系统全局结构五大模块,结合系统调用、底层原理、实操案例与易混点总结,适配考试与复习使用。
一、文件的六大基本操作(系统调用+底层原理)
所有文件操作本质都是调用操作系统对应的系统调用,操作前需理解:文件数据存放在外存,文件目录项/控制信息会部分加载到内存提升访问速度。
1.创建文件(Create 系统调用)
(1)调用所需参数
- 文件存放路径
- 文件名
- 申请的外存空间大小(磁盘块数量)
(2)操作系统底层执行步骤
- 依据磁盘空闲空间管理算法(空闲表、空闲链表、位图、成组链接法),为文件分配对应磁盘块;
- 找到目标目录的目录表,在目录中新增该文件的目录项(FCB);
目录项核心内容:文件名、文件物理位置、文件属性等。
补充
Windows 右键新建文件,系统会自动补全参数,生成默认文件名。
2. 删除文件(Delete 系统调用)
与创建文件流程完全相反。
(1)调用所需参数
文件路径、文件名
(2)操作系统底层执行步骤
- 根据路径找到对应目录表,通过文件名匹配到目标文件的目录项;
- 从目录项中读取文件占用的磁盘块信息,回收磁盘空闲空间(沿用磁盘空闲管理算法);
- 从目录表中删除该文件对应的目录项。
3. 打开文件(Open 系统调用)【高频考点】
核心规则:对文件进行读写等操作前,必须先打开文件;打开文件不会加载文件数据,仅加载文件控制信息。
(1)调用所需参数
- 文件存放路径 + 文件名
- 操作权限(只读、只写、读写等)
(2)操作系统底层执行步骤
- 按路径查找目录表,定位文件目录项;
- 权限校验:检查当前用户是否拥有声明的操作权限,无权限则直接拒绝打开;
- 将文件目录项复制到内存的打开文件表中,后续操作无需反复查询外存目录,大幅提升访问速度。
(3)两类打开文件表(重点区分)
内存中存在系统打开文件表和进程打开文件表,二者配合工作:
1.系统打开文件表
○全局唯一,整个操作系统共用一张;
○记录所有进程正在使用的文件;
○特有字段:打开计数器(记录文件被多少个进程同时打开)。
2.进程打开文件表
○每个进程独有一张,隶属于进程PCB;
○仅记录当前进程打开的文件;
○特有字段:读写指针(记录当前进程读写位置)、进程访问权限;
○内部存储:指向系统打开文件表的索引号(文件描述符)。
(4)关键概念:文件描述符
进程打开文件后,系统返回打开文件表的索引号,该索引号即为文件描述符。
后续读写文件时,进程不再使用路径/文件名,仅通过文件描述符定位文件。
(5)经典现象
文件被进程打开占用时,无法直接删除(系统查询系统打开文件表,发现打开计数器>0,禁止删除)。
4. 关闭文件(Close 系统调用)
底层执行步骤
- 在当前进程的打开文件表中,删除该文件对应的表项,释放内存缓冲区资源;
- 找到系统打开文件表对应表项,打开计数器 -1;
- 若计数器结果 = 0:代表无进程使用该文件,删除系统打开文件表中的对应表项;
- 若计数器 > 0:仍有进程在使用,保留系统表项。
5. 读文件(Read 系统调用)
前提:文件已成功打开,持有文件描述符。
(1)调用所需参数
- 文件描述符(定位文件)
- 待读取的数据大小
- 内存接收数据的起始位置
(2)底层执行步骤
- 根据文件描述符,依次查找进程打开文件表、系统打开文件表,获取文件物理位置与读写指针;
- 从外存读写指针指向的位置,读取指定大小数据,存入指定内存区域;
- 自动向后移动读写指针。
6. 写文件(Write 系统调用)
流程与读文件高度相似,方向相反。
(1)调用所需参数
- 文件描述符
- 待写入的数据大小
- 内存中待写入数据的起始位置
(2)底层执行步骤
- 通过文件描述符定位文件,获取读写指针;
- 将内存中指定数据,写入外存读写指针对应的磁盘位置;
- 自动向后移动读写指针。
二、文件共享
1.共享 vs 文件复制(易混点)
•文件共享:系统中仅一份原始文件数据,多个用户/进程共用;任意用户修改文件,所有共享者都能看到变化。
•文件复制:系统中生成多份独立文件副本;修改其中一份,其他副本不受影响。
2. 两种主流共享方式
方式一:基于索引节点(硬链接)
1.前置知识
目录项仅保存文件名 + 索引节点指针;文件大小、物理地址、权限等属性全部存放在索引节点(i节点)中。
索引节点包含关键字段:链接计数器(count),记录指向该节点的目录项数量。
2. 共享原理
多个不同用户的目录项,指向同一个文件的索引节点;不同用户可以给同一文件设置不同文件名。
•新增共享用户:新增目录项指向该索引节点,count + 1。
3. 删除文件规则(必考)
- 用户执行删除操作:仅删除自身的目录项,索引节点 count - 1;
- 若 count > 0:仍有用户共享文件,不删除文件数据和索引节点;
- 若 count = 0:无任何用户使用,真正回收磁盘空间、删除索引节点与文件数据。
方式二:基于符号链(软链接 / 符号链接)
1.核心原理
新建一个特殊的Link类型文件(类比 Windows 快捷方式),该文件不存储原文件数据,只记录原文件的完整路径。
用户访问软链接文件时,系统根据记录的路径逐层查找,最终定位原文件。
2. 特点
- 访问速度:每次都要逐层检索目录、执行磁盘IO,速度慢于硬链接;
- 文件删除影响:
○原文件被删除:索引节点count=0,数据清空;软链接文件依然存在,但路径失效,访问提示找不到目标;
○软链接被删除:仅删除Link文件,不影响原文件。
3. 实操类比(Windows)
桌面QQ快捷方式 = 软链接;快捷方式记录QQ程序的安装路径;删除原QQ程序,快捷方式失效;删除快捷方式,原程序不受影响。
硬链接 & 软链接 对比总结

三、文件保护(三种常用方案)
作用:防止文件被非法访问、篡改、删除,保障数据安全。
1.口令保护
原理
为文件设置访问口令,口令存储在文件的FCB/索引节点中;用户访问文件前必须输入正确口令,系统比对通过才可访问。
优缺点
•优点:空间开销、时间开销极小,实现简单;
•缺点:口令存于系统内部,一旦系统被入侵,口令泄露,文件完全失去保护。
2. 加密保护
原理
使用加密算法(示例:异或加密)对文件原始数据加密,系统仅存储加密后的密文;
用户访问时,需输入密钥解密,解密成功才能读取原始数据;密钥由用户自行保管,系统不存储。
异或加密规则(示例)
二进制位相同 → 结果为0;二进制位不同 → 结果为1;同一密钥可加密、解密。
优缺点
•优点:安全性极高;密钥由用户保管,系统无泄露风险;
•缺点:加密、解密过程需要CPU运算,存在时间开销。
口令保护 vs 加密保护(易混区分)
1.口令:系统保存验证密码,验证通过即可拥有全部操作权限;
2.加密:系统只存密文,无密钥则数据为乱码;安全性更高,有运算开销。
3. 访问控制(主流方案,Windows/Linux 通用)
原理
在文件FCB/索引节点中添加访问控制表,精细化管控:哪些用户/用户组、可以执行哪些操作。
•操作类型:读、写、执行、删除、列举目录等;
•标识规则:1=允许操作,0=禁止操作。
两种实现形式
1.基于单用户:表中逐条记录每个用户的权限;用户量大时,表格冗长、效率低。
2.基于用户组(精简版)
将用户划分为分组(文件主、伙伴、管理员、其他用户),按分组分配权限;大幅精简表格,是现代系统主流用法。
Windows 实操案例
1.新建本地用户,对文件/文件夹设置「安全权限」;
2.权限规则:拒绝项优先级 > 允许项;
3.效果:被拒绝的用户,无法访问对应文件/目录。
特点
1.支持精细化权限管控(不同用户不同权限),区别于口令/加密的"全有/全无";
2.目录权限会继承到内部所有文件;
3.目前主流操作系统默认采用该方案。
四、文件系统层次结构(自顶向下)
整体层级:用户接口 → 文件目录系统 → 存取控制模块 → 逻辑文件系统+文件信息缓冲区 → 物理文件系统 → 辅助分配模块 → 设备管理模块
分层详解(结合功能与对应知识点)
1.用户接口层
最上层,面向用户/应用程序;接收 open/read/write/close/create/delete 等系统调用,对接基础文件操作。
2.文件目录系统
管理目录、目录项(FCB)、打开文件表;根据文件路径检索目录,定位目标文件。
3.存取控制模块(权限验证)
对应文件保护知识点;校验用户操作权限,拦截非法访问。
4.逻辑文件系统 + 文件信息缓冲区
管理文件逻辑结构;将用户提供的记录号转换为逻辑地址;缓冲区用于加载索引表等数据。
5.物理文件系统
完成逻辑地址 → 物理地址的转换,对接文件物理结构。
6.辅助分配模块
负责磁盘存储空间的分配与回收;对应磁盘空闲空间管理算法(位图、空闲链表等)。
7.设备管理模块
最底层,直接对接磁盘硬件;负责磁盘调度、设备驱动、IO交互。
综合举例(串联全层级)
需求:删除Excel文件中指定记录
1.用户接口 :接收删除请求;
2.文件目录系统 :根据路径查找目录,定位文件FCB;
3.存取控制 :校验当前用户是否有删除权限;
4.逻辑文件系统 :将记录号转为逻辑地址;
5.物理文件系统 :逻辑地址转磁盘物理地址;
6.设备管理 :操作磁盘,删除对应数据;
7.辅助分配:回收释放的空闲磁盘块。
五、磁盘格式化 & 文件系统全局结构
1.磁盘两级格式化
(1)物理格式化(低级格式化)
- 执行时机:磁盘出厂后首次使用前;
- 核心工作:
○将磁盘划分为标准扇区;
○检测坏扇区,并用备用扇区替换; - 特性:坏扇区对操作系统完全透明,系统无法感知。
(2)逻辑格式化(高级格式化)
- 执行时机:分区之后(C盘、D盘等分区);
- 核心工作:
○划分磁盘分区(卷),用分区表记录每个分区的地址范围;
○在分区内搭建完整文件系统。
2. 分区(卷)的外存布局(以Unix为例)
单个分区从起始到结束,依次分为5个区域:
- 引导块:系统启动相关数据;
- 超级块:记录分区空闲块整体信息,快速批量分配空闲磁盘块;
- 空闲空间管理区:如位示图(位图),精准标记每一个磁盘块空闲/占用状态;
- i节点区(索引节点区):连续存储所有文件的索引节点,通过下标可快速定位;
- 根目录 + 文件数据区:根目录是文件系统入口,剩余空间存放目录与文件数据。
补充:超级块(批量找空闲块)+ 位示图(单点查询块状态),功能互补。
3. 文件系统内存结构
操作系统内核区维护三大核心数据,加速文件访问:
- 目录缓存:缓存近期访问的目录FCB,避免重复读取外存,提升检索速度;
- 系统打开文件表:全局唯一,记录所有已打开文件;
- 进程打开文件表:每个进程独有,记录当前进程打开的文件,存放指向系统表的索引(文件描述符)。
4. 完整访问流程(Open + Read 串联)
- 执行Open:路径检索 → 目录缓存/目录系统定位FCB → 权限校验 → FCB复制到系统打开文件表,进程表生成条目,返回文件描述符;
- 执行Read:通过文件描述符查找两级打开文件表 → 获取文件物理地址与读写指针 → 设备模块读取磁盘数据到内存。
六、全书高频考点&易混点汇总
1.打开文件 :只加载目录项/FCB,不加载文件数据;读文件才会加载数据。
2.打开文件表 :系统表(全局、计数器)、进程表(独有、读写指针+权限)区分记忆。
3.硬链接删除 :仅count=0时才真正删除文件数据。
4.软链接 :原文件删除,链接失效;访问速度慢于硬链接。
5.口令 vs 加密 :口令存在系统中,加密密钥由用户保管,后者安全性更高。
6.访问控制 :支持精细化分权,拒绝权限优先级高于允许权限。
7.格式化 :低级格式化分扇区、检坏块;高级格式化建分区、建文件系统。
8.文件描述符:进程操作文件的唯一标识,替代路径和文件名。