计算机启动过程(x86)

一、计算机是计算模型的实现(通用图灵机)

计算机启动过程(x86)_第1张图片

二、开机发生了什么?

计算机启动过程(x86)_第2张图片
1.x86PC刚开机时CPU处于实模式,和保护模式对应,实模式的寻址CS:IP(CS左移4位+IP),和保护模式不一样!Cpu还有一个模式是虚拟8086模式
2.CS=0xFFFF;IP=0x0000;
3.寻址0xFFFF0(内存中的ROM BIOS映射区),一开机唯一有代码的地方,只有有代码cpu才能从内存取指执行
4.检查RAM,键盘,显示器,软硬磁盘
5.将磁盘 0磁道0扇区(OS的引导扇区)读入内存的0x7c00处
0x7c00存放的代码就是从磁盘引导扇区读入的那512个字节
6.设置CS=0x07c0,IP=0x0000

CS:“Code segment”,即代码段寄存器,对应于内存中的存放代码的内存区域,用来存放内存代码段区域的入口地址(段基址)
CPU在执行指令时,通过代码寄存器CS和指令指针寄存器IP(instruction Pointer)来确定要执行的下一条指令的内存地址。PC起始跟CS:IP是一回事儿。

引导扇区代码bootsect.s

计算机启动过程(x86)_第3张图片
计算机启动过程(x86)_第4张图片
段地址ds=7c0 es=9000
偏移地址si=di=0 二进制左移4位,十六进制左移1位
生成两个地址 原地址ds:si=7c00 目的地址 es:si=90000
rep movw rep 重复执行,直到cx = 0(movw 移动1 个字;) 移动256个字=512字节
jmpi 间接跳转

1.先读入setup,打出开机logo

计算机启动过程(x86)_第5张图片
告诉磁盘从哪里开始读
计算机启动过程(x86)_第6张图片

2.调用13号中断,读入system

计算机启动过程(x86)_第7张图片

把执行权交给setup

计算机启动过程(x86)_第8张图片

你可能感兴趣的:(操作系统理论)