最近在看哈工大李志军老师的《操作系统》课程视频,看完有种醍醐灌顶的感觉,接下来几篇文章,是来自老师视频的内容和最近所看的基本关于操作系统书的总结,里面有部分内容是参考网络上的博客。如果有什么理解错误的地方,当你看到我的博客时,希望能够指出。
我们操作系统在启动的时候,我们的计算机到底什么?让我们从冯诺依曼体系说起!其实说白了,整个计算机运行过程就是在取指令和执行指令,如下图所示,其中PC(程序计数器)指向一条指令,计算机将其从存储器取出,然后放到运算器中执行,也就是如图所示,最终得到ax的值是0。
开机一瞬间软件上做了什么?
在我们开机的那一瞬间,系统会基本完成上电动作,同时,此时CPU会将段寄存器CS设置为0XFFFF,IP寄存器设置为0X0000,由于这个时候是实模式,那么此时CS:IP=0XFFF0,也就是我们BIOS ROM的起始地址。对于ROM来说,此处存放的程序是不会因为断电而丢失的。通过BIOS这段程序,主要做两个事儿,一是初始化部分硬件;而是将0磁道0扇区的内容读入到0X7C00处,我们知道0磁道0扇区存放的就是我们计算机的引导程序了,接下来就会将CS设置为0X07C0,IP设置为0X0000,也就是让CS:IP指向引导程序。下面,就要进入到我们的Boot阶段了。
引导扇区代码bootsect.s
接下来我们利用代码来说明boot做了啥。其中省略了