Linux内核-内核引导启动程序

1.  按电源

        当电源打开后80x86结构的CPU将自动进入实模式,并从0xFFFF0开始自动执行程序代码,这个地址通常是ROM BIOS中的地址。之后BIOS执行某些系统的检测,并在物理地址0处开始初始化中断向量。

        此后,它将可启动设备的第一个扇区读入内存绝对地址0x7C00处,并跳转到这个地方。

2.bootsect.s        linux引导程序

        利用BIOS功能调用将setup.s和内核映像加载到内存的相应位置。内核加载完毕之后,系统跳转到setup.s的开始位置执行,主要是设置系统参数(包括内存,磁盘,) 检测和设置显示器和显示模式并为进入保护模式做准备,最后进入保护模式并跳转到内核映像的头部运行内核。

3.setup.s

        负责数据区,中断描述表idt,段描述表GDT,页表和寄存器的初始化,同时在进行一些必要的检查。

4.head.s

        主要初步初始化中断描述符表中的256项门描述符,然后初始化内存页目录表,为内存的分页管理做好准备工作,然后准备执行init.c

5.init/main.c

         首先利用setup.s程序取得的系统参数设置系统的根文件设备号以及一些内存全局变量。然后内核进行所有方面的硬件初始化工作。包括陷阱门,块设备,字符设备和tty,包括人工创建的第一个任务(task 0),然后开启中断。

        内核初始化完成后,内核将执行权切换到了用户模式,即从0切换到了3级。       

        

  • 7
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值