标题: FAT32文件系统详解(中文版)共24页pdf [打印本页]

作者: 小小视界jjj    时间: 2017-9-13 12:04
标题: FAT32文件系统详解(中文版)共24页pdf
译注:  
    刚完成的项目内容涉及FAT 文件系统,因此在查阅手册的同时把文档翻译了一下,希望能对那些和我
一样初次使用FAT 的朋友有所帮助。因本人对FAT 并不十分了解,翻译所做的也只是文字表面工作,出现
各种错误在所难免,因此:本文只适用于初学者作为了解材料,需要获得技术信息的朋友请查阅原版英文
资料!  
   发现错误的朋友请mail指正,本人将不胜感激。  
   
原文长5页,大意是告诫人们不要使用D 版云云,此略。  
本文的一些约定
    以字符“0x”开头的数字为16进制,若开头没有字符“0x”则表明该数字为 10进制。  
    本文的程序使用C 语言书写,书写风格可能与教科书中严格定义的有所出入。  
    一些变量在程序中没有注明其数据类型是 16-bit还是 32-bit,因为我们知道你有能力正确地完成这
些数据类型之间的转换,并保证在转换 32-bit 为 16-bit 的过程中不会造成数据丢失。同时请注意,所有
的数据类型均是无符号类型(UNSIGNED),不要尝试使用有符号整形(signed integer types)来进行 FAT
运算,否则一些FAT 卷将会因此而出错。
概述(适用于所有FAT 类型)
   起先所有的FAT 文件系统都是为 IBM PC 机器而设计的,这说明了一个重要的问题:FAT 文件系统在磁
盘上的数据是以“小端” (little-endian) 结构存储的。我们使用 4 个 8-bit 的字节 --  起始字节为
byte[0],结束字节为 byte[3] -- 来存储一个 32-bit 的 FAT 项(FAT entry)。然后分别给这 32 位编号为
00-31,从下表我们可以清楚地看到这 32位是如何排序的(最低位为00).  
    byte[3] 3 3 2 2 2 2 2 2
            1 0 9 8 7 6 5 4
    byte[2] 2 2 2 2 1 1 1 1
            3 2 1 0 9 8 7 6
    byte[1] 1 1 1 1 1 1 0 0
            5 4 3 2 1 0 9 8
    byte[0] 0 0 0 0 0 0 0 0
            7 6 5 4 3 2 1 0
    这对于那些使用“大端”(big-endian)存储结构的机器就显得尤为重要,因为在磁盘存取数据之前,
必须先完成big-endian 和 little-endian之间的转换。  
    每个FAT 文件系统由4 部分组成,这些基本区域按如下顺序排列:  
    0 – 保留区(Reserved Region)  
    1 – FAT区(FAT Region)  
    2 – 根目录区(Root Directory Region, FAT32卷没有此域)  
    3 – 文件和目录数据区(File and Directory Data Region)  


完整的pdf格式文档51黑下载地址(共24页):
FAT32中文版.pdf (1.36 MB, 下载次数: 107)



作者: GhostGuardian    时间: 2018-2-9 21:43
谢谢分享,最近在了解FAT32正好可以,学习一下。
作者: IdeaMing    时间: 2018-2-28 11:11
其实我是想看FAT的代码详解的,结果看到了楼主的这个。
作者: 51hhak88    时间: 2020-5-2 21:42
了解一下快快快
作者: prgrmz07    时间: 2021-8-5 10:56
谢谢分享,最近在了解FAT32正好可以,学习一下。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1