bootsect

  

图形接口卡以及BIOS
 
setup
 
0x7c00 bootsect 被搬运
 
一部分保留BIOS用,另一方面linux内核的引导需要一些运行空间
 
内核映象
 
0x0
0x90000
0x92000
0x10000
0xa0000
0x100000

                               系统引导过程
 
BIOS “引导”一个系统时,总是把引导扇区读入到基本内存中地址为 0x7c00 的地方。然后就跳转到 0x7c00 开始执行引导扇区的代码。
       Cpu 在跳转到 bootsect 时尚处于 16 位实地址模式,然后在 setup 的执行过程中转入 32 位保护模式的段式寻址方式。在 bootsect setup 的执行中,二者都利用 bios 提供的调用来完成一些比较大的操作,入读磁盘,取得 BIOS 在加电自检时搜集到的有关内存的信息等等。一旦转入内核映象本身的执行,就与 BIOS 分道扬镳,不再使用 BIOS 调用了。
辅助程序 setup 为内核映象的执行作好了准备(包括解除压缩)以后,就跳转到 ox10000 开始内核本身的执行,此后就时内核的初始化,例如页式映射的建立;第二阶段主要式系统中的一些基础设施的初始化,例如内存管理核进程管理的建立核初始化;最后则是“上层建筑”的初始化,如跟设备的安装和外部设备的初始化等等。
Bootsect 代码执行期间,它会将自己移动到内存绝对地址 0x90000 开始处继续执行。该程序的主要作用是首先把从磁盘第 2 个扇区开始的 4 隔山去的 setup 模块加载到内存紧接着 bootsect 后面位置处,然后利用 bios 中断 0x13 取磁盘参数表中当前驱动引导盘的参数,接着在屏幕上显示“ Load system…… ”字符串。再者把磁盘上 setup 模块后面的 sysytem 模块加载到内存 0x10000 开始的地方。随后确定根文件系统的设备号,若没有制定,则根据所保存的引导盘的每磁道扇区数判断出盘的类型和种类并保存其设备号于 root_dev (引导块的 508 地址处),最后长跳转到 setup 程序的开始处( 0x90200 )执行 setup 程序。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值