Minix 源代码阅读 MasterBoot

本文详细介绍了Minix操作系统中的主引导分区(MasterBoot)的加载流程,包括BIOS如何找到主引导扇区,主引导扇区如何查找活动分区并加载其引导扇区。通过分析代码,解释了如何处理不同存储设备的引导过程,以及在不同场景下的引导路径。
摘要由CSDN通过智能技术生成

1. BIOS

当PC加电,BIOS会进行自检,创建中断向量、设置寄存器,并根据BIOS中的设置,判断指定存储介质的主引导扇区的最后两个字节是否为0xAA55。如果是,则将该扇区载入到地址LOADOFF(0x7C00)处,并开始执行。在载入之后,开始执行之前内存的分布如下:
0x00000~0x003FF : 中断向量表
0x00400~0x004FF : BIOS数据区
0x00500~0x07BFF : 自由内存区
0x07C00~0x07DFF : 引导程序加载区
0x07E00~0x9FFFF :  自由内存区
0xA0000~0xBFFFF : 显存区
0xC0000~0xFFFFF : BIOS中断处理程序区


2. 主引导分区(masterboot.s)

masterboot.s的代码存放在主引导扇区中,会将自身拷贝到地址BUFFER(0x0600)处并跳转到那里开始执行。该段代码会通过搜索分区表查找出活动分区,并将其主引导扇区的代码拷贝到地址LOADOFF(0x7C00)处并执行。由此可知,其主要的操作:
1)查找活动分区
2)载入活动分区的主引导扇区(通过 BIOS int 13中断)

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值