计算机启动过程,从按下电源按钮到登录界面的详细步骤
1、背景
自接触计算机以来,一直困扰着我一个问题。当我们按下电脑的开机键后,具体发生了哪些过程呢?计算机启动的具体步骤是什么?
计算机启动过程通常分为五个步骤:电源自检、BIOS自检、引导设备选择、引导程序加载和操作系统加载。
如果你感兴趣,希望这篇文章能为你提供帮助,如果你认为这篇文章有价值,请点个赞支持一下。
2、电源自检
电源自检的简称是Power-On Self-Test,通常简称为POST。
电源自检是计算机启动过程的第一个阶段,它主要是检查计算机的电源系统是否正常工作。在这个阶段,计算机会执行以下自检操作:
-
检查电源是否连接正常:计算机会检查电源插头是否插紧,电源线是否连接牢固。如果电源插头没有插紧或者电源线没有连接牢固,计算机将无法正常工作。
-
检查电源开关是否正常:计算机会检查电源开关是否处于打开状态。如果电源开关处于关闭状态,计算机将无法启动。
-
检查电源输出是否稳定:计算机会检查电源输出是否稳定。电源输出不稳定会影响计算机的正常工作,甚至会损坏计算机的硬件设备。
如果电源自检通过,计算机将进入下一个阶段,即BIOS自检。如果电源自检未通过,计算机将无法继续启动,通常会发出声音警告或者显示错误信息。在这种情况下,用户需要检查电源连接是否正确,并修复电源故障,以确保计算机能够正常工作。
3、BIOS 自检
BIOS自检(Basic Input/Output System Self-Test)是计算机启动过程中的第二个步骤,它的主要作用是检查计算机硬件是否正常。BIOS是计算机上的基本输入输出系统,负责管理和控制计算机硬件设备。
BIOS自检过程包括以下步骤:
-
初始化硬件:在BIOS自检开始时,BIOS会对计算机的硬件设备进行初始化,包括处理器、内存、硬盘、显卡、声卡等。BIOS通过向硬件设备发送初始化信号,确保它们能够正常工作。
-
检查内存:BIOS会对计算机的内存进行检查,以确保内存正常工作。在这个阶段,BIOS会读取内存中存储的数据,并进行校验。如果内存出现故障,BIOS会在屏幕上显示错误信息,通常是一组数字代码。
-
检查硬盘和其他存储设备:BIOS会检查计算机的硬盘和其他存储设备,以确定它们是否可用。在这个阶段,BIOS会读取硬盘的引导扇区,并将控制权交给引导扇区中的引导程序。
-
检查其他设备:BIOS还会检查计算机的其他设备,包括键盘、鼠标、显示器、声卡等。BIOS通过向这些设备发送初始化信号,确保它们能够正常工作。
-
显示系统信息:BIOS会在屏幕上显示系统信息,包括计算机型号、处理器型号、内存大小、硬盘容量等。此外,BIOS还会显示操作系统是否存在,以及如何引导操作系统。
-
进入引导程序:当BIOS自检完成后,BIOS会将控制权交给引导程序,以便引导操作系统。引导程序位于硬盘的引导扇区中,它的作用是加载操作系统的核心文件,并将控制权交给操作系统。
总之,BIOS自检是计算机启动过程中非常重要的一步,它检查和初始化计算机的硬件设备,确保它们能够正常工作。如果BIOS自检未通过,计算机将无法启动,并显示错误信息。在这种情况下,用户需要检查计算机的硬件设备是否正常,并进行修复。
4、引导设备选择
引导设备选择是计算机启动过程中的第三个步骤,它的主要作用是确定计算机从哪个设备启动。在这个阶段,计算机会显示一个引导菜单,用户可以选择从哪个设备启动计算机,通常是硬盘或可移动设备,如光盘或USB驱动器。
引导设备选择过程包括以下步骤:
-
检测可用设备:在计算机启动过程中,BIOS会扫描所有可用的设备,包括硬盘、光驱、USB驱动器等。当BIOS扫描完毕后,它会将可用设备列在引导菜单中。
-
显示引导菜单:当BIOS扫描可用设备后,计算机会显示一个引导菜单,列出所有可用设备的名称和设备类型。这个菜单通常会在计算机启动时显示在屏幕上,用户可以使用键盘上的箭头键来选择设备。
-
选择启动设备:用户可以使用键盘上的箭头键选择启动设备,然后按下Enter键来确认选择。计算机将从所选设备启动,并加载操作系统。
在选择启动设备时,用户需要注意以下几点:
-
选择正确的设备:用户应该选择正确的设备来启动计算机,通常是硬盘或可移动设备。如果用户选择了错误的设备,计算机将无法启动,并显示错误信息。
-
更改启动顺序:用户可以通过BIOS设置更改启动顺序,以便计算机在启动时自动从特定设备启动。在更改启动顺序之前,用户应该先了解计算机的硬件配置和操作系统要求。
-
引导程序选择:如果计算机中安装了多个操作系统,用户需要选择正确的引导程序来启动操作系统。在这种情况下,用户应该了解每个操作系统的引导程序,并选择正确的引导程序来启动操作系统。
总之,引导设备选择是计算机启动过程中非常重要的一步,它决定了计算机将从哪个设备启动,并加载哪个操作系统。用户应该了解每个设备的作用和操作系统的要求,以便正确地选择引导设备。
5、引导程序加载
引导程序是计算机启动过程中非常重要的一环,其作用是在BIOS自检和引导设备选择之后,将操作系统的核心代码加载到计算机的内存中并执行。这个过程需要依靠引导扇区或引导记录来完成。
引导扇区是指硬盘的第一个扇区,它包含了用于启动计算机的引导程序代码。当BIOS自检结束后,引导程序会从硬盘的第一个扇区中读取引导程序代码,并将其加载到计算机的内存中。这个过程需要依靠硬盘控制器来完成。
引导记录则是指光盘、U盘等可移动存储设备中的第一个扇区,它也包含了用于启动计算机的引导程序代码。当计算机的BIOS自检结束后,如果发现有可移动存储设备连接到计算机上,它会检查这些设备的第一个扇区是否包含引导记录。如果有,它会从这个扇区中读取引导程序代码并将其加载到内存中。
在加载引导程序的过程中,BIOS会将计算机的控制权交给引导程序,引导程序则会将控制权转交给操作系统的内核,操作系统的内核随后就可以开始启动整个操作系统。在这个过程中,还可能会进行一些硬件初始化、设备驱动程序加载等操作。
总的来说,引导程序的作用是将操作系统的核心代码加载到内存中,这个过程是启动整个计算机系统的关键。
6、操作系统加载
操作系统的加载是计算机启动过程中的最后一步,它的主要任务是将操作系统的所有模块加载到内存中,并开始执行操作系统的初始化过程。操作系统的加载主要分为两个阶段:内核加载和初始化。
在内核加载阶段,引导程序将操作系统的内核代码从硬盘中读取到内存中,这个过程中会涉及到文件系统的相关操作,例如寻找操作系统内核文件、读取文件等。一旦内核被成功加载到内存中,引导程序就将控制权交给内核,并开始执行内核代码。此时,操作系统的内核已经可以开始执行初始化操作。
在操作系统的初始化过程中,内核会对计算机系统的硬件进行初始化,并加载操作系统的各个模块,例如设备驱动程序、系统服务等。这个过程中还会进行一些操作系统相关的设置,例如读取配置文件、设置环境变量等。当初始化完成后,操作系统就正式进入了运行状态,用户就可以开始使用计算机系统了。
总的来说,操作系统的加载是计算机启动过程的最后一步,其主要任务是将操作系统的所有模块加载到内存中并开始执行初始化过程。在这个过程中,内核会对计算机的硬件进行初始化并加载各种模块,使得操作系统能够正常运行。
7、文章小结
总的来说,计算机启动过程是一个复杂而精细的过程,它需要多个硬件设备和软件系统的配合和协同工作,才能够完成整个启动过程。每个阶段都有着特定的目的和功能。
此外,计算机的启动顺序也可以通过BIOS设置进行配置,用户可以设置不同的启动顺序,从而实现在不同的环境中进行启动。例如,在某些情况下,用户可以选择从光驱或USB设备中启动操作系统,以便进行系统恢复或安装等操作。
总之,了解计算机的启动过程及启动顺序对于用户正确使用计算机、维护计算机都具有重要的意义。通过理解计算机启动过程,用户可以更好地排除计算机故障,维护计算机系统的健康运行,提高计算机的工作效率。
实践是检验真理的唯一标准,一键送三连关注不迷路。
相关文章:
计算机启动过程,从按下电源按钮到登录界面的详细步骤
1、背景 自接触计算机以来,一直困扰着我一个问题。当我们按下电脑的开机键后,具体发生了哪些过程呢?计算机启动的具体步骤是什么? 计算机启动过程通常分为五个步骤:电源自检、BIOS自检、引导设备选择、引导程序加载和…...

LeetCode 刷题之 BFS 广度优先搜索【Python实现】
1. BFS 算法框架 BFS:用来搜索 最短路径 比较合适,如:求二叉树最小深度、最少步数、最少交换次数,一般与 队列 搭配使用,空间复杂度比 DFS 大很多DFS:适合搜索全部的解,如:寻找最短…...

Hadoop01【尚硅谷】
大数据学习笔记 大数据概念 大数据:指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。 主要解决,海量数据的存储…...

Echarts 配置横轴竖轴指示线,更换颜色、线型和大小
第018个点击查看专栏目录本示例是描述如何在Echarts上配置横轴竖轴指示线,更换颜色、线型和大小。方法很简单,参考示例源代码。 文章目录示例效果示例源代码(共85行)相关资料参考专栏介绍示例效果 示例源代码(共85行&a…...
OpenAI 官方API Java版SDK,两行代码即可调用。包含GhatGPT问答接口。
声明:这是一个非官方的社区维护的库。 已经支持OpenAI官方的全部api,有bug欢迎朋友们指出,互相学习。 注意:由于这个接口: https://platform.openai.com/docs/api-reference/files/retrieve-content 免费用户无法使…...

SpringBoot 日志文件
(一)日志文件有什么用?除了发现和定位问题之外,我们还可以通过日志实现以下功能:记录用户登录日志,以便分析用户是正常登录还是恶意破解用户。记录系统的操作日志,以便数据恢复和定位操作 。记录程序的执行时间&#x…...
SQL71 检索供应商名称
描述Vendors表有字段供应商名称(vend_name)、供应商国家(vend_country)、供应商州(vend_state)vend_namevend_countryvend_stateappleUSACAvivoCNAshenzhenhuaweiCNAxian【问题】编写 SQL 语句,…...

02:入门篇 - 漫谈 CTK
作者: 一去、二三里 个人微信号: iwaleon 微信公众号: 高效程序员 十万个为什么 五千个在哪里?七千个怎么办?十万个为什么?。。。生活中,有很多奥秘在等着我们去思考、揭示! 同样地,在使用 CTK 时,很多小伙伴一定也存在诸多疑问: 为什么 CTK Plugin Framework 要借…...
SpringBoot常用注解
SpringBootApplication注解包含如下三个SpringBootConfigurationEnableAutoConfigurationComponentScanSpringBootConfiguration等同于Configuration,是属于spring的一个配置类这里的 Configuration 对我们来说并不陌生,它就是 JavaConfig 形式的 Spring…...

RBAC权限模型
什么是RBAC权限模型? RBAC是基于角色的访问控制,在RBAC中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。 1.0级 用户、角色、权限 2.0 权限分级 公司>部门>小组 2.1 权限继承 ps: 这个人是一个小组长…...
【郭东白架构课 模块一:生存法则】07|法则三:架构师如何找到自己的商业模式?
你好,我是郭东白,今天我们来聊聊架构活动中对商业价值的考量。 今天我们要讲的是架构师的第三个生存法则:作为一个架构师,必须要在有限的资源下最大化架构活动所带来的商业价值。对于任何一个架构活动而言,架构师的可…...

STM32 - 看门狗
独立看门狗 IWDG专业时钟LSI 低功耗仍可以运行对定时的控制比较松喂狗这些时间是按照40kHz时钟给出。实际上,MCU内部的RC频率会在30kHz到60kHz之间变化。此外,即使RC振荡器的频率是精确的,确切的时序仍然依赖于APB接口时钟与RC振荡器时钟之间…...

Redis集群搭建
一、哨兵模式 在 redis3.0之前,redis使用的哨兵架构,它借助 sentinel 工具来监控 master 节点的状态;如果 master 节点异常,则会做主从切换,将一台 slave 作为 master。 哨兵模式的缺点: (1&…...

车载基础软件——AUTOSAR AP典型应用案例
我是穿拖鞋的汉子,魔都中一位坚持长期主义的工程师! 最近不知道为何特别喜欢苏轼的一首词: 缺月挂疏桐,漏断人初静。谁见幽人独往来,缥缈孤鸿影。 惊起却回头,有恨无人省。拣尽寒枝不肯栖,寂寞…...

消息中间件----内存数据库 Redis7(第3章 Redis 命令)
Redis 根据命令所操作对象的不同,可以分为三大类:对 Redis 进行基础性操作的命令,对 Key 的操作命令,对 Value 的操作命令。3.1 Redis 基本命令首先通过 redis-cli 命令进入到 Redis 命令行客户端,然后再运行下面的命令…...
react-03-react-router-dom-路由
react-router-dom:react路由 印记中文:react-router-dom 1、路由原理 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>前端路由的基石_history</title> </head> <body><a hre…...

2自由度悬架LQR控制
目录 1 悬架系统 1.1 悬架结构示意图 1.2 悬架数学模型 1.3 路面激励 2.仿真分析 2.1simulink模型 2.2 仿真结果 2.3 结论 3. 总结 1 悬架系统 1.1 悬架结构示意图 1.2 悬架数学模型 其中:x1为悬架动扰度,x2为车身加速度,x3为轮胎…...

C语言返回类型为指针的一些经典题目(下)
续上一篇文章,上一篇文章题目都很经典,这一篇也不例外。一.返回类型为指针经典题目(下)1.代码(第六题)char *GetMemory3(int num) {char *p (char *)malloc(sizeof(char) * num);return p; } void Test3(void) {char *str NULL;str GetMemory3(100…...

OpenAI 官方api 阅读笔记
网站 API Key concepts Prompts and completions You input some text as a prompt, and the model will generate a text completion that attempts to match whatever context or pattern you gave it. Token 模型通过将文本分解成token来理解和处理, 处理token数量取…...

微服务项目【分布式锁】
创建Redisson模块 第1步:基于Spring Initialzr方式创建zmall-redisson模块 第2步:在zmall-redisson模块中添加相关依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</a…...
KubeSphere 容器平台高可用:环境搭建与可视化操作指南
Linux_k8s篇 欢迎来到Linux的世界,看笔记好好学多敲多打,每个人都是大神! 题目:KubeSphere 容器平台高可用:环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...

XCTF-web-easyupload
试了试php,php7,pht,phtml等,都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接,得到flag...
云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?
大家好,欢迎来到《云原生核心技术》系列的第七篇! 在上一篇,我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在,我们就像一个拥有了一块崭新数字土地的农场主,是时…...

Python:操作 Excel 折叠
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...

使用分级同态加密防御梯度泄漏
抽象 联邦学习 (FL) 支持跨分布式客户端进行协作模型训练,而无需共享原始数据,这使其成为在互联和自动驾驶汽车 (CAV) 等领域保护隐私的机器学习的一种很有前途的方法。然而,最近的研究表明&…...

LeetCode - 394. 字符串解码
题目 394. 字符串解码 - 力扣(LeetCode) 思路 使用两个栈:一个存储重复次数,一个存储字符串 遍历输入字符串: 数字处理:遇到数字时,累积计算重复次数左括号处理:保存当前状态&a…...

CocosCreator 之 JavaScript/TypeScript和Java的相互交互
引擎版本: 3.8.1 语言: JavaScript/TypeScript、C、Java 环境:Window 参考:Java原生反射机制 您好,我是鹤九日! 回顾 在上篇文章中:CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...

视频行为标注工具BehaviLabel(源码+使用介绍+Windows.Exe版本)
前言: 最近在做行为检测相关的模型,用的是时空图卷积网络(STGCN),但原有kinetic-400数据集数据质量较低,需要进行细粒度的标注,同时粗略搜了下已有开源工具基本都集中于图像分割这块,…...
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问(基础概念问题) 1. 请解释Spring框架的核心容器是什么?它在Spring中起到什么作用? Spring框架的核心容器是IoC容器&#…...
Java + Spring Boot + Mybatis 实现批量插入
在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法:使用 MyBatis 的 <foreach> 标签和批处理模式(ExecutorType.BATCH)。 方法一:使用 XML 的 <foreach> 标签ÿ…...