学习笔记
使用教材(配书源码以及使用方法)
《一个64位操作系统的设计与实现》
http://www.ituring.com.cn/book/2450
https://www.jianshu.com/p/28f9713a9171
参考资料
- FAT Filesystem
- FAT表的知识
软盘文件系统分配图 FAT12
软盘文件系统分配图 FAT12
参考 P42 图3-5 软盘文件系统分配图
-
FAT12 是一种文件系统类型, 同一层次的概念是:
FAT16 、FAT32
可以根据文件的容量大小做快速的区分:
FAT12 是一种文件系统类型
-
BPB_SecPerClus叫做每簇扇区数,软盘的BPB_SecPerClus equ 1,簇是FAT类文件系统读写的最小单元 -
一个文件可以很大,那么就有可能跨扇区、需要多个簇:
目录项 单个大小是32字节,含有一个文件的
起始簇号(这就是文件的入口,分配图蓝色部分)
FAT表项,单个大小是12比特, 说明每个簇的使用情况以及下一个簇的簇号(这组成属于一个文件的全部数据块的链表,分配图红色部分)
什么是根目录 目录项?
- 根目录区,目录项,
Directory entry structure - 目录项里存着:文件名(+扩展名),起始簇号;
[OS64位][006]源码阅读:代码清单3-7 目标文件搜索 Lable_Search_In_Root_Dir_Begin
https://www.jianshu.com/p/2c03cdd67d4e
Directory entry structure
什么是FAT表项 ?
-
FAT1、FAT2叫做FAT表1,FAT表2,是FAT文件系统的一个组成部分,其中FAT表2是FAT表1的完全拷贝,是为了保证数据安全所需要的冗余 -
这里,
FAT1占用了整个软盘其中9个扇区,扇区号1 ~ 扇区号9,我们知道,单个扇区的大小是512字节,见分配图中的红色展开部分,这里因为展示的是FAT12格式,因此单个FAT表项仅仅使用12个比特,复习一下,1字节 = 8比特,所以分配图中会出现比如FAT[0]这个表项占了1.5个字节的样子,实际上,每一个FAT表项都占用1.5个字节 -
FAT表项的物理意义 :
标识某个簇,能不能用?已不已用?
已用的话,FAT[N]的值就是下一个簇的簇号;
文件与簇号 FAT表项FAT[N]取值
- FAT表项
FAT Entries
Association of File and Cluster
N = The cluster number:N表示簇号FAT[N]: 当N的取值范围在0x0002-0xFF6时,FAT[N]表示下一个簇的簇号假设一个文件的起始簇号DIR_FstClus值是
0x17,这个文件需要使用三个簇来储存,那么:
第一个簇的簇号就是0x17
第二个簇的簇号是FAT[0x17]
第三个簇的簇号是FAT[FAT[0x17]]

Directory entry structure
Association of File and Cluster












网友评论