基本常识:我们的cpu执行的所有程序都得先将该程序加载到内存(RAM)才能执行。同理,计算机os也是一样只有先从软盘中加载到RAM中才能执行。那么我们要想想,既然只有加载到内存中才能执行程序,os都没启动,那么又是什么程序将blos程序加载到内存,让cpu去执行呢?答案是硬件。
开始说说主题,不要扯远了
开机加电到执行main函数之前的过程主要分为三步
第一步:启动blos,准备实模式下的中端向量表和中断服务程序程序
开机加电那一刻,首先运行blos程序。那么blos程序是怎样运行的呢?大家都知道,blos程序是固化在主板上的程序,那么cpu怎样一开机就运行blos程序,软件行不通的话,只有依靠硬件了。intel80X86 运行在16或者32位的实模式下,强行将cs的段地址(oxFFFF0)指向位于主板上的blos程序。也就是blos程序的进程永远是最先的执行pid=1.blos程序的入口地址恰好是0xFFFF0
第二步:blos在内存中加载中断向量表和中断服务程序程序
第三部:加载操作系统内核程序并未保护模式做准备