自己动手写操作系统

今天看了前两章,现将重点记录如下:

操作系统的启动,关键点时同BIOS的接口:

这里有两个地址很重要,

a,  0x7c00+510=0x7dfe登记标志位(两个byte):   0xaa55

b, 0x7c00,操作系统加载的目标地址

 

系统启动过程

1 Bios清零CPU现场: 发送RESET信号

2 CPU从0xf ff f0处开始执行指令,该地址在系统的BIOS地址范围内

      PS: 大部分系统BIOS厂商在该地址放置的是一条跳转指令

3 BIOS启动代码首先要POST(Power-On self Test, 加点自检)

此时出错,只有机箱喇叭的发声警报,因为还未初始化显卡。

4 初始化设备:

显卡BIOS起始地址一般为0xC 00 00处,系统

BIOS自检后调用该地址的代码。

然后调用其他设备的BIOS程序来进行相关初始化。

5 测试设备

初始化后,系统BIOS显示其自身的信息,

然后是CPU测试,

然后是内存测试,

然后是标准硬件(硬盘,光驱,串口,并口,软驱)的检查与测试

然后是即插即用设备的检测,并为该设备分配中断,DMA通道和I/O端口等资源

6 更新ESCD

Extended System Configuration Data, 是系统BIOS用于同操作系统交换硬件配置信息的一种手段。

这些数据一般存于CMOS中。

7 启动操作系统

将启动装置(光盘,软盘,硬盘)的第一个山区读入内存,并检查0x7dfe地址,如果其值为0xaa55,

则跳转到0x7c00处执行MBR(master boot record),MBR再负责装载操作系统。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值