在主引导区后面就是FAT表。从上面可以得知一个FAT表是229个扇区。它里边的内容很简单,里边的内容就是指出下一个簇在哪里。你的盘有多少个簇,那么它的FAT表就要有多少个项来描述它们。因为FAT16是用2个字节(16位)来描述一个簇的,所以这时FAT表的大小就应该是2位的簇数个字节。FAT表中,第4,5个簇表示第2个簇,第6,7个字节表示第3个簇,第8,9字节表示第4个簇……。就这样,每一个簇都有两个和它对应的字节。这两个字节里面存放的数据就是下一个64K数据所在的簇号。2个字节最大能表示65535,一个簇最大为64K,所以FAT16最多能给65535*64K≈4G。这就是为什么大小为4G的FAT16格式SD卡簇大小必须为64K大小原因。实际上,并不是所有的数值都代表簇号,有几个值被赋于了特定的含义, 我们先看看这几个特殊值代表的含义。

FAT16和FAT32每个文件名都占32个字节,这里放的是短文件名,也就是“8.3”格式的。
但FAT16的根目录区只有32个扇区,计算一下,每个扇区512字节,共32个扇区,而每个文件要占用32个字节,很显然,根目录只能放512个文件了。因此,FAT16的根目录下只能放512个文件(及文件夹)就是这个原因。 先看前32字节,它的内容是这样的

(可见fat也有inode的概念,但是它把inode直接放在dentry里了,没有ext那么绕.但ext那样的搜索效率肯定更高,有时候你做pathwalk,像/home/test/test.c,假如home下有很多文件,而你只想快速的找到test,那么按ext的dentry设计,目录项更精简,排布更密集,一个扇区里能放的entry更多,搜索肯定快的多)

以上摘选自FAT16文件系统结构简述

另外这篇文章很好 https://blog.csdn.net/yanghao58686763/article/details/1921025?utm_source=blogxgwz5

fat表是fat文件系统的核心,基本上这个文件系统有多少个簇(相当于ext2的block概念)用来装文件(目录也算文件),fat表里就有多少个项,这个项的内容就是指向下一个项.

相当于一个数组链表.

fat文件系统的更多相关文章

  1. FAT文件系统学习和思考

    FAT(File Allocation Table)文件系统 前两天面试,导师说我基础差,要赶紧补起来了.今天晚上看了FAT32文件系统,基本的信息都是百度百科中"FAT文件系统" ...

  2. <FAT文件系统> -- DBR

    FAT16是比较简单的文件系统,相比NFTS等文件系统,该系统的学习比较easy,容易上手,同时对于数据存储的机理以及数据的恢复有一定的帮助.FAT文件系统有一定的弊端,不能支持太大的数据存储. FA ...

  3. FAT文件系统规范v1.03学习笔记---4.文件和目录数据区之长目录项

    1.前言 本文主要是对Microsoft Extensible Firmware Initiative FAT32 File System Specification中文翻译版的学习笔记. 每个FAT ...

  4. FAT文件系统规范v1.03学习笔记---3.根目录区之FAT目录项结构

    1.前言 本文主要是对Microsoft Extensible Firmware Initiative FAT32 File System Specification中文翻译版的学习笔记. 每个FAT ...

  5. FAT文件系统规范v1.03学习笔记---1.保留区之 Fat32 FSInfo扇区结构和备份启动扇区

    1.前言 本文主要是对Microsoft Extensible Firmware Initiative FAT32 File System Specification中文翻译版的学习笔记. 每个FAT ...

  6. FAT文件系统规范v1.03学习笔记---2.FAT区之FAT数据结构(Fat Data Structure)

    1.前言 本文主要是对Microsoft Extensible Firmware Initiative FAT32 File System Specification中文翻译版的学习笔记. 每个FAT ...

  7. FAT文件系统规范v1.03学习笔记---1.保留区之启动扇区与BPB

    1.前言 本文主要是对Microsoft Extensible Firmware Initiative FAT32 File System Specification中文翻译版的学习笔记. 每个FAT ...

  8. RTT下spi flash+elm fat文件系统移植小记

    背景: MCU:STM32F207 SPI flash: Winbond W25Q16BV OS: RTT V1.1.1 bsp: STM32F20x 1 将spi_core.c,spi_dev.c及 ...

  9. 在XC2440的uboot中挂载U盘,利用FAT文件系统读写U盘文件

    转:http://blog.chinaunix.net/uid-22030783-id-3347608.html 在XC2440的uboot_V1.3版本中已经支持USB HOST驱动和FAT文件系统 ...

随机推荐

  1. MySQL5.7.21报错:[Err] 1055

    [Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated c ...

  2. 利用 Skywalking 搭建 APM(应用性能管理)— 安装与配置

    1.什么是 Skywalking Skywalking 是一个APM系统,即应用性能监控系统,为微服务架构和云原生架构系统设计.它通过探针自动收集所需的指标,并进行分布式追踪.通过这些调用链路以及指标 ...

  3. 《图解设计模式》读书笔记3-1 Singleton模式

    目录 单例模式 饿汉式 懒汉式 线程安全的懒汉式 单例模式 确保任何情况下都只有一个实例 饿汉式 public class Singleton { //在类被加载的时候运行一次,这是本类构造函数的唯一 ...

  4. 生日蛋糕(dfs+剪枝)

    生日蛋糕 POJ - 1190 题目: 7月17日是Mr.W的生日,ACM-THU为此要制作一个体积为Nπ的M层生日蛋糕,每层都是一个圆柱体.  设从下往上数第i(1 <= i <= M) ...

  5. 解决Sql Server服务远程过程调用失败

    方法一:修复Sql Server: 修复过程中若遇到:重新启动计算机失败, 1.按下组合键[Win]+[R],调出运行窗口 2.输入“regedit”,在注册表左侧目录栏中找到如下位置:“HKEY_L ...

  6. JAVA线程初体验

    线程的创建 线程的启动和停止 /** * 演员类 继承Thread类 * @author Administrator * */ public class Actor extends Thread { ...

  7. hdu4734 F(x)(数位dp)

    题目传送门 F(x) Time Limit: 1000/500 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total S ...

  8. Tomcat的用途

    总结: 这篇文章主要反思了Tomcat的作用.本文主要是自己的一个思考过程,不是严谨地介绍和详细总结Tomcat使用方法的文章.最后尝试利用tomcat的知识,以URL的形式来访问文件夹(在浏览器的地 ...

  9. 2018-2-13-wpf-绑定-TextLength-

    title author date CreateTime categories wpf 绑定 TextLength lindexi 2018-2-13 17:23:3 +0800 2018-2-13 ...

  10. pylint在pycharm的使用及pylint的配置

    pylint作为python代码风格检查工具,接近 PEP8风格,在使用此方法的过程中,发现不仅能让代码更加规范,优雅,更能 发现 隐藏的bug. pylint在Pycharm中的2种安装方式: 第一 ...