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 ...
随机推荐
- linux查看端口被那个进程占用
linux下遇到端口被暂用了 需要知道是哪个进程 比如80端口 可以这样 netstat -tunlp|
- jvm内存模型学习心得
昨天面试了两家,备受打击,问的多的就是jvm内存,然额真的是一头雾水.工作中用到的真是少之又少,面试还得问道, 今天恶补了下,在此作以下总结: jvm分为5部分 1.程序计数器 jvm支持多线程运行, ...
- 浏览器默认样式及reset
写在前面 首先纠正一个易错概念.div并非生来就是块元素,而是每个浏览器都有一套默认的css样式(优先级最低),默认样式里会把div设置成display: block;还有margin,padding ...
- Quartz快速上手
快速上手你需要干啥: 下载Quartz 安装Quartz 根据你的需要来配置Quartz 开始一个示例应用 下载和安装 The Quartz JAR Files The main Quartz lib ...
- 【nginx】常用命令 启动|停止|重启|重新读取配置-centOS7
查看服务的当前状态 (flaskApi) [root@67 goTest]# systemctl status nginx.service ● nginx.service - The nginx H ...
- autoprefixer不起作用的坑
概述 今天同事说,nuxt.js的项目好像没有自动加前缀,我花了很长时间查找原因,最后终于发现,原来是没有加.browserslistrc文件...记录下来,供以后开发时参考,相信对其他人也有用. b ...
- 关于自定义 List集合排序的方法!
大致流程: 排序是用到排序的接口Comparator<T>你要先建一个类实现比较器Comparator //大致流程public class StuComp implements Comp ...
- lua源码学习篇四:字节码指令
在llimits.h文件中定义了指令的类型.其实就是32个字节. typedef lu_int32 Instruction; 上节说到变量最终会存入proto的数组k中,返回的索引放在expdesc ...
- uva-796.critical links(连通图的桥)
本题大意:求出一个无向图的桥的个数并且按照顺序输出所有桥. 本题思路:注意判重就行了,就是一个桥的裸题. 判重思路目前知道的有两种,第一种是哈希判重,第二种和邻接矩阵的优化一样,就是只存图的上半角或者 ...
- Spark启动流程(Standalone)- master源码
Master源码 package org.apache.spark.deploy.master //伴生类 private[deploy] class Master( override val rpc ...