“操作系统原理与实践”实验报告

操作系统的引导

1)x86CPU启动时为了向下兼容16位使用实模式,纯16位无保护执行环境。对于80286或以上的CPU通过A20 GATE来控制A20地址线。 Intel在设计80286时提出的目标是向下兼容,所以在实模式下,系统所表现的行为应该和8086/8088所表现的完全一样。 综上:高级芯片为了运行以前的程序,不得不保留实模式。所以说80286芯片存在一个BUG:它开设A20地址线。如果程序员访问100000H-10FFEFH之间的内存,系统将实际访问这块内存。进入实模式多此一举,可以直接进入保护模式。

解决方案:不向下兼容,直接进入32位的保护模式,保护模式本身是80286及以后兼容处理器序列之后产成的一种操作模式,它具有许多特性设计为提高系统的多道任务和系统的稳定性。例如内存的保护,分页机制和硬件虚拟存储的支持。现代多数的x86处理器操作系统都运行在保护模式下。

2)电源打开后,80x86结构的CPU将自动进入实模式,并从地址0xFFFF0开始自动执行程序代码,这个地址通常是ROM—BIOS中的地址。 PC机的BIOS将执行某些系统的检测,并在物理地址0处开始初始化中断向量。此后将启动设备的第一个扇区512字节读入内存绝对地址0x7C00处。过去system模块的长度不会超过512KB大小,所以bootsect程序把system模块读入物理地址0x10000开始位置处时并不会覆盖 在0x90000处开始的bootsect和setup模块,多此一举的是system模块移到内存中相对靠后的位置,以便加载系统主模块。

解决方案是在保证操作系统启动引导成功的前提下尽量扩大ROM—BIOS的内存寻址范围,以达到不需要读入靠后的位置处。 实验楼093 (2)https://bbs.csdn.net/topics/320166100?list=lz

最新评论