[Linux内核完全剖析]第六章 引导启动程序(boot)总结

Linux0.11中设备命名方式:


1-内存、2-磁盘、3-硬盘、4-ttyx(串行终端)、5-tty(控制终端)、6-并口、7-匿名管道。
硬盘逻辑设备号命名方式:设备号*0x100+次设备号。
次设备号:(硬盘号-1)*5+分区号,如不带分区号则代表整块硬盘。
这种命名方式在0.95内核以后被废除。

boot目录下共有3个文件:
1、bootsect.s:as86汇编文件,主要用来载入系统内核。其功能是利用BIOS 13h中断把第一个扇区(程序自身)复制到0x90000处,从0x7c00跳转至0x900xx,并把setup.s(第二至四扇区)加载到0x90200处。再把system模块加载到0x10000处,最后跳转到setup.s程序继续执行。

2、setup.s:as86汇编文件,主要用来做一些进入内核前的初始化工作。先用BIOS中断读取系统数据到0x90000处,然后把0x10000-0x8fffff处的内核模块移动到0处。然后设置和加载IDT和GDT,设置硬件中断为0x20-0x2f,进入保护模式,最后跳转到head.s程序继续执行。
setup
3、head.s:gas32位汇编文件,和内核的其他程序一起被链接成system模块,位于system模块最前端。首先是加载各个数据段寄存器,然后重设IDT的所有表项到一个只报错误的哑中断程序ignore_int。再重新设置GDT,检测A20地址线是否真正开启,检测是否有数学协处理器。设置内存分页机制,把页目录放到物理地址0开始处,后面紧跟四个页表。最后手工构造栈返回到init/main.c中

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值