看了《自己动手写操作系统》后,也想自己打造一个迷你操作系统,但是书中使用的软盘现在基本已经绝迹了,而U盘成为一种喜闻乐见的工具。因此想将操作系统写入U盘中,而读写U盘的引导扇区成为成功的关键。
将U盘格式化为FAT32文件系统,要读写U盘的引导扇区,需要首先了解FAT32的格式。它包含四个部分:
保留扇区 | FAT1 | FAT2 | 数据区。需要注意的是:保留扇区的第一个扇区是引导扇区(DBR)。
其中引导扇区的数据结构为:
数据区的开始为主目录区,主目录区包含了文件的熟悉,数据结构如下:
根据每个文件起始的簇号,就可以找到文件内容的绝对扇区起始位置
文件的簇号在FAT表中安装链表的形式存放,文件的属性在主目录区安装数组的形式存放。
文件内容的绝对扇区起始位置 = 保留扇区 + FAT1 + FAT2 + (起始簇号 -2)*每簇的扇区数
然后编写引导程序,读入U盘引导扇区,选择从U盘启动,就可以看到自己打造的U盘操作系统了
引导程序的汇编代码如下: