计算机是如何启动的

news2024/11/15 4:22:54

一直好奇计算机启动的原理是怎么样的?最近刚好想搞一下操作系统,故此总结一下。

打开电源

电源
对于现代计算机来说,打开电源是开机的第一步,这一点无用质疑,离开了电,现代社会估计就会垮台。

计算机启动

加电自检

官方说法为加电自检,简单来说就是计算机在启动的时候,会去检查一下自己的硬件环境有木有准备好,比如:CPU、内存、磁盘、显卡等是否正常工作,如果发现硬件故障就会报警或者显示错误。就跟你开车去很远的地方,首先需要看一下要不要加油,车胎有木有气,如果没油就会加油,没气就会打气是一样。

启动固件 (Bootstrap Loader)

官方说法为启动 Bootstrap Loader,通常是启动 BIOS ( 基本输入/输出系统,),BIOS存储在主板上的固件芯片中的一组程序,它负责初始化硬件设备,配置系统资源,并准备计算机进入操作系统的加载过程

BIOS初始化

BIOS 开始初始化硬件设备,包括设置时钟、检测和配置内存、初始化显示适配器和其他外设等。BIOS 还会读取 CMOS(可擦除只读存储器)中的设置,如系统时间、启动顺序等。
重装系统的时候,不知道有没有注意到有人会去调试 BIOS 的启动顺序。BIOS初始化完就是这样的。
在这里插入图片描述计算机 BIOS(基本输入/输出系统)既包含硬件部分,也包含软件部分。

硬件方面,计算机的 BIOS 是存在于主板上的一片固件芯片,通常称为 BIOS 芯片或者系统固件。这个芯片包含了一些硬件电路,如时钟、存储器、接口电路等。这些硬件电路负责启动计算机、初始化硬件设备,并提供最基本的输入输出功能。

软件方面,计算机的 BIOS 包含了一套预先安装在 BIOS 芯片上的固件程序,这些程序用于控制计算机的启动过程、硬件初始化和基本的输入输出操作。这些固件程序通常以低级的机器语言或者汇编语言编写。

当计算机启动时,计算机的 BIOS 被加载到内存中,并运行其中的固件程序,负责进行启动自检(POST,Power-On Self-Test)、初始化硬件设备、检测和配置系统资源等操作。之后,BIOS 将控制权交给操作系统或其他引导程序,由它们继续处理计算机的运行。

因此,计算机的 BIOS 既包含硬件部分(BIOS 芯片和相关电路),也包含软件部分(预先安装在 BIOS 芯片上的固件程序)。它在计算机启动时扮演着重要的角色,确保计算机能够正常启动和运行。

启动设备选择

BIOS 根据 CMOS 中的设置确定启动设备的顺序。它将按照预设的启动顺序尝试读取启动设备,例如硬盘、光盘驱动器、USB 设备等。一旦找到可引导的设备,BIOS 将加载引导扇区中的引导程序。
特别是在重装系统的时候,启动设备顺序,往往会优先选择 USB 设备

引导程序(Bootloader)加载

引导程序是一个小型的程序,位于引导设备(如硬盘)的引导扇区。引导程序被加载到内存中,并负责加载操作系统的核心部分。
因为引导扇区,往往是磁盘的一个扇区,默认 512 字节,而操作系统往往好几十个G,所以需要引导程序来加载操作系统,而非引导扇区

操作系统引导加载程序执行

引导加载程序会读取操作系统引导加载程序(如GRUB或Windows引导管理器)的配置文件和设置。

启动管理器启动

操作系统引导加载程序会根据配置文件中的设置启动启动管理器。启动管理器会显示一个菜单,列出可用的操作系统选项供用户选择。

启动管理器(如GRUB或Windows引导管理器)通常是由操作系统安装程序或操作系统本身在安装过程中写入磁盘的。具体来说,当你安装操作系统时,安装程序会将启动管理器的文件和相关配置写入硬盘的特定位置。

用户选择操作系统

用户可以通过启动管理器的菜单界面选择要启动的操作系统。
这也是双系统的原理

操作系统加载

每个操作系统通常都有自己的引导程序,对应的引导程序会启动操作系统的加载过程。它会读取操作系统的核心文件(如 Windows 的 ntoskrnl.exe 或 Linux 的内核映像),将其加载到内存中,并将控制权转交给操作系统。操作系统开始初始化并准备接收用户的指令。
加载过程中,一般都会看到屏幕是黑的,但 window 会显示 圈圈一直在转。

操作系统初始化

操作系统继续启动过程,进行一系列初始化操作,如初始化设备驱动程序、建立系统数据结构、加载系统服务等。最终,操作系统会进入用户界面或登录屏幕,等待用户交互。

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

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

相关文章

ctfshow-web9(奇妙的ffifdyop绕过)

尝试万能密码登录,没有任何回显 尝试扫描目录,这里不知道为啥御剑什么都扫不到,使用dirsearch可以扫到robots.txt 查看robots协议 访问下载index.phps 查看index.phps 简单审计一下php代码: $password$_POST[password]; if(strl…

Linux——多线程1

目录 一.理解线程的概念 Linux线程概念 二.线程的优点 三.线程的缺点 四.线程用途 五. Linux进程VS线程 一.理解线程的概念 教材观点: 线程是一种执行分支,执行粒度比进程更细,调度成本更低。线程是进程内部的一个执行流。 内核观点: …

【Python查找算法】二分查找、线性查找、哈希查找

目录 1 二分查找算法 2 线性查找算法 3 哈希查找算法 1 二分查找算法 二分查找(Binary Search)是一种用于在有序数据集合中查找特定元素的高效算法。它的工作原理基于将数据集合分成两半,然后逐步缩小搜索范围,直到找到目标元素…

python的一些知识点

之前自学过python,学了一些基本语法,但忘得厉害。最近,在努力地写代码,在学代码,写代码中学习python,为此记录一些关于python的知识点。

四、综合——通信系统

文章目录 一、通信系统概述1.1 通信的基本概念1.2 通信系统的组成二、信道的定义和分类三、信源编码四、调制一、通信系统概述 1.1 通信的基本概念 通信是发送者(人或机器)和接收者之间通过某种媒体进行的信息传递。广义来讲。光通信也属于电通信,因为光也是一种电磁波。 …

2023.10.09

#include <iostream>using namespace std;//定义一个类&#xff08;人&#xff09; class Per { private:string name;//姓名int age;//年龄//体重和身高另存堆空间double* height;//身高double* weight;//体重 public://定义构造函数&#xff0c;并且初始化//运用初始化…

【致敬未来的攻城狮计划】第2期 作业汇总贴 + 获奖公布

一、写在前面 时间过得真快&#xff0c;距离 【致敬未来的攻城狮计划】第2期 的发起&#xff0c;已经过去一个多月了&#xff0c;而第2期的真正学习考核期也将在5/13的18点整正式结束。 关于第2期的活动计划&#xff0c;感兴趣的可以参见这里&#xff1a;【重磅推出】《致敬未…

springboot项目中添加大屏页面

在非前后端分离的项目中根据项目需求需要添加一个大屏页面 解决方案&#xff1a; 参考&#xff1a;纯静态引入.vue文件之http-vue-loader.js - 知乎 我是把httpVueLoader.js 下载到本地引入 引入http-vue-loader.js 在vue代码中 components: { // 注意component 下name的命…

【C++】:日期类实现

朋友们、伙计们&#xff0c;我们又见面了&#xff0c;本期来给大家解读一下有关Linux的基础知识点&#xff0c;如果看完之后对你有一定的启发&#xff0c;那么请留下你的三连&#xff0c;祝大家心想事成&#xff01; C 语 言 专 栏&#xff1a;C语言&#xff1a;从入门到精通 数…

Kafka和RabbitMQ的对比

Rabbitmq比kafka可靠&#xff0c;kafka更适合IO高吞吐的处理&#xff0c;比如ELK日志收集 Kafka和RabbitMq一样是通用意图消息代理&#xff0c;他们都是以分布式部署为目的。但是他们对消息语义模型的定义的假设是非常不同的。 a) 以下场景比较适合使用Kafka。如果有大量的事…

C#操作PPT动画窗格并插入音频文件的一些思路

目录 系统环境 基础配置 设计想法 关键代码 组件库引入 基础代码 核心代码 总结 系统环境 在 Windows Server 2019 操作系统上安装Office PowerPoint 2016或以上 安装 .netFramework4.7.1以上 开发工具 VS2019 语言 C# 基础配置 打开控制面板、管理工具、组件服务…

LabVIEW使用VI Package Manager(VIPM)下载和管理附加组件

LabVIEW使用VI Package Manager&#xff08;VIPM&#xff09;下载和管理附加组件 LabVIEW Tools Network和VI Package Manager&#xff08;VIPM&#xff09;使浏览&#xff0c;下载和管理LabVIEW附加组件变得容易。它具有软件包存储库&#xff0c;可以从桌面连接到软件包&…

基于差分进化优化的BP神经网络(分类应用) - 附代码

基于差分进化优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码 文章目录 基于差分进化优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码1.鸢尾花iris数据介绍2.数据集整理3.差分进化优化BP神经网络3.1 BP神经网络参数设置3.2 差分进化算法应用 4.测试结果…

基于原子搜索优化的BP神经网络(分类应用) - 附代码

基于原子搜索优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码 文章目录 基于原子搜索优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码1.鸢尾花iris数据介绍2.数据集整理3.原子搜索优化BP神经网络3.1 BP神经网络参数设置3.2 原子搜索算法应用 4.测试结果…

全面分析“找不到XINPUTI_3.dll无法继续执行代码”的5个解决方法总结

电脑已经成为我们生活&#xff0c;娱乐和工作中不可或缺的一部分&#xff0c;电子游戏是许多人的日常娱乐方式。然而&#xff0c;当我们沉浸在游戏的乐趣中时&#xff0c;有时会遇到一些问题&#xff0c;比如“找不到XINPUTI_3.dll”这样的错误提示。这种错误通常会导致游戏无法…

Android学习从入门到放弃(文末有福利)

移动开发早就不是最热门的程序员职业了&#xff0c;而且移动开发也并不是一个能够在短时间内轻松掌握的领域,需要我们有足够的耐心和毅力 作为一个在Android开发领域积累了不少经验的开发者&#xff0c;自己也看了不少书&#xff0c;也和不少前辈交流过&#xff0c;在这里分享一…

98 # jwt

什么是 jwt JSON WEB TOKEN (jwt) 是目前最流行的跨域身份验证解决方案。 解决问题&#xff1a;session 不支持分布式框架&#xff0c;无法支持横向扩展&#xff0c;只能通过数据库来保存会话数据实现共享&#xff0c;如果持久层失效就会出现认证失败。 优点&#xff1a;服务…

强化学习问题(二)--- ERROR: Failed building wheel for box2d-py

错误&#xff1a;Could not build wheels for box2d-py, which is required to install pyproject.toml-based projects pyproject.toml-based projects&#xff1a;意思是缺少依赖包&#xff0c;对于box2d就是缺少swig 注意&#xff1a;安装python对应的swig版本 解决1&…

2023 NewStarCTF --- wp

文章目录 前言Week1MiscCyberChefs Secret机密图片流量&#xff01;鲨鱼&#xff01;压缩包们空白格隐秘的眼睛 Web泄露的秘密Begin of UploadErrorFlaskBegin of HTTPBegin of PHPR!C!E!EasyLogin CryptobrainfuckCaesars SecertfenceVigenrebabyrsaSmall dbabyxorbabyencodin…

CART 算法——决策树

目录 1.CART的生成&#xff1a; &#xff08;1&#xff09;回归树的生成 &#xff08;2&#xff09;分类树的生成 ①基尼指数 ②算法步骤 2.CART剪枝&#xff1a; &#xff08;1&#xff09;损失函数 &#xff08;2&#xff09;算法步骤&#xff1a; CART是英文“class…