MIT-6.828-JOS 启动过程总结

本文详细介绍了MIT-6.828 JOS操作系统启动过程,从BIOS初始化硬件设备和加载BOOT模块,到BOOT模块如何重置数据段寄存器、开启A20地址线、进入保护模式,以及加载内核代码到内存。通过对这一过程的剖析,揭示了操作系统启动的底层逻辑。
摘要由CSDN通过智能技术生成

1. BIOS初始化

1.1 CPU启动后,它会先加载BIOS模块代码到内存中执行。

1.2 BIOS会初始化硬件设备,初始化初始中断描述符表,这个中断描述符表叫“初始”是因为它是供内存描述符表初始化之前使用的,内核描述符表初始化后就会被清除。

1.3 BIOS会从启动盘中读取第一块内容并加载到内存的0x7c00,之后就跳转到0x7c00出执行。到这里,BIOS使命就完成了,boot loader模块开始运行。

2. BOOT模块

2.1 首先,看一下JOS的磁盘布局:boot loader存在第一扇区,而内核代码从第二扇区开始存储。

2.2 到目前为止,处理器还处于实模式状态,所以boot loader的第一个工作就是重置数据段寄存器DS,ES,SS为0

2.3 开启A20地址线,为进入保护模式做准备

2.4 加载全局描述符表,置位CR0寄存器的PE位,通过ljmp指令正式进入保护模式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值