计算机启动过程个人小记

电脑的开机过程,从打开电源到进入操作系统所经历的过程。

        1、当按下电源的那一刻首先进入的是主板的BIOS系统,这个系统存放在主板的一个ROM里面,属于出厂的时候跟随主板烧进去的,这里又该问了,ROM和RAM的区别,前者断电数据依旧还在,而后者断电之后数据就没了。另外还有一些别的区别,不过这里讲的是ROM,现在的ROM又分了好几种,很多的主板都支持BIOS升级,而升级必然要重新写入到ROM里面,所以现在的ROM很多支持重复写入,以往的都是一次性写入,就像光盘一样,有的可以重复刻录,有的只能刻录一次就不能用了。回到正题,当进入BIOS之后又分为三个阶段:

        (1)进入BIOS之后先要做的就是自诊断程序,先对硬件配置识别然后自检一遍,主要是看缺不缺什么硬件配置或者那些硬件找不到或者有问题的,一般都会蜂鸣声警报,具体的什么问题根据蜂鸣声判断。然后初始化显卡,这个时候一般电脑上就会显示显卡厂商的logo啊或者别的一些信息,如何初始化的呢,其实显卡也有自己的BIOS叫做GUIB,一看就知道这起名字很专业。

        (2)做完自诊断之后,系统硬件都没问题,那个过程是很快的,一闪而过。我相信很多人都有过装系统的经历,也就是进入系统boot里面修改启动顺序,而大家有没有想过这个boot是什么呢,是的它就是BIOS的设置程序,但是这个设置程序并不存放在ROM里面,因为这个设置程序是可以修改设置的,大家有没有这种经历,就是主板电源没电的时候以前主板上所有的设置信息都没了恢复出厂设置,这个设置程序其实保存在RAM中的由主板电源供电,它还被称作cmos设置程序,在BIOS芯片周围的一块芯片,主要用来存放设置信息,进入过程也就在电脑启动之后显示器第一次出现图标时按热键进入。

        (3)当设置程序也加载完成之后就会去找系统,这个怎么找呢,这就是第三个过程,系统自动装载程序,就是读取磁盘相对0道0扇区的程序,把它加载到内存中运行,同时呢把一些主要的驱动和服务也加载进去。毕竟需要和硬件打交道。至此BIOS干的活就完了,它把控制权移交出去了。

        2、你的电脑上可能不止一块硬盘,可能有磁盘,固态硬盘,移动硬盘,电脑怎么知道你系统在哪里的,这就用到你之前设置的boot的启动顺序了,电脑会根据你设置的启动顺序挨个找,而这也被成为引导顺序。BIOS干完活之后其实已经把这个工作给做完了,找到第一个硬盘读取它的MBR主引导记录,并放在内存中的指定位置中(0x7c000),然而这个MBR总共有512个字节,分三部分组成:

(1) 第1-446字节:调用操作系统的机器码。

(2) 第447-510字节:分区表(Partition table)。
(3) 第511-512字节:主引导记录签名(0x55和0xAA)。

这里主要说的是分区表和主引导记录签名:

    (4)分区表有64个字节,所以规定一块硬盘最多有四个主分区,每个主分区表由16个字节,而有时候我们的自己电脑上的硬盘又不止四个,所以这里又引入了扩展分区,也就是四个主分区里面最多有一个扩展分区,而每个分区都有自己的引导记录,在扩展分区中的引导记录中最多能有两个逻辑分区,第一个逻辑分区是代表自己,第二个则可以记录下一级的逻辑分区,就这样一层一层拓展直到这个逻辑分区表中只记录自己一个为止,就这样可以延伸无数多个分区。而正是有了主分区的存在,才能够支持一个电脑装两个系统,但是这两个系统必须装在一个硬盘里面。当找到哪个主分区是激活状态的就会把控制权给它。

    (5)主引导记录签名则是为了检测这个硬盘是否可以启动,如果检测不到0x55和0xAA就会根据BIOS设置的启动顺序进入下一个。

3、当找到哪个分区表是激活的之后,并且把控制权移交给它,这时候计算机根据分区表读取激活分区的第一个扇区,叫做”卷引导记录”VBR。这个作用就是告诉电脑,操作系统在这个分区的哪个位置,然后就会去加载操作系统,把控制权移交给操作系统。当操作系统拿到控制权之后,首先加载的就是内核模块,通过内核模块的加载,相继会把各个模块加载进去,然后就会进入到登录页面,而这个内核模块的进程是主进程,别的都是在它的线程加载出来的。具体加载之后怎么干活的,请继续关注后期更新。

后记:启动操作系统的过程还有两种,一种是从扩展分区的启动,另一种是启动器启动,一般linux系统较多使用,window一般使用的都是主分区启动的。

猜你喜欢

转载自blog.csdn.net/qq_769932247/article/details/79707154