计算机开机启动流程详解

一、BIOS

1、BIOS是什么

BIOS:基本输入输出系统(Basic Input Output System),它是一组固化到计算机内主板上一个ROM(Read-Only Memory)只读存储器,不需要供电就可保持数据不丢失芯片上的程序,BIOS保存着计算机最重要的基本输入输出的程序、系统设置信息、开机上电自检程序和系统启动自检程序。

 

2、BIOS的功能及作用

a、POST上电自检及初始化:执行不同初始化和计算机硬件检测的函数或例程,开机后BIOS最先被启动,然后它会对电脑的硬件设备(CPU、640K基本内存(640K BASE MEMORY)、1MB以上扩展内存(EXTEND MEMORY)、ROM(READ-ONLY MEMORY,只读存储器)、主板、CMOS存储器、串口、并口、显卡、软盘子系统、硬盘子系统、键盘)进行完全彻底的检验和测试

b、BIOS 系统操作系统启动程序:完成 POST 自检后, ROM BIOS 将按照系统 CMOS 设置中的启动顺序搜寻软硬盘驱动器及 CDROM 、网络服务器等有效的启动驱动器 ,读入操作系统引导记录,然后将系统控制权交给引导记录,由引导记录完成系统的启动。 

c、BIOS 中断服务程序:开机时,BIOS会告诉CPU各硬件设备的中断号,当用户发出使用某个设备的指令后,CPU就根据中断号使用相应的硬件完成工作,再根据中断号跳回原来的工作。

d、程序服务:BIOS直接与计算机的I/O(Input/Output,即输入/输出)设备打交道,通过特定的数据端口发出命令,传送或接收各种外部设备的数据,实现软件程序对硬件的直接操作

BIOS 系统设置程序: 机器部件的配置情况是存放在一块可读写的 CMOS RAM 芯片中的,它保存着系统 CPU 、软硬盘驱动器、显示器、键盘等部件的信息。 关机后,系统通过一块后备电池向 CMOS 供电以保持其中的信息。如果 CMOS 中关于微机的配置信息不正确,会导致系统性能降低、零部件不能识别,并由此引发一系统的软硬件故障

二、CMOS

1、CMOS是什么

CMOS:(Complementary Metal-Oxide-Semiconductor)主板上的一块可读写的 RAM 芯片, CMOS用来保存计算机基本启动信息(如日期、时间、启动设置等)和当前系统的硬件配置和用户某些参数的设定的芯片,CMOS的特性是可读写的,因此在电脑的主板上是用来保存BIOS的设置电脑硬件参数的数据,这个芯片仅仅用来存储数据,CMOS是靠主板上的纽扣电池供电的,就算主机断电也能保存数据。CMOS芯片一般被集成在南北桥芯片组里面。

 

2、CMOS芯片中存储了哪些数据

CPU的类型、内存的容量与类型、硬盘的类型和基本的参数

 

3、BIOS和CMOS的区别、联系

联系:BIOS中的系统设置程序是完成CMOS参数设置的手段,即通过BIOS设置程序对CMOS参数进行设置。CMOS既是BIOS设置系统参数的存放场所,又是BIOS设置系统参数的结果。

区别: bios保存系统的重要信息和设置系统参数的设置程序(BIOSSetup程序),而cmos是主板上的一块可读写的RAM芯片,里面装的是关于系统配置的具体参数,其内容可通过设置程序进行读写。

 

三、EC

EC(Embed Controller,嵌入式控制权)又称开机控制芯片

1、EC是什么?

EC是一个16位单片机,它内部本身也有一定容量的Flash来存储EC的代码。由于早期的EC主要管控键盘,所以也称KBC(KeyBoard Controller,键盘控制器)。EC在系统中的地位绝不次于南北桥,在系统开启的过程中,EC控制着绝大多数重要信号的时序。

在笔记本中,EC是一直开着的,无论你是在开机或者是关机状态,除非你把电池和Adapter完全卸除。 在关机状态下,EC一直保持运行,并在等待用户的开机信息。而在开机后,EC更作为键盘控制器,充电指示灯以及风扇等设备的控制,它甚至控制着系统的待机、休眠等状态。

2、EC的作用

在系统关机的时候,只有RTC(实时时钟)部分和EC部分在运行。RTC部分维持着计算机的时钟和CMOS设置信息,而EC则在等待用户按开机键。在检测到用户按开机键后,EC会通知整个系统把电源打开,CPU被RESET后,会去读BIOS内一个特定地址内的指令(其实是一个跳转指令,这个地址是由CPU硬件设定的)。在CPU读到所发出的地址内的指令后,执行它被RESET后的第一个指令。在这个系统中,EC起到了桥接BIOS和南桥(或者说整个系统)的作用。 EC是一个单独的处理器,在开机前和开机过程中对整个系统起着全局的管理。而BIOS是在等EC把内部的物理环境初始化后才开始运行的。如果说BIOS 是底层系统的话,那EC 似乎更加底层。 在南桥上还有一个功能块就是电源管理单元(PM,Power Management)。 一般来说,他和EC来共同配合完成。这里包括从开机(power button)键按下后,启动,待机,休眠,关机的全部功能。还包括对背光亮度,声音等的控制等等。 至于现在Intel的Speed Step技术,也有部分功能是透过南桥来实现的(南桥发送SLP、STPCLK(sleep,Stop Clock)来实现睡眠、深睡眠等)。 (Embedded Controller,嵌入式控制器)在一组特定系统中,新增到固定位置,完成一定任务的控制装置就称为嵌入式控制器。

参考网址:https://blog.csdn.net/maomaovv/article/details/1549819

 

四、计算机开机启动流程

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程序,跳出登录界面,等待用户输入用户名和密码。

 

转载于:https://www.cnblogs.com/shao-ye/p/11202680.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/482826.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2.2_ 4_ FCFS、SJF、 HRRN调度算法

文章目录知识总览先来先服务短作业优先高响应比优先知识回顾和重要考点知识总览 先来先服务 短作业优先 高响应比优先 知识回顾和重要考点

当AI学会高数:解题、出题、评分样样都行

来源:AI科技评论“高等数学里程碑式的研究”,114页论文让AI文理双修,也许不久后机器出的高数试卷就会走进高校课堂,这下可以说“高数题不是人出的了”。人工智能虽然给我们带来了诸多便利,但也不免受到了各种质疑。在互…

2.3_ 1_ 进程同步、进程互斥

2.3_ 1_ 进程同步、进程互斥 文章目录2.3_ 1_ 进程同步、进程互斥1.知识概览2.什么是进程同步?2.什么是进程互斥3.知识回顾1.知识概览 2.什么是进程同步? 2.什么是进程互斥 3.知识回顾

[Vuex系列] - Mutation的具体用法

更改 Vuex 的 store 中的状态的唯一方法是提交 mutation。Vuex 中的 mutation 非常类似于事件:每个 mutation 都有一个字符串的 事件类型 (type) 和 一个 回调函数 (handler)。 接下来我们还是用上一篇文章在state中存放的count为例,来看利用Mutation修改…

IEEE Fellow李世鹏 :人工智能与机器人前沿研究之思考

来源:AI科技评论作者:维克多编辑:青暮2021年12月9日,由粤港澳大湾区人工智能与机器人联合会、雷峰网合办的第六届全球人工智能与机器人大会(GAIR 2021)在深圳正式启幕,140余位产学领袖、30位Fel…

2.3.2. 进程互斥的软件实现方法

2.3.2. 进程互斥的软件实现方法 文章目录2.3.2. 进程互斥的软件实现方法1.知识总览2.单标志法3.双标志先检查法4.双标志后检查法5. perterson算法6. 知识回顾1.知识总览 2.单标志法 3.双标志先检查法 4.双标志后检查法 5. perterson算法 6. 知识回顾

PHP中 .= 的意思

. 在php中是字符串连接的意思 例如: $a a; $a . bc; $a abc; 类似 - * / 也就是说$a a.bc 当变量$a的值为 a 时 执行$a . bc 结果为$a abc 当变量$a的值为 x 时 执行$a . bc 结果为$a xbc转载于:https://www.cnblogs.com/zhangcheng001/p/11203202.html

哲学的终极解释:48张图了解48种主义

来源:今日头条编辑:nhyilin哲学家建立了事物的基本概念,我们在讨论中遵循它,有时误用它,有时颠覆它。以下48个基本概念常常出现在公共讨论里,伦敦设计师Genis Carreras用最简单的线条、形状和色块对它们进行…

2.1.5编码与调制(1)

文章目录2.1.5编码与调制(1)1.基带信号与宽带信号2. 编码与调制2.1.5编码与调制(1) 1.基带信号与宽带信号 2. 编码与调制

改名Meta俩月,脸书放弃虚拟现实操作系统:负责人跳槽谷歌

来源:机器学习研究组订阅元宇宙,到头来还得是安卓系统?这些年来,facebook 在增强现实和虚拟现实领域投入了大量资金。扎克伯格甚至已经把公司名称改成了 Meta,认为元宇宙将是公司未来的主营业务,不过理想很…

2.2物理层传输介质

2.2物理层传输介质 文章目录2.2物理层传输介质1. 传输介质和分类2.导向性传输介质--1.双绞线3.导向性传输介质--2.同轴电缆4.非导向性传输介质思维导图1. 传输介质和分类 2.导向性传输介质–1.双绞线 3.导向性传输介质–2.同轴电缆 4.非导向性传输介质 思维导图

C#拼装JSON数组简易方法

下面是我们想要拼接出来的JSON字符串,返回给前台 1 {"success":"true","msg":"","data":[{"macName":"正面预拼装机","state":1.0},{"macName":"正面拼板压力架&q…

IEEE年终AI大盘点:网友教会GPT-3骂人、DeepMind再造机器人

来源:新智元【导读】2021年即将过去,IEEE Spectrum盘点了今年的十大AI新闻。在过去的一年里,AI模型训练成本起飞、GPT-3从网友那儿学会了「阴阳怪气」,此外,研究人员还总结了AI绕不过去的七大弱点。2021 年&#xff0c…

2. 3物理层设备

2. 3物理层设备 文章目录2. 3物理层设备中继器2.集线器(多口中继器)中继器 2.集线器(多口中继器)

谁是深度学习框架一哥?2022 年,PyTorch 和 TensorFlow 再争霸

来源:机器学习研究组订阅用PyTorch还是TensorFlow,对于大部分深度学习从业者来说真是一个头疼的问题。最近Reddit上有个帖子从三个方面对比了两个框架,结果竟然是平手?你用PyTorch还是用TensorFlow?对于不同人群可能有…

【UOJ 48】最大矩形面积(修正版)

【题目描述】: 地面上从左到右并排紧挨着摆放多个矩形,已知这此矩形的底边宽度都为1,高度不完全相等。求在这些矩形包括的范围内能得到的面积最大的矩形,打印出该面积。所求矩形可以横跨多个矩形,但不能超出原有矩形所…

深度学习不可信?大脑建模先驱有话说

来源:ScienceAI编辑:萝卜皮在过去的 20 年里,深度学习通过一系列有用的商业应用主导了人工智能的研究和应用。但在耀眼的背后是一些根深蒂固的问题,威胁着技术的提升。例如,典型的深度学习程序无法在一项以上的任务上表…

python模块补充

collections模块 collections模块namedtupe方法。又称具名元组。 from collections import namedtuple point namedtuple(空间坐标, x y z) # x y z可以写成列表形式,元组等可迭代对象 res point(3, 4, 5) print(res) # 空间坐标(x3, y4, z5) print(poin…

《力学》课时二质点运动学(二)

视频链接 1.角位移/角速度/角加速度