操作系统基础部分_1
副标题:哈工大 李志军《操作系统》
计算机上电后启动(看不懂,以后补充)
完成功能:读入内存,完成初始化
Q:os在磁盘上如何取指执行?
A:将os从磁盘载入内存中。由一开机时的操作系统第一段代码,即bootsect.s程序(为控制编写代码出现的位置,使用汇编)来完成。
- 对于Intel x86 PC , 开启电源后, 机器就会开始执行ROM BIOS的一系列系统测试动作,包括检查RAM,keyboard,显示器,软硬磁盘等等。执行完bios的系统测试之后,紧接着控制权会转移给ROM中 的启动程序(ROM bootstrap routine);这个程序会将磁盘上的第0轨第0扇区(叫boot sector或MBR , 系统的引导程序就放在此处)读入内存中,并放到自0x07C0:0x0000开始的512个字节处;然后处理机将跳到此处开始执行这一引导程序;也即装入 MBR中的引导程序后, CS:IP = 0x07C0:0x0000 。加电后处理机运行在与8086相兼容的实模式下。
- 如果要用 bootsect-loader进行系统引导,则必须把bootsect.S编译连接后对应的二进制代码置于MBR ; 当ROM BIOS 把bootsect.S编译连接后对应的二进制代码装入内存后,机器的控制权就完全转交给bootsect ; 也就是说,bootsect将是第一个被读入内存中并执行的程序。
Q:bootsect.s程序做了什么事情 ?
A:将os代码分段读入。先读入setup,然后屏幕打印开机logo,再然后调用BIOS的13号中断把os的system部分读入 ,任务完成。然后交给setup取址执行。


