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:

  1. boot sector
  2. FAT tables
  3. root directory entry
  4. 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的更多相关文章

  1. 《Orange‘s》FAT12文件系统

    FAT12 层次 扇区(Sector):磁盘上的最小数据单元 簇(Cluster):一个或多个扇区 分区(Partition):通常指整个文件系统 引导扇区 引导扇区是整块软盘的第0个扇区,在这个扇区 ...

  2. FAT12格式的引导区实现

    org 07c00h ;================================================ jmp short START nop ; 这个 nop 不可少 ;这个结构将 ...

  3. 制作FAT12软盘以查看软盘的根目录条目+文件属性+文件内容

    [-1]Before for specific info , please visit http://wiki.osdev.org/Loopback_Device [0]我们先上干货,看到效果后,我们 ...

  4. FAT12中,如何定位大于一个扇区(512B)的文件内容

    [0]README 0.1)本文旨在于 演示在FAT12中, 如何取定位大于 512B 的文件内容,和查看它: 0.2)如何制作FAT12文件系统,以及如何向文件中添加temp.txt文件,参见: { ...

  5. 【转载】FAT12格式的引导程序

    FAT12格式的引导程序 在上一篇文章中详细介绍了FAT12格式的引导扇区数据结构,详情请浏览: 地址是:http://blog.sina.com.cn/s/blog_3edcf6b80100cr08 ...

  6. 【转载】FAT12文件系统之引导扇区结构

    FAT12文件系统之引导扇区结构 文件系统即文件管理系统,是操作系统的重要组成部分之一,如果需要开发底层磁盘驱动或编写自己的操作系统,就必须详细了解文件系统. FAT12是Microsoft公司DOS ...

  7. FAT12 img tool

    NJU/2019/OS Description: CODE: Main.cpp: /* @author: Edwin Xu @Date:2019/11/13 @Note: just ASCII */ ...

  8. 【转载】FAT12格式的引导程序(2)

     1.用WinImage来写入到引导区的详细步骤: 启动WinImage后,打开“文件”菜单,单击菜单中的“打开”命令. 选择之前保存的磁盘镜像文件“boot.img”或者“boot.ima”. 打开 ...

  9. Linux基础介绍【第九篇】

    服务器添加3块磁盘的体系结构 [root@oldboylinux test]# free -m              total used free shared buffers cached M ...

随机推荐

  1. java内存分布详解

    参见:http://blog.csdn.net/bluetjs/article/details/52874711 基本类型和引用类型.二者作为局部变量,都放在栈中,基本类型直接在栈中保存值,引用类型只 ...

  2. ubuntu用mentohust连接ruijie

    32位  http://download.csdn.net/detail/yan456jie/8720395 64位 http://download.csdn.net/detail/yan456jie ...

  3. python - MySQLdb 事务处理及批量执行executemany

    MySQL数据库有一个自动提交事务的概念,autocommit.含义是,如果开启autocommit, 则每一个语句执行后会自动提交.即一个语句视为一个事务. 在python使用的MySQLdb中,默 ...

  4. Win7下使用TortoiseGit设置保存密码

    1. 打开 TortoiseGit 设置,编辑 .gitconfig 文件,如图: 2. 添加下面两行配置,如图: [credential] helper = store 3. 保存退出即可

  5. 记一次 Vue 组件内存泄漏的坑

    概述 最近在开发 Vue 项目的时候遇到了内存泄漏问题,记录下来,供以后开发时参考,相信对其他人也有用. 背景 背景是需要用 three.min.js 和 vanta.net.min.js 给首页加上 ...

  6. maven setting.xml文件配置详情

    1 首先,setting.xml一般存在与两个地方:maven的安装目录/conf/,和${user.home}/.m2/下.他们的区别是在maven安装目录下的setting.xml是所有用户都可以 ...

  7. lambda表达式使用解析

    1.Predicate/Consumer/Function/Supplier介绍 Predicate boolean test(T t); Consumer accpet(T t); Function ...

  8. TCP/IP 网络模型

    前言 互联网是怎么构成的,又是怎么运作的?什么是 TCP/IP 网络?为什么远隔万里的计算机可以互相通信?计算机网络作为 IT 行业的基石,是工程师永远绕不开的话题. 计算机网络的分层体系结构 计算机 ...

  9. 2.k8s.Pod生命周期,健康检查

    #Pod生命周期,健康检查 pod创建过程 Init容器 就绪探测 存活探测 生命周期钩子 #Pod创建过程 master节点:kubectl -> kube-api -> kubenle ...

  10. C# DES 加解密

    using System; using System.Text; using System.Security.Cryptography; using System.Diagnostics; using ...