在主引导区后面就是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表里就有多少个项,这个项的内容就是指向下一个项.

相当于一个数组链表.

最新文章

  1. Keepalived+LVS+nginx双机热备
  2. (一)sql入门 导读
  3. js 判断字符串是否包含另外一个字符串
  4. 哭瞎!360云盘将关停,你的几十T照片和文件该怎么办
  5. git命令的使用 【备用】
  6. awk操作数组注意几点
  7. 如何在JBoss WildFly 8 自定义log4j日志
  8. AsyncTask和Handler两种异步方式的实现和区别比较
  9. Akka学习——术语和概念
  10. ActionBarSherlock
  11. ubuntu14.04 安装
  12. 新版MATERIAL DESIGN 官方动效指南(一)
  13. ISP PIPLINE (三) BPC
  14. 经典问题----最小生成树(prim普里姆贪心算法)
  15. ios12怎么投屏电脑 苹果手机怎么投
  16. 基于OpenSSL自建CA和颁发SSL证书
  17. Redis缓存的使用
  18. Dom操作注意事项
  19. Java语法基础学习DaySix
  20. MySQL Binlog--binlog_format参数

热门文章

  1. PHP PSR标准规范
  2. Python分布式爬虫打造搜索引擎完整版-基于Scrapy、Redis、elasticsearch和django打造一个完整的搜索引擎网站
  3. 最长上升子序列(LIS)题目合集
  4. spring4.1.8扩展实战之六:注册bean到spring容器(BeanDefinitionRegistryPostProcessor接口)
  5. 测开之路七十二:性能测试工具之locust简介
  6. symfony 初始化项目
  7. 【ABAP系列】SAP ABAP模块-查找系统出口或BADI的方法
  8. Play with Chain 【HDU - 3487】【Splay+TLE讲解】
  9. python3.7.0 安装与配置
  10. deepFreeze