引导:boot实现

1、计算机启动流程

1)上电启动后,CPU处于16位运行的实模式,分页机制禁止,此时只有1MB内存可用,没有特权级

2)CPU跳转到BIOS的入口(地址为0xFFFF0)开始执行

3)BIOS进行硬件自检(POST),主板、硬盘、显卡、内存等自检,并保存一些配置数据到特定内存地址处(如硬盘的数量)

4)根据配置的启动顺序(光驱、U盘、硬盘等),加载引导代码运行。例如,从硬盘启动时,将硬盘的第1扇区(主引导纪录)读取到0x7c00处并且跳转到该地址处运行

5)引导代码对操作系统的运行初始环境进行配置,并加载操作系统到内存中

6)跳转到操作系统运行

主要工作是完成最后两步,实现自己的引导代码和操作系统

2、接管控制权

具体而言,要接管系统的控制权,需要完成两步操作:

        1)编写引导程序,控制在512字节内,写入启动磁盘的第0扇区,

        2)在第0扇区的最后两个字节(1FE, 1FF)写入0x55, 0xaa。

BIOS在完成自检后,会检查第0扇区的最后两个字节是否是0x55, 0xaa,以此来判断是否包含有效的引导代码。如果是,则自动从引导磁盘的第0扇区加载引导程序到0x7c00处执行。具体如下图所示。

本项目只涉及到启动磁盘没有分区的情况,简化项目过程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值