[操作系统] FAT文件系统概述

1.第一章–磁盘结构概述

描述
fat磁盘物理上分为以下四部分组成:

  • 保留区(含MBR–Main Boot Record)
  • 保留区(含DBR–DOS Boot Record)
  • FAT区
  • 数据区

1.1保留区(含DBR–DOS Boot Record)

保留区含有一个重要的数据结构–系统引导扇区DBR。FAT12、FAT16的保留区通常只有一个扇区。而FAT32保留的多些,除了0号扇区外,还有一些其他的扇区,其中包括了DBR的备份扇区。

1.2FAT区

FAT区由文件分配表构成–FAT1,FAT2,FAT2紧跟在FAT1后面,是FAT1的备份

1.3数据区

数据区是保存数据的,其中根目录也保存在此。这一区域不以扇区管理,而是以簇进行管理。

第二章–FAT32磁盘结构介绍

FAT32文件系统简介

  • FAT(File Allocation Table,文件分配表)文件系统是Windows操作系统所使用的一种文件系统,他的发展过程经历了FAT12,FAT16,FAT32三个阶段。
  • FAT文件系统用 “簇” 作为数据单元。一个“簇”由一连串的扇区组成,簇所含的扇区数必须是 2的整数次幂 。簇的最大值是64个扇区,即32kb。 本文中一簇是4kb。
  • 所有簇从2开始进行编号,每个簇都有一个自己的编号。
  • 用户文件和目录都存储在簇中。
  • 文件系统分配磁盘按照簇进行分配,因此一个文件即使只有1kb,那么也会被分配4kb的空间。

文件分配表

  • 文件和文件夹内容存储在簇中,如果一个文件或者文件夹需要多余一个的簇进行存储,那么通过文件分配表建立起多个簇的联系。。FAT结构用于指出下一簇,同时也说明了簇的分配状态。FAT12、FAT16、FAT32的不同就在于文件分配表的大小不同。

文件分配表如何记录文件所包含的簇

我们已经知道,在文件分配表中记录了数据区中簇之间的关系。而数据区中的簇就是存储文件或文件夹信息的基本单位。

  • FAT32中簇地址是用4字节进行编址的,故在FAT表中,是以4个字节为单位进行划分,每个单元存储一个簇地址。 0号地址与1号地址被系统保留并存储特殊标志内容。从2号地址开始,第i号地址对应数据区中i号簇。我们称 FAT表中的地址为FAT表项,FAT表中记录的值为FAT表项值
  • 当文件系统被创建时,FAT表会被清空,在FAT1和FAT2表中的0号地址与1号地址会被写入特定值。由于创建文件系统的同时会创建根目录,也就是在数据区为根目录分配一个簇的空间(2号簇,起始簇)在FAT表中2号地址写入一个结束标记。
  • 当FAT表中第i号地址对应的簇未被使用时,表项值为0
  • 当FAT表中第i号地址对应的簇是记录一个文件或文件夹的最后的簇时,表项值为0xFFFFFFFF。
  • 下表给出了FAT表项值的详细含义(更详细表项值含义请自行利用百度或Google)
表项值(32位) 簇描述符含义
00000000H “0”值(未分配使用)
00000001–FFFFFFEFH “一个簇号”(已占用)
FFFFFFF7H 坏簇
FFFFFFF8–FFFFFFFFH “EOF”(文件结束簇)

第三章–fat文件系统

第二章中文件分配表已经建立起了簇之间的联系。那么对于文件系统来说,如何确定文件与文件、文件夹与文件之间的逻辑存储关系呢?本章中将介绍此内容。

目录项

首先介绍下目录项的概念:

  • FAT文件系统的每一个文件和文件夹都被分配到一个目录项,目录项中记录着文件名、大小、文件内容起始地址以及一些其他元数据(简单来说就是文件或文件夹本身的属性)。(具体存储格式可以百度或者Google)跟在目录项之后的是文件或文件夹的具体内容。
  • 目录项都有规定好的固定长度以及每个位置代表的含义(以下给出了fat32中目录项的32个字节的含义)

这里写图片描述

文件(夹)内容

有了目录项,就有了文件或文件夹本身的属性。紧跟目录项后是文件或文件夹的内容。

  • 对于文件类来说,存储的就是文件本身的内容
  • 对于文件夹来说,存储的是一条一条的记录,每条记录是此文件夹下包含的文件或文件夹(同时也包含父目录..当前目录.)每条记录都应该有固定的格式,但总归需要包含以下内容:
1.记录是文件还是文件夹
2.记录的起始簇号

猜你喜欢

转载自blog.csdn.net/eternally123/article/details/79836210