用Bochs学习Minix(2)-启动过程分析

本文详细分析了Minix的启动过程,从bootblock.s的boot monitor开始,涉及boothead.s、boot.c和rawfs.c等文件。启动过程中,用户可通过ESC键进入交互界面,选择启动方式。最终,通过bootminix函数加载内核,并在main函数中完成中断控制器初始化、内存管理、驱动程序映射和进程表设置,启动系统运行。
摘要由CSDN通过智能技术生成
  Minix的启动过程分为两步,第一步运行masterboot.s或者bootblock.s中的内容。对于有分区的硬盘,它的第一个扇区是MBR(Master Boot Record),其中包含有引导代码和分区表。如果硬盘有子分区,则每个子分区的第一个扇区也具有单独的引导代码。此外,引导代码也可以被放到软盘的第一个扇区。masterboot.s的代码存放在MBR中,它适合引导装在不同分区上的Minix。如果masterboot.s被载入到内存的0x7c00处,它的任务就是找到引导分区(或软盘),加载其中的第一个扇区中的引导信息。在引导分区(或软盘)的第一个扇区存放有Minix的初级引导程序,即bootblock.s。它也被加载到0x7c00位置,它的任务是将boot monitorMinix的次级引导程序,磁盘中的/boot文件)加载到内存的0x10000处,并跳转到0x10000+0x0030处执行。

关于bootblock.s的分析,可以参考http://blog.donews.com/zwell/articles/70010.aspx,注意由于版本不同,文章内容可能与下载到的代码有出入。

第二部分的启动程序boot monitorboothead.sbootimage.cboot.crawfs.c等文件连接成。boot monitor的代码从boothead.s开始执行,在进行一些准备工作后程序就跳转到boot.cboot函数(boothead.s的其他代码在后面还将调用),boot函数会在显示器上打印:

Minix boot monitor 2.19

Press ESC to enter the monitor

此时可以按ESC键进入启动环境,

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值