Skip to content

文件的基本概念

考情分析

文件管理在 408 真题中累计考查约 85 分(2009-2026),其中「文件」小节约 45 分,属于 🔥🔥🔥 高频考点。选择题常考文件属性与分类,大题则结合物理结构与目录展开。

磁盘上全是 0 和 1 的比特流,文件系统要回答的核心问题是:怎么从这堆比特中找到"你的论文.doc",并把它完整地读出来?

什么是文件

文件(File)是操作系统中信息存储的基本单位,是一组有意义的信息的集合。从用户视角看,文件是逻辑外存的最小分配单元——用户通过文件名来访问数据,而无需关心数据在磁盘上的物理位置。

操作系统通过文件系统(File System)来管理文件,提供创建、删除、读写等操作接口,并负责将逻辑文件映射到物理存储位置。

文件的属性

每个文件都有一组**元数据(metadata)**来描述它的基本信息——就像一本书的版权页,记录了作者、出版日期、页数等信息,但不包含正文内容:

属性说明
文件名同一目录下唯一,是用户访问文件的标识
标识符文件系统内部的唯一标识(如 inode 号)
类型文件的种类(如 .txt、.exe)
位置文件在外存上的存储位置指针
大小文件当前长度(字节/块数)
保护信息访问控制信息(读/写/执行权限)
时间戳创建时间、最后修改时间、最后访问时间
所有者文件的拥有者信息

文件名 vs 标识符

文件名是面向用户的,同一目录下不能重名;标识符是面向系统的,在整个文件系统内唯一。用户用文件名操作,系统内部用标识符(如 inode 号)索引。

文件的分类

文件可以从多个维度进行分类:

按用途分类

类型说明示例
系统文件操作系统使用的文件内核文件、驱动程序
用户文件用户创建的文件文档、代码
库文件标准库和子程序libc.so、.dll 文件

按逻辑结构分类

类型说明
无结构文件(流式文件)由字节流组成,无内部结构(如 .txt)
有结构文件(记录式文件)由一组记录组成,每条记录有固定格式

按存取方式分类

类型说明
顺序存取文件按顺序逐个访问记录(磁带典型)
随机存取文件(直接存取)可按任意顺序访问记录(磁盘典型)
索引存取文件通过索引表定位记录

按信息交换单位分类

类型说明
字符设备关联文件以字符为单位交换信息
块设备关联文件以块为单位交换信息

文件的基本操作

操作系统提供一组系统调用来操作文件:

操作说明
create创建文件:分配外存空间,在目录中创建目录项
delete删除文件:回收外存空间,删除目录项
open打开文件:将文件的目录项信息加载到内存的打开文件表
close关闭文件:将修改后的目录项写回磁盘,释放打开文件表表项
read读文件:根据读指针从文件读取数据到内存缓冲区
write写文件:将内存缓冲区的数据写入文件的写指针位置
seek重定位:修改文件的当前读写位置指针

这些基本操作可以组合实现更复杂的操作,例如「复制文件」= 创建新文件 + 读源文件 + 写新文件。文件操作就像图书馆的借还流程——先在前台登记(open),拿到借书卡号(fd),凭卡号借阅(read/write),最后归还注销(close)。

文件的打开与关闭

open 操作是文件系统中非常关键的操作,它建立了用户进程与文件之间的连接:

  1. 根据文件名搜索目录,找到对应的目录项(FCB)
  2. 将该文件的目录项复制到内存中的系统打开文件表
  3. 进程打开文件表中新增一个表项,指向系统打开文件表中的对应项
  4. 返回一个文件描述符 fd(进程打开文件表的索引)

后续的 readwrite 等操作都通过 fd 进行,避免每次都要搜索目录。

两级打开文件表

  • 系统打开文件表:整个系统共享,记录文件的 FCB 信息、打开计数等
  • 进程打开文件表:每个进程独有,记录 fd 到系统表项的映射、当前读写位置等

考研高频考点

  • 🔥🔥🔥 文件的逻辑结构分类(无结构/有结构)及其特点
  • 🔥🔥 文件的基本操作及其含义(尤其 open 的过程)
  • 🔥🔥 文件属性有哪些(选择题常考)
  • 🔥 两级打开文件表的结构与作用
  • 🔥 文件的存取方式(顺序/随机/索引)

文件的属性信息最终要落地存储,下一篇来看操作系统用什么数据结构来管理这些元数据——索引节点 inode。