FAT12
FAT12 is one of FAT file system families,mostly used on 1.44MB floppy disk。
FAT 's full name is File Allocation System
FAT12 has 4 key parts as follows:
- boot sector
- FAT tables
- root directory entry
- data area

Boot sector:
Store data and code that necessary for OS or other users to use it. The data is BPB, BIOS Parameter Block。
regularly, BPB take 25 Bytes, some attributes :

As you can see, in fat12, it has 512 Bytes every sector, and a cluster has ONLY one sector.
And you can write your program into the code area of boot , for example, you can use it to create you OS with a tool--Bochs.
FAT tables:
FAT tables is very important.
It take Sector 1 to Sector 18, 18 sectors totally. And it's has two copies,--FAT1, FAT2
it was splited into little entries. Every entry has 12 bits.
Why 12 bits, because 1.44MB floppy need 12 bits to address: 2^11< 1.44MB < 2^12
every 12-bit entry is one-to-one-correspondence to a cluster in data area. So it just like contents of books, which can locate to the chapters.
12 bits means a value, it has special meaning:

Root Directory Entry:
A file system must has root, FAT12 has root directories.
We know that there are two types things in a file system: 1. File, 2. Directory
So how to express and store them???
In FAT12, every directory has a sector to store it's sub-directories or files. As for the sector, if it's root directory or file(parallel to the root dir), it's stored in Root Dorectory Area. Others are stored in data area.
enery Dir or file has a entry, which is 32 bytes:

so: a dir has 16 sub-dir or files at most.
Where is the cluster of sub-dir?
A entry has attr "First Logicial Cluster", which point to the next cluster. As for a dir , it's cluster No of it's entries of sub-files, sub-dir. As for File, if it's size < 512Bytes, over. if not ,it has another cluster, and the logical cluster points to it.
(Note: A file take integer clusters)
Data Area:
The main area of data, store file/dir entries and file data.
总结:
文件系统由根目录开始,每个目录/文件有一个表项,存储了相关的信息,其中,根目录/根文件的表项存在根目录区,而其他普通的则存在数据区。
对于每个表项,占32位,其中有第一逻辑簇号FLC,目录的FLC指向另一个簇,里面存的的文件和子目录的表项,一个目录最多有16个子目录和文件。文件的GLC指向的簇里存储了文件的内容,如果文件大于512字节,需要另一个存,用当前簇号去FAT表中取出下一簇号即可重定位到下一簇。
FAT12的更多相关文章
- 《Orange‘s》FAT12文件系统
FAT12 层次 扇区(Sector):磁盘上的最小数据单元 簇(Cluster):一个或多个扇区 分区(Partition):通常指整个文件系统 引导扇区 引导扇区是整块软盘的第0个扇区,在这个扇区 ...
- FAT12格式的引导区实现
org 07c00h ;================================================ jmp short START nop ; 这个 nop 不可少 ;这个结构将 ...
- 制作FAT12软盘以查看软盘的根目录条目+文件属性+文件内容
[-1]Before for specific info , please visit http://wiki.osdev.org/Loopback_Device [0]我们先上干货,看到效果后,我们 ...
- FAT12中,如何定位大于一个扇区(512B)的文件内容
[0]README 0.1)本文旨在于 演示在FAT12中, 如何取定位大于 512B 的文件内容,和查看它: 0.2)如何制作FAT12文件系统,以及如何向文件中添加temp.txt文件,参见: { ...
- 【转载】FAT12格式的引导程序
FAT12格式的引导程序 在上一篇文章中详细介绍了FAT12格式的引导扇区数据结构,详情请浏览: 地址是:http://blog.sina.com.cn/s/blog_3edcf6b80100cr08 ...
- 【转载】FAT12文件系统之引导扇区结构
FAT12文件系统之引导扇区结构 文件系统即文件管理系统,是操作系统的重要组成部分之一,如果需要开发底层磁盘驱动或编写自己的操作系统,就必须详细了解文件系统. FAT12是Microsoft公司DOS ...
- FAT12 img tool
NJU/2019/OS Description: CODE: Main.cpp: /* @author: Edwin Xu @Date:2019/11/13 @Note: just ASCII */ ...
- 【转载】FAT12格式的引导程序(2)
1.用WinImage来写入到引导区的详细步骤: 启动WinImage后,打开“文件”菜单,单击菜单中的“打开”命令. 选择之前保存的磁盘镜像文件“boot.img”或者“boot.ima”. 打开 ...
- Linux基础介绍【第九篇】
服务器添加3块磁盘的体系结构 [root@oldboylinux test]# free -m total used free shared buffers cached M ...
随机推荐
- ide破解
https://blog.csdn.net/yangying496875002/article/details/73603303
- [论文理解] Squeeze-and-Excitation Networks
Squeeze-and-Excitation Networks 简介 SENet提出了一种更好的特征表示结构,通过支路结构学习作用到input上更好的表示feature.结构上是使用一个支路去学习如何 ...
- Python Module_openpyxl_styles 样式处理
目录 目录 前言 系统软件 Working with styles Styles can be applied to the following aspects Styles模块 Copying st ...
- Python学习之==>模块结构调整
一.为什么要进行模块结构调整 当一个脚本中有大量的配置.方法及接口时,脚本显得十分臃肿,可读性很差.为了提高代码的易读性,可以将一个繁杂的脚本根据不同的功能放在不同的目录下分类管理,这整个过程叫做模块 ...
- 【MM系列】SAP 通过原材料找到成品的函数
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP 通过原材料找到成品的函数 ...
- 可持久化并查集 by zky
zz:https://www.cnblogs.com/cjoierljl/p/9567859.html https://www.cnblogs.com/peng-ym/p/9357220.html n ...
- Spark集成的包与引入包冲突
今天在编写Spark应用的时候,想把处理结果输出为JSON字符串,查到Java比较常用的JSON处理包gson,按照其API编写代码后运行程序,总是出现"NoSuchMethodExcept ...
- Linux hostname 主机名篇
主机名修改(以主机名为config为例) 1.修改文件/etc/sysconfig/network,内容为 [root@config ~]# cat /etc/sysconfig/network# C ...
- ES6生成器与迭代器
ES6迭代器的一个例子 function run(taskDef) { var task = taskDef(); var result = task.next(); // 递归执行迭代 functi ...
- windows上利用dhcpsrv搭建DHCP服务器
起因是一个很奇葩的需求:乙方要远程升级仪器,用TeamViewer远程控制并ssh到仪器,但仪器内部IP地址没有写死,靠DHCP服务器获取.那么就要在PC建立DHCP服务器,用网线连接仪器,然后才能看 ...