操作系统杂记

操作系统杂记

  • FAT12文件系统
    • 文件系统结构
    • 引导扇区结构
    • FAT表结构
    • 目录项结构

FAT12文件系统

文件系统结构


FAT12是Microsoft公司DOS操作系统所支持的文件系统之一,此外还有FAT16和FAT32。当软盘被标准格式化后,磁盘被格式化为:每磁头80个柱面(磁道),每个柱面有18个扇区,每个扇区有512字节空间。所以标准软盘的总空间(容量)为:

2×80×18×512=1474560B=1440K=1.44M

逻辑扇区 占用扇区 描述 CHS参数
0 1(512B) 引导程序 起:0/0/1
1 9(4608B) FAT文件分配表1 起:0/0/2 止:0/0/10
10 9(4608B) FAT文件分配表2 起:0/0/11 止:1/0/1
19 14(9728B) 根目录
33 14(9728B) 文件数据区

引导扇区结构


名称 偏移 长度 内容 默认值
BS_jmpBoot 0 3 跳转指令
BS_OEMName 3 8 生产厂商名 MSWIN4.1
BPB_BytesPerSec 11 2 每扇区字节数 512
BPB_SecPerClus 13 1 每簇字节数 1
BPB_RsvdSecCnt 14 2 保留扇区数 1
BPB_NumFATs 16 1 FAT分区表数 2
BPB_RootEntCnt 17 2 根目录可容纳目录项数 0e0h
BPB_TotSec16 19 2 总扇区数 0b40h
BPB_Media 21 1 介质描述符 0f0h
BPB_FATSz16 22 2 每FAT扇区数 9
BPB_SecPerTrk 24 2 每磁道扇区数 12h
BPB_NumHeads 26 2 磁头数 2
BPB_HiddSec 28 4 隐藏扇区数 0
BPB_TotSec32 32 4 如果BPB_TotSec16为0,则由此值记录扇区总数 0
BS_DrvNum 36 1 INT 13H 的驱动器号 0
BS_Reserved1 37 1 未使用 0
BS_BootSig 38 1 扩展引导标记(29H) 29H
BS_VolID 39 4 卷序列号 0
BS_VolLab 43 11 卷标,必须是11个字符,不足以空格填充
BS_FileSysType 54 8 文件系统类型,必须是8个字符,不足以空格填充 FAT12
引导代码 62 448 引导代码数据及其它信息
结束标志 510 2 0xAA55 0xAA55

FAT表结构


FAT12文件系统以簇为单位来分配数据区的存储空间(扇区),每个簇的长度为 BPB_BytesPerSec * BPB_SecPerCluster 字节.

FAT项 实例值 描述
0 FF0H 磁盘标示字,低字节与BPB_Media数值一致
1 FFFH 2、3字节为 0xFFFF 固定值,FAT标志
2 003H 下一簇为 003
3 005H 下一簇为 005
N FFFH 标示文件结尾
N+1 000H 可用簇

实例值说明

实例值 描述
000H 可用簇
002H~FEFH 下一个簇标示号(当前簇已使用)
FF0H~FF6H 保留簇
FF7H 坏簇
FF8H~FFFH 文件结尾簇

目录项结构

名称 偏移 长度 描述
DIR_NAME 0x00 11 文件名 8-Byte,扩展名 3-Byte
DIR_Attr 0x0B 1 文件属性
保留 0x0C 10 保留位
DIR_WrtTime 0x16 2 最后一次写入时间
DIR_FstClus 0x1A 2 起始簇号
DIR_FileSize 0x1C 4 文件大小

你可能感兴趣的:(操作系统小记)