美文网首页
[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