实现文件系统需要考虑 磁盘上 和 内存中 的内容布局。
- 磁盘上
- 如何启动操作系统?
- 磁盘是怎样管理的?怎样获取磁盘的有关信息?
- 目录文件在磁盘上怎么存放?普通文件在磁盘上怎么存放?
内存中
磁盘分区(partition):把一个物理磁盘的存储空间划分为几个相互独立的部分,称为分区
- 文件卷(volume):磁盘上的逻辑分区,由一个或多个物理块(簇)组成
- 一个文件卷可以是整个磁盘或部分磁盘或跨盘
- 同个文件卷中使用同份管理数据进行文件分配和磁盘空闲空间管理,不同的文件卷中的管理数据是相互独立的
- 一个文件卷上:包括文件系统信息、一组文件(用户文件、目录文件)、未分配空间
- 块(Block)或簇(Cluster):一个或多个(2 的幂)连续的扇区,可寻址数据块
- 格式化(format):在一个文件卷上建立文件系统,即建立并初始化用于文件分配和磁盘空闲空间管理的管理数据
- 格式化实际上就是建立元数据
- 引导区
- 包括从该卷引导操作系统所需要的信息,每个卷(分区)一个,通常为第一个扇区
- 卷(分区)信息
- 包括该卷(分区)的块(簇)数、块(簇)大小,空闲块(簇)数量和指针、空闲 FCB 数量和指针
- 目录文件(根目录文件及其他目录文件)
文件系统层级结构
当一个进程需要使用文件,需要内存中有文件相关的数据结构以支持使用。