计算机启动流程分析--以JOS为例(从BIOS到刚进入boot loader)

本文详细解析了计算机启动过程中从BIOS到Boot Loader的步骤,以JOS和QEMU环境为例。文章介绍了CPU加电后进入BIOS程序,BIOS加载磁盘引导块并跳转到Boot Loader,Boot Loader如何初始化和进入保护模式,以及后续的栈指针设置和调用bootmain函数。通过对启动流程的深入分析,帮助读者理解操作系统启动的基础知识。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    最近的OS课程(借鉴自MIT6.828)学习了PC boot的过程,自己也动手完成了6.828的lab1,对启动流程有了一定认识。

    环境:jos,QEMU为lab的实验环境。

    CPU加电后,先进入预先写好的BIOS程序执行,首先执行:

[f000:fff0] 0xffff0:	ljmp   $0xf000,$0xe05b

    f000:fff0是这条语句的地址,必须注意:BIOS下,处于i8086模式,即系统的实际内存只有1MB,lab中的注释描述如下:

+------------------+  <- 0xFFFFFFFF (4GB)
|      32-bit      |
|  memory mapped   |
|     devices      |
|                  |
/\/\/\/\/\/\/\/\/\/\

/\/\/\/\/\/\/\/\/\/\
|                  |
|      Unused      |
|                  |
+------------------+  <- depends on amount of RAM
|                  |
|                  |
| Extended Memory  |
|                  |
|                  |
+------------------+  <- 0x00100000 (1MB)
|     BIOS ROM     |
+------------------+  <- 0x000F0000
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值