计算机起机流程

计算机起机流程保护如下步骤:

Stage1:加电开机

按下电源的开关,电源马上开始向主板和其它的设别开始供电,但此时的电压还不是很稳定,主板上的控制芯片组会向CPU发出并保持一个reset(重置)信号,让CPU内部自动恢复到初始状态下,当芯片组检测到电源已经开始稳定的供电了(从不稳定到稳定的过程中只需要一瞬间即可),芯片组则开始撤去reset信号,CPU马上开始从FFFF0H出执行指令,这个地址是在系统的BIOS的地址范围内,其实放在这里的只是一条跳转指令,指向BIOS中真正的启动代码地方。

Stage2:BIOS启动,POST自检(Power-On-self-test)

BIOS启动后,第一件事情就是执行POST自检阶段,主要针对系统的一些关键设备是否存在或者是功能是否正常,如:内存、显卡等,如果在POST过程中系统设备存在致命的问题,BIOS将会发出声音来报告检测过程中出现的错误,声音的长短及次数对应着系统的错误类型。POST过程会非常快速,对用户几乎感觉不出来。

显卡初始化:在POST过程中,BIOS会去查找显卡的BIOS,并且去调用显卡BIOS的代码,由显卡BIOS去初始化显卡,这个时候显示器一般会显示一些初始化的信息,同时系统BIOS也会去查找其它设备的BIOS,分别调用她们的初始化代码来初始化设备。

BIOS报错声音对应链接:https://baike.baidu.com/item/BIOS%E6%8A%A5%E8%AD%A6%E5%A3%B0/4231622?fr=aladdin

总之:如果硬件出现问题,主板会发出不同的蜂鸣,启动中止,如果没有问题,则显示器会显示相关信息。

Stage3:启动顺序

硬件自检结束后,BIOS这个时候将控制权交给下一阶段的启动程序,但是这个时候BIOS需要知道“下一个阶段要启动的程序具体放在了哪一个设备上”也就是我们平时说的BIOS下的启动顺序,但排在第一位的是优先转交的设备,这个叫做启动顺序。

启动顺序,我们日常工作中可以开机进入BIOS的去调节启动设备的优先级。

Stage4:主引导记录

BIOS按照设定好的启动顺序,将控制权交给排在第一位的存储设备,即开始从第一位设备中读取设备的MBR,并且将程序放在0x7c000的内存地址位中。

MBR:存储设备中的第一个扇区,磁盘最前面的512Byte,称为“主引导扇区”(Master boot record,缩写为MBR)

这个时候计算机会去读取该设备的第一个扇区,也就是读取最前面的512个字节。如果这512个字节的最后两个字节是0x55和0xAA,表明这个设备可以用于启动;如果不是,表明设备不能用于启动,BIOS会继续去找下一个设备,并将控制权转交给”启动顺序”中的下一个设备。

主引导记录(MBR)的结构组成:

MBR很小,只有512字节,存放程序很小,其主要作用是:告诉计算机在哪一个位置去找操作系统。

主引导记录由三个部分组成:

1、1-446字节:调用操作系统的程序

2、447-520字节:分区表

3、511-512字节:主引导记录的签名(0x55和0xAA)

分区表:

硬盘分区有很多好处。考虑到每个区可以安装不同的操作系统,”主引导记录”因此必须知道将控制权转交给哪个区。

分区表的长度只有64个字节,里面又分成四项,每项16个字节。所以,一个硬盘最多只能分四个一级分区,又叫做”主分区”。

每个主分区的16个字节,由6个部分组成:

(1) 第1个字节:如果为0x80,就表示该主分区是激活分区,控制权要转交给这个分区。四个主分区里面只能有一个是激活的。

(2) 第2-4个字节:主分区第一个扇区的物理位置(柱面、磁头、扇区号等等)。

(3) 第5个字节:主分区类型。

(4) 第6-8个字节:主分区最后一个扇区的物理位置。

(5) 第9-12字节:该主分区第一个扇区的逻辑地址。

(6) 第13-16字节:主分区的扇区总数。

注:最后的四个字节(”主分区的扇区总数”),决定了这个主分区的长度。也就是说,一个主分区的扇区总数最多不超过2的32次方。

Stage5:硬盘启动

这时,计算机要将控制权转交给硬盘的某个分区,但是分区又会出现几种情况:

1、卷引导记录

四个分区中,只有一个是激活的,计算机开始读取激活的第一个扇区,叫“卷引导记录"(Volume boot record,缩写为VBR)

卷引导记录主要作用:告诉计算机,操作系统在这个分区,可以开始加载操作系统

2、扩展分区和逻辑分区

扩展分区:分区表只有四项,因此规定有且仅有一个区可以被定义成”扩展分区”(Extended partition)。可以在扩展分区中继续分区

逻辑分区:指在扩展区里面又分成多个区。这种分区里面的分区,就叫做”逻辑分区”(logical partition)

计算机先读取扩展分区的第一个扇区,叫做”扩展引导记录”(Extended boot record,缩写为EBR)。它里面也包含一张64字节的分区表,但是最多只有两项(也就是两个逻辑分区)。

计算机接着读取第二个逻辑分区的第一个扇区,再从里面的分区表中找到第三个逻辑分区的位置,以此类推,直到某个逻辑分区的分区表只包含它自身为止(即只有一个分区项)。因此,扩展分区可以包含无数个逻辑分区。

3、启动管理器

在这种情况下,计算机读取”主引导记录”前面446字节的机器码之后,不再把控制权转交给某一个分区,而是运行事先安装的”启动管理器”(boot loader),由用户选择启动哪一个操作系统。

Boot loader:是在操作系统内核运行之前运行。可以初始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用操作系统内核准备好正确的环境

 

Stage6:操作系统启动

控制权转交给操作系统后,操作系统的内核被载入内存。

以Linux系统为例,先载入/boot目录下面的kernel。内核加载成功后,第一个运行的程序是/sbin/init。它根据配置文件(Debian系统是/etc/initab)产生init进程。这是Linux启动后的第一个进程,pid进程编号为1,其他进程都是它的后代。

然后,init线程加载系统的各个模块,比如窗口程序和网络程序,直至执行/bin/login程序,跳出登录界面,等待用户输入用户名和密码。

猜你喜欢

转载自blog.csdn.net/vito_7474110/article/details/120002874