目录
一、狭义理解(物理层面)
二、广义理解(Linux系统视角)
三、文件结构解析
四、系统实现机制
一、狭义理解(物理层面)
-
存储特性:文件以二进制形式存储在磁盘等永久性存储介质中
-
介质特点:磁盘作为非易失性存储设备,确保文件长期保存
-
设备属性:磁盘属于外部I/O设备(兼具输入和输出功能)
-
操作本质:所有文件操作最终都转化为对外设的I/O操作
二、广义理解(Linux系统视角)
-
设计哲学:遵循"一切皆文件"的设计理念
-
抽象范围:将硬件设备(如键盘、显示器、网卡)和软件资源都抽象为文件对象
-
统一接口:通过文件操作接口实现各类资源的统一管理
(注:具体实现机制将在后续章节详细展开)
三、文件结构解析
-
存储特性:
-
最小占用:空文件(0KB)仍会占用磁盘最小存储单元(通常为4KB的块空间)
-
组成结构:文件 = 元数据(inode信息) + 实际数据内容
-
-
操作分类:
-
元数据操作:包括权限修改、重命名、时间戳更新等
-
内容操作:包括读写、追加、截断等
-
四、系统实现机制
-
执行主体:文件操作的实际执行者是进程
-
资源管理:由操作系统统一管理磁盘等存储资源
-
调用层次:
-
底层实现:通过系统调用(如open/read/write)完成实际I/O
-
上层封装:编程语言库函数(如fopen/fread)是对系统调用的二次封装
-
-
安全机制:所有操作都经过操作系统的权限校验和资源调度
补充说明:
-
文件描述符(FD)是进程访问文件的唯一标识
-
磁盘I/O存在缓冲区机制,涉及用户态与内核态的数据拷贝
-
不同文件类型(普通文件、设备文件、管道等)有统一的操作接口