linux内核(v0.11)-从开机加电执行到main函数前

这一段时间分三步完成

1,启动BIOS,准备实模式下的中断向量表和中断服务程序。

2,加载操作系统到内存。用步骤1中准备的中断服务程序实现。

3,为执行main函数做过渡工作。
偷笑吐舌头大笑

一,启动BIOS

        靠硬件方法来启动BIOSBIOS程序入口地址0xFFFF0。加电瞬间强行将CS的值置为0xFFFF,把IP的值强行置为0x0000,这样CS:IP就指向0xFFFF0这地址。
    

二,加载操作系统到内存分三步
   (1)加载引导程序bootsect(bootsect程序主要是规划内存)
        给CPU一个0x19中断,CPU查向量表做出反应,加载第一扇区的512B的bootsect到内存0x07C00
        (这里涉及到BIOS和操作系统“两头约定,定位识别”惯例,有兴趣读者自查,俺不赘述。)
         
   (2)加载setup代码。
        
   (3)加载system代码。

三,开始向32位模式转变,为main函数做准备。
    此阶段主要工作是,打开32位寻址空间,打开保护模式,建立保护模式下的中断响应机制,建立内存分页机制等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值