FAT12文件系统简介:
FAT12是DOS时代就开始使用的文件系统(File System),现在主要在软盘上使用(现在应该没有软盘了吧)
FAT12文件系统管理磁盘,会把磁盘分为 扇区 镞 分区
软盘结构如下:
-
引导扇区(Boot Sector)
-
文件分配表(FAT)紧接着引导扇区的是两个完全相同的FAT表,每个FAT表占用9个扇区
-
根目录区FAT表之后是根目录区,根目录区长度不固定
-
数据区根目录后面就是数据区
使用bootloader加载程序到内存原理:
(环境:软盘)
fat项:fat表的结构 由12位组成
1.在boot.asm中写入BPB头信息,把boot.asm文件写入引导扇区,便于DOS和linux识别
2.编写一个简单的loader 一个读取扇区的函数 一个寻找loader的函数
3.根据找到的扇区号->求出FAT项的值->加载bootloader->把控制权交给bootloader->由bootloader来加载操作系统内核
关于软盘大小有关的一些计算:
根目录区开始的扇区号为19,跟目录区由若干目录条目组成,条目最多有BPB_RootEntCnt个,每一个条目占32字节 BPB_BytsPerSec:表示每扇区字节数
目录区占扇区数RootDirSectors=(BPB_RootEntCnt*32)/BPB_BytsPerSec