LINUX内核启动流程-1

本文详细介绍了Linux内核启动流程,从BIOS加载中断向量表开始,到BIOS加载第一部分内核代码引导程序bootsect,再到setup的加载与系统模块system的加载。过程中涉及内存规划、中断服务程序、根设备确认以及setup执行等多个关键步骤,揭示了操作系统启动的复杂性和精密性。
摘要由CSDN通过智能技术生成

1、BIOS启动

硬件设置从OXFFFF0启动:CPU硬件设置加电即进入16位实模式状态运行,CPU硬件逻辑设计为加电瞬间强行将CS的值置为oxF000,IP的值置为0xFFF0,这样CS:IP就指向0xFFFF0这个地址位置。

BIOS程序的入口地址恰恰就是0xFFFF0 ! 也就是说,BIOS程序的第一条指令就设计在这个位置。

 BIOS在内存中加载中断向量表和中断服务程序

INT(INTerrupt):中断,顾名思义,中途打断一件正在进行中的事。其最初的意思是:外在的事件打断正在执行的程序,转而执行处理这个事件的特定程序,处理结束后,回到被打断的程序继续执行。

计算机将分三批逐次加载操作系统的内核代码

第一批由BIOS中断int 0x19把第一扇区bootsect的内容加载到内存;

第二批、第三批在bootsect的指挥下,分别把其后的4个扇区和随后的240个扇区的内容加载至内存。

2、加载第一部分内核代码——引导程序(bootsect)

经过执行一系列BIOS代码之后,计算机完成了自检等操作,包括显卡、内存……等硬件信息。

2.1 计算机硬件体系结构的设计与BIOS联手操作,会让CPU接收到一个int 0x19中断。

CPU接收到这个中断后,会立即在中断向量表中找到int 0x19中断向量。CPU接收到这个中断后

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值