linux系统启动过程分析下.ppt
《linux系统启动过程分析下.ppt》由会员分享,可在线阅读,更多相关《linux系统启动过程分析下.ppt(42页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、linux系统启动过程分析(下)第二节Linux0.01启动分析n引导过程的描述n引导流程和内核镜像文件n计算机加电过程nBIOS程序n操作系统引导部分代码的分析nBoot.s的分析nhead.s的分析nHead.s的作用nAT&T汇编语言初步引导过程的描述n引导流程和内核镜像文件n计算机加电过程nBIOS程序引导的步骤一般来说,操作系统的引导过程分两个步骤:n首先,计算机硬件经过开机自检(PowerOnSelf-Test,POST)之后,从软盘或硬盘的固定位置装载一小段代码,这段代码一般称为“引导装载器”。n然后,由引导装载器负责装入操作系统内内核核镜镜像像文文件件并将控制权交给操作系统进行
2、进一步的初始化和运行操作系统n引导装载器非常小,一般只有几百个字节,而操作系统庞大而复杂,上述分成两阶段的引导过程,可将计算机中的固化软件保持得足够小,同 时 也 便 于 实 现 对 不 同 操 作 系 统 的 引 导。Linux0.01内核镜像文件n由build.c程序生成n写入到磁盘(makedisk&dd)计算机加电过程n当机算机的电源键被按下时,同这个键相联的电信号线就会送出一个电信号给主板,主板将此电信号传给供电系统,供电系统开始工作,为整个系统供电,并送出一个电信号给BIOS,通知BIOS供电系统已经准备完毕。随后BIOS启动一个程序,进行主机自检,主机自检的主要工作是确保系统的每
3、一个部分都得到了电源支持,内存储器、主板上的其它芯片、键盘、鼠标、磁盘控制器及一些I/O端口正常可用,此后,自检程序将控制权还给BIOS。n接下来BIOS读取BIOS设置,得到引导驱动器的顺序,然后依次检查,直到找到可以用来引导的驱动器(或说可以用来引导的磁盘,包括软盘、硬盘、光盘等),然后调用这个驱动器上磁盘的引导扇区进行引导。基本输入输出系统BIOSn存放在ROM中的BIOS程序执行开机是系统个部分自检,经过一系列操作之后,BIOS会将有关代码和数据存放在内存低端1MB末端的64KB处,然后跳转到这个地方让CPU进入实地址模式工作n将内核文件加载到内存后,LINUX不再使用BIOS功能,因
4、此BIOS中断向量表在引导过程中被覆盖。nBIOS将所检查磁盘的第一个扇区(512B)载入内存,放在0 x0000:0 x7c00处,如果个扇区的最后两个字节是“55AA”,那么这就是一个引导扇区,这个磁盘也就是一块可引导盘。通常这个大小为512B的程序就称为引导程序(boot)。如果最后两个字节不是“55AA”,那么BIOS就检查下一个磁盘驱动器。BIOS是怎么知道或说分辨哪一个磁盘可以用来引导的呢?n引导程序所具有的特点:n它的大小是512B,不能多一字节也不能少一字节,因为BIOS只读512B到内存中去。n它的结尾两字节必须是“55AA”,这是引导扇区的标志。n它总是放在磁盘的第一个扇区
5、上(0磁头,0磁道,1扇区),因为BIOS只读第一个扇区。利用BIOS 13 号中断读取磁盘扇区AH寄存器:存放功能号,为2的时候,表示使用读磁盘功能DL寄存器:存驱动器号,表示欲读哪一个驱动器CH寄存器:存磁头号,表示欲读哪一个磁头CL寄存器:存扇区号,表示欲读的启始扇区AL寄存器:存计数值,表示欲读入的扇区数量在设置了这几个寄存器后,我们就可以使用 int13这条指令调用BIOS13号中断读取指定的磁盘扇区,它将磁盘扇区读入ES:BX处,因此,在调用它之前,我们实际上还需要设置ES与BX寄存器,以指出数据在内存中存放的位置0.01版内核,以软盘启动为例:1开机2BIOS加电自检(Power
6、OnSelfTest,POST),内存地址为0ffff:00003将软盘第一个扇区(0头0道1扇区,也就是BootSector)读入内存地址0000:7c00处。4检查(WORD)0000:7dfe是否等于0 xaa55,若不等于则转去尝试其他启动介质,如果没有其他启动介质则显示NoROMBASIC然后死机。5跳转到0000:7c00处执行MBR中的程序。6MBR将自己移动到9000:00007将内核模块从软盘读入到1000:00008将内核模块移动到0000:00009进入保护模式10读取COMS信息,设置有关表格,然后调用操作系统初始化程序MAIN.C1-5完全由BIOS完成,6-10由B
7、OOTBOOT.SHEAD.S完成其中BOOT.S的目标代码就是MBR(主引导记录MasterBootRecord)中的程序操作系统引导流程Linux0.01系统引导过程中内核代码在内存中的位置变化操作系统引导部分代码的分析nBoot.s的分析nhead.s的分析nHead.s的作用nAT&T汇编语言初步操作系统引导部分代码n0.01版源代码树中/boot文件夹中的两个汇编语言程序文件nBoot.snHead.sBoot.s的作用n引导装载器,存放在mbr中的一段程序,负责将操作系统加载到内存合适的地方,这一部分的代码运行在实模式中,boot.s运行的最后将设置cr0进入保护模式,然后将接着执
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- linux 系统启动 过程 分析
限制150内