MINIX3的BootLoader分析

本文详细介绍了MINIX3的启动过程,从BIOS加载主引导扇区开始,经过主引导分区、bootstrap阶段,再到boot monitor的执行,包括boothead.s的内存和设备检测,boot.c的环境变量设置及系统加载,以及bootimage.c和rawfs.c在系统镜像选择和加载中的作用。整个流程详尽展示了MINIX3的启动机制。
摘要由CSDN通过智能技术生成

1. BIOS

当PC加电自检后,将根据BIOS中的设置,判断指定存储介质的主引导扇区的最后两个字节是否为0xAA55。如果是,则将该扇区载入到地址LOADOFF(0x7C00)处,并开始执行。这一步是由PC的BIOS自动完成的,与操作系统无关。

2. 主引导分区

masterboot.s的代码存放在主引导扇区中,会将自身拷贝到地址BUFFER处并跳转到那里开始执行。该段代码会通过搜索分区表查找出活动扇区,将其主引导扇区的代码拷贝到地址LOADOFF处并执行。

3. bootstrap

这段代码即为bootstrap(存放在bootblock.s文件中),会将boot monitor拷贝到地址BOOTSEG处,并跳转到BOOTSEG:BOOTOFF处执行。

4. boot monitor

boot monitor由boothead.s、boot.c、bootimage.c和rawfs.c四个文件组成,会载入Minix或其他系统。

4.1 boothead.s

boothead.s中的代码将首先被执行,会检测内存、CPU类型、视频模式等,最后调用boot.c中的boot函数。此外,boothead.s还提供了退出monitor、检测设备参数、标准I/O、实模式和保护模式转换等函数。

4.2 boot.c

boot.c提供了monitor的高级函数。boot函数会调用initializ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值