FAT32文件系统启动扇区的实现

本文介绍了如何将操作系统启动代码从软盘的FAT12迁移到硬盘的FAT32。通过分析MBR、主分区表和FAT32分区信息,使用汇编语言读取硬盘MBR,找到第一个FAT32活动分区,加载OSLOADER.BIN到内存并执行。涉及内容包括:MBR结构、分区表项、FAT32分区参数、FAT表和根目录区的解析。
摘要由CSDN通过智能技术生成
      看了于渊写的《自己动手写操作系统》后,想把启动代码由软盘FAT12文件系统迁移到硬盘FAT32文件系统中,毕竟目前软盘几乎已经不再使用了,而硬盘和U盘是主流。基本想法是在实模式下,使用汇编代码,读取硬盘MBR,分析硬盘分区表,找到第一个FAT32活动分区,分析FAT32分区,在该分区中找到OSLOADER.BIN文件,将该OSLOADER.BIN文件加载到内存指定地址,将执行权交给OSLOADER.BIN。

环境:
Ubuntu 14.04
bochs

背景知识:
MBR,即硬盘主引导记录,是硬盘的第一个扇区,MBR扇区共512字节,前446字节为引导代码,之后64字节是分区表项,最后两字节是有效标志0xAA55,即MBR结构如下:
 0x0000~0x01BD: 主引导程序
 0x01BE~0x01FD:主分区表
 0x01FE~0x01FF:有效标记,0xAA55

主分区表由4项组成,每项16字节,共64字节,每项描述一个分区的基本信息。
16字节分区表项结构:
0x00:引导指示符,指明该分区是否是活动分区
0x01:开始磁头
0x02:开始扇区,只用了0~5位,后面2位被开始柱面所使用
0x03:开始柱面,使用了开始扇区的最后2位,共10位,最大值1023
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值