实现文件系统需要考虑 磁盘上内存中 的内容布局。

  • 磁盘上
    • 如何启动操作系统?
    • 磁盘是怎样管理的?怎样获取磁盘的有关信息?
    • 目录文件在磁盘上怎么存放?普通文件在磁盘上怎么存放?
  • 内存中

    • 当进程使用文件时,操作系统是如何支持的?
    • 文件系统的内存数据结构

      相关术语

  • 磁盘分区(partition):把一个物理磁盘的存储空间划分为几个相互独立的部分,称为分区

  • 文件卷(volume):磁盘上的逻辑分区,由一个或多个物理块(簇)组成
    • 一个文件卷可以是整个磁盘或部分磁盘或跨盘
    • 同个文件卷中使用同份管理数据进行文件分配和磁盘空闲空间管理,不同的文件卷中的管理数据是相互独立的
    • 一个文件卷上:包括文件系统信息、一组文件(用户文件、目录文件)、未分配空间
    • 块(Block)或簇(Cluster):一个或多个(2 的幂)连续的扇区,可寻址数据块
  • 格式化(format):在一个文件卷上建立文件系统,即建立并初始化用于文件分配和磁盘空闲空间管理的管理数据
    • 格式化实际上就是建立元数据
  • 引导区
    • 包括从该卷引导操作系统所需要的信息,每个卷(分区)一个,通常为第一个扇区
  • 卷(分区)信息
    • 包括该卷(分区)的块(簇)数、块(簇)大小,空闲块(簇)数量和指针、空闲 FCB 数量和指针
  • 目录文件(根目录文件及其他目录文件)

文件系统层级结构

当一个进程需要使用文件,需要内存中有文件相关的数据结构以支持使用。

目录实现

文件实现