收藏 分享(赏)

PC机启动原理.ppt

上传人:hskm5268 文档编号:5827545 上传时间:2019-03-18 格式:PPT 页数:11 大小:284KB
下载 相关 举报
PC机启动原理.ppt_第1页
第1页 / 共11页
PC机启动原理.ppt_第2页
第2页 / 共11页
PC机启动原理.ppt_第3页
第3页 / 共11页
PC机启动原理.ppt_第4页
第4页 / 共11页
PC机启动原理.ppt_第5页
第5页 / 共11页
点击查看更多>>
资源描述

1、第四章 PC机启动原理,引导程序规则,引导程序具有如下三个特点: (1) 它的大小是512B,不能多一个字节也不能少一个字节,因为BIOS 只读512B 到内存中去。 (2) 它的结尾两字节必须是“55 AA”,这是引导扇区的标志。 (3) 它总是放在磁盘的第一个扇区上(0 磁头,0 磁道,1 扇区),因为BIOS 只读这一个扇区。因为BIOS只读一个磁盘扇区512个字节的数据到内存中,而现在操作系统核心程序都比较庞大,512个字节的空间显然是不够存放。引导扇区里的程序的主要功能是将存储在磁盘上的操作系统的核心程序读进内存,然后再跳转到操作系统的核心程序,去执行操作系统功能。,实模式下的内存使

2、用区间布局,BIOS 的中断处理,中断处理过程图,实模式与保护模式,寻址结构,实模式的寻址,段描述符的格式,图4.9 保护模式下的地址转换原理图,进入保护模式,80386有4个32位控制寄存器,名字分别为CR0、CR1、CR2和CR3。这些寄存器仅能够由系统程序通过MOV 指令访问。格式如图4.10 所示。,系统要切换到保护模式过程简述如下: (1)创建GDT表; (2)用lgdt命令加载gdtr; (3)启用A20地址线; (4)通过置CR0的PE位为1 ; (5)执行跳转,进入保护模式;,进入保护模式,控制寄存器CR0 包含系统整体的控制标志,它控制或指示出整个系统的运行状态或条件。其中:

3、 PE 保护模式开启位(Protection Enable,比特位0)。如果设置了该比特位,就会使处理器开始在保护模式下运行。 MP 协处理器存在标志(Math Present,比特位1)。用于控制WAIT 指令的功能,以配合协处理器的运行。 EM 仿真控制(Emulation,比特位2)。指示是否需要仿真协处理器的功能。 TS 任务切换(Task Switch,比特位3)。每当任务切换时处理器就会设置该比特位,并且在解释协处理器指令之前测试该位。 ET 扩展类型(Extention Type,比特位4)。该位指出了系统中所含有的协处理器类型(是80287 还是80387)。 PG 分页操作(

4、Paging,比特位31)。该位指示出是否使用页表将线性地址变换成物理地址。参见第6章对分页内存管理的描述。,fd_boot.asm 引导程序功能,fd_boot.bin代码是磁盘引导块程序,驻留在磁盘的第一个扇区中(引导扇区,0 磁道(柱面),0 磁头,第1 个扇区)。在PC 机加电ROM BIOS 自检后,引导扇区由BIOS执行int19H中断,加载到内存0x7C00 处,然后引导扇区程序将自己移动到内存0x90000 处。该程序的主要作用是首先将setup 模块(由setup.asm 编译得到)从磁盘加载到内存,紧接着bootsect 的后面位置(0x90200),然后利用BIOS 中断

5、0x13 取磁盘参数表中当前启动引导盘的参数,接着在屏幕上显示“Loading system.”字符串。再者将system 模块从磁盘上加载到内存0x10000 开始的地方。随后确定根文件系统的设备号,若没有指定,则根据所保存的引导盘的每磁道扇区数判别出盘的类型和种类(是1.44M A 盘?)并保存其设备号于root_dev(引导块的0x508 地址处),最后长跳转到setup 程序的开始处(0x90200)执行setup 程序。,setup.asm 设置程序功能,setup.asm程序的作用主要是利用ROM BIOS 中断读取机器系统数据,并将这些数据保存到相应变量中。这些参数将被内核中相关

6、程序使用。然后setup.asm程序为系统进入保护模式做准备:加载中断描述符表寄存器(idtr)和全局描述符表寄存器(gdtr);开启A20 地址线;重新设置两个中断控制芯片8259A;最后设置CPU 的控制寄存器CR0(也称机器状态字),从而进入32 位保护模式运行;跳转到位于内核程序入口Main函数继续运行。为了能让内核程序在32 位保护模式下运行,在本程序中临时设置了中断描述符表(idt)和全局描述符表(gdt),并在gdt 中设置了当前内核代码段的描述符和数据段的描述符。,lowlevel.asm 程序功能,Lowlevel.asm文件主要是提供底层中断和线程处理的代码。它是一个32位代码程序,编译时被链接到内核中。在文件中定义了在IDT中要使用的底层中断处理程序入口指针。同时也包含了中断处理代码和线程上下文切换代码。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报