1.文件系统
- 存储介质上组织文件数据的方法(数据组织的方式)
文件系统示例
- FAT12是DOS时代的早期文件系统
- FAT12结构非常简单,一直沿用于软盘
- FAT12的基本组织单位
字节(Byte):基本数据单位
扇区(Sector):磁盘中的最小数据单元
簇(Cluster):一个或多个扇区
2.深入FAT12文件系统
①FAT12的主引导区
主引导区存储的比较重要的信息是文件系统的类型,文件系统逻辑扇区总数,每簇包含的扇区数等。主引导区最后以0x55AA两个字节作为结束,共占用一个扇区。
3.根目录区的目录项
根目录区由目录项构成,每一个目录项代表根目录中的一个文件索引。
文件目录的结构体
struct FILE_INFO
{
unsigned char uszFileName[8];//文件名
unsigned char uszExtendName[3];//拓展名
unsigned char u8Type;//类型
char szReverse[10];//保留位
unsigned short u16WriteTime;//写入时间
unsigned short u16WriteDate;//写入日期
unsigned short u16WriteClustno;//文件开始的簇号
unsigned int u32FileSize;//文件大小
};
4.FAT表 - FAT12的数据组织核心
- FAT1和FAT2是相互备份的关系 ,数据内容完全一致
- FAT表是一个关系图,记录了文件数据的先后关系
- 每一个FAT表项占用12比特
- FAT表的前2个表项规定不使用
FAT表中的先后关系
- 以簇(扇区)为单位存储文件数据(这里一簇等于一扇区大小)
- 每个表项(vec[i])表示文件数据的实际位置(簇)
(1)DIR_FstClus表示文件第0簇(扇区)的位置
(2)vec[DIR_FstClus]表示文件第1簇(扇区)的位置
(3)vec[vec[DIR_FstClus]]表示文件第2簇(扇区)的位置...
FAT12数据逻辑组织示意