美文网首页
[OS64位][008]软盘文件系统分配图:根目录项结构、FAT

[OS64位][008]软盘文件系统分配图:根目录项结构、FAT

作者: AkuRinbu | 来源:发表于2019-05-04 17:50 被阅读0次

学习笔记

使用教材(配书源码以及使用方法)
《一个64位操作系统的设计与实现》
http://www.ituring.com.cn/book/2450
https://www.jianshu.com/p/28f9713a9171

参考资料

  • FAT Filesystem

http://elm-chan.org/docs/fat_e.html#intro

  • FAT表的知识

https://blog.csdn.net/gjsisi/article/details/8954034

软盘文件系统分配图 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表2FAT表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 numberN 表示簇号
  • FAT[N] : 当N的取值范围在0x0002-0xFF6时, FAT[N]表示下一个簇的簇号

假设一个文件的起始簇号DIR_FstClus值是 0x17,这个文件需要使用三个簇来储存,那么:
第一个簇的簇号就是0x17
第二个簇的簇号是FAT[0x17]
第三个簇的簇号是FAT[FAT[0x17]]

相关文章

网友评论

      本文标题:[OS64位][008]软盘文件系统分配图:根目录项结构、FAT

      本文链接:https://www.haomeiwen.com/subject/zcctoqtx.html