文件系统(三):嵌入式、计算机系统启动流程与步骤

   日期:2024-12-23    作者:yindufu1 浏览:93    移动:http://w.yusign.com/mobile/quote/3074.html

liwen01 2024.04.14

我们身边的各种电子设备,手机、手表、相机、个人电脑等等,从用户体验的角度看,好像只要给它们一上电,它们就开始启动可以工作了,这个过程一般是比较短暂的。

从一个嵌入式开发的角度来看,不管是嵌入式系统,还是其它的计算机系统,其启动过程都是一个相对复杂的过程。这个过程一旦出错,基本上设备就不能正常运行了。

我们先看一个嵌入式系统的存储架构示意图

嵌入式设备的存储介质一般有,、、等,其中根据Flash接口的不同,又可以分期 和。在芯片内部有它们对应的控制器。

于此同时,一般在芯片的内部,都会有一个比较小的SRAM和ROM,我们一般称它为内部SRAM和内部ROM。

我们的程序,包括系统程序和应用程序,一般都是存放在这些外接的存储介质上。

这里需要对几个知识点需要注意:

ROM阶段:指的是处理器内部的ROM程序阶段,主要作用是加载存储头部的一小段程序到内部RAM上,这部分的程序一般是使用汇编来实现。

RAM阶段:是指外部DDR已经被初始化,并且存储器中的程序已经被重定位到外部DDR上,从这开始,程序的堆栈空间可以被建立起来,C语言可以开始执行。

BOOT阶段:是指开始其它外围硬件初始化和引导系统启动。

计算机系统因为历史悠久,外设种类众多,它的启动流程会复杂一些,根据(BIOS或UEFI)和(MBR或GPT)的不同,计算机的启动一般可以分为和两种。

查资料看文档发现BIOS、UEFI、LEGACY这几个概念有些混乱,没有统一的定义。对大部分来说,它们理解的引导计算机启动的程序就叫BIOS

因此在这之前,我们统一一下说法,计算通过BIOS引导系统启动,根据BIOS固件的不同和磁盘的分区类型不同,又可以分为两种方式:LEGACY(传统BIOS) 和 UEFI启动

要了解计算机的启动流程,我们先看下一台个人计算机的主板上都有些什么接口和组件

主要的组件有:、、、、、还有各种扩展接口和连接器(内存、显卡、网卡声卡等等)

与启动比较相关的是、、,、、

(1)ATX电源ATX是一种主板的规范、符合ATX规范的电源就叫ATX电源,它的作用是是把交流220V的电源转换为计算机内部使用的5V、12V、24V等不同压值的直流电源。

另外,它还支持电源管理, ATX电源标准接口(如PS_ON、PWR_OK等)与主板通信,以实现电源的管理和控制,包括开机、关机、睡眠模式和节能功能等。

(2)嵌入式控制器(EC)

EC(Embedded Controller)是笔记本电脑上的一个16位小芯片,在不同的设备上,它的名字有些不一样,功能也有些差异:

EC的主要功能有:

(3)BIOS芯片

我们常说的BIOS(Basic Input/Output System,基本输入/输出系统),它其实是位于主板上的一块芯片,里面存储着BIOS程序。

它主要负责启动、初始化计算机硬件,引导操作系统启动。

最开始BIOS程序是存储在ROM中,后面存储在EEPROM,现在大多数都存储在Nor Flash中,因为是存储在Nor Flash 中,所以现在的BIOS 程序是可以被升级更新的。

(4)南桥与北桥

南桥和北桥是指计算机主板上的两个重要芯片组,它们协同工作以连接和管理主板上的各种硬件组件。

北桥(Northbridge):

南桥(Southbridge):

随着技术的发展和新型架构的出现,北桥和南桥的功能划分逐渐变得模糊。现代的芯片组设计趋向于集成更多的功能到单个芯片中,以提高效率并减少组件数量

(5)磁盘

磁盘在前面已经有过介绍

文件系统(一):存储介质、原理与架构

文件系统(二):分区、格式化数据结构

(6)扩展介绍

不同的主板规格,主板上的接口和器件会有差异。

对于台式计算机而言,关机和设备断电,它是处于不同的工作状态的,关机状态下,BIOS和主板上的一些其它器件还是在工作的,比如跟开机按键检测相关的一些器件。

台式机在断电的时候,它里面的时钟也是有在运行,它是通过主板上的纽扣电池来进行供电。纽扣电池最开始是为CMOS供电的,这里的CMOS其实就是一个小的RAM,保存的是用户设置的一些BIOS参数,以及主板器件的一些参数。

LEGACY 方式它只能加载MBR分区格式的引导盘,它的启动方式,大概可以分为6个阶段:

(a)CPU上电

(b)BIOS硬件检测

(c)BIOS更新参数

(d)BIOS交出控制权

(e)执行MBR引导程序

(f)活动分区加载操作系统

Windows系统中大概的一个启动流程是:

在UEFI启动模式中,大部分的工作是在ESP分区中进行

ESP分区ESP(EFI System Partition)是用于存储 EFI(Extensible Firmware Interface)引导加载程序和相关引导文件的分区。它是启动过程中的重要组成部分,包含操作系统引导加载程序、配置文件和其他与引导相关的文件。

与启动比较相关的是下面三个文件:

UEFI BIOS 程序执行阶段

一般分为7个过程:

步骤 阶段缩写 英文全称 中文名字 1 SEC Security Phase 安全验证阶段 2 PEI Pre-EFI Initialization EFI前期初始化阶段 3 DXE Driver Execution Environment 驱动执行环境阶段 4 BDS Boot Device Selection 启动设备选择阶段 5 TSL Transitional System Load 操作系统加载前期阶段 6 RT Runtime 系统运行时阶段 7 AL System Recovery or Shutdown 系统灾难恢复期或关机阶段

1.SEC(安全验证):安全验证是UEFI启动过程的第一步。在这个阶段,执行UEFI固件的固定代码,主要负责初始化CPU、内存和一些基本的系统硬件。

2.PEI(EFI前期初始化):在这个阶段,UEFI固件负责执行更多的硬件初始化,包括DRAM初始化,建立PEI系统服务,为后续的DXE阶段做准备。

3.DXE(驱动执行环境):DXE阶段是加载和执行UEFI驱动程序的阶段。这些驱动程序可以是固件驱动程序、外部设备驱动程序等,以提供更多的硬件支持和功能。

4.BDS(启动设备选择):在这个阶段,UEFI选择启动设备,例如硬盘、光盘、USB驱动器等。用户可以通过UEFI设置来配置启动顺序。

5.TSL(操作系统加载前期):这个阶段涉及加载操作系统引导加载器,准备操作系统加载。UEFI启动管理器在这个阶段起到关键作用。

6.RT(系统运行时):一旦操作系统加载完成,系统进入运行时阶段。UEFI仍然提供了一些运行时服务,使操作系统能够访问硬件资源。

7. AL(系统灾难恢复期或关机):这是系统的最终阶段,涉及系统的灾难恢复、关机或重启。

嵌入式设备与个人计算机系统,在启动方面,个人认为最大的区别是个人计算机将嵌入式设备系统SOC中大部分的功能放到BIOS上去实现了。主要的原因是嵌入式设备的SOC的外设接口和器件相对比较固定,没有个人PC机的主板这么复杂,所以放在SOC的ROM上去实现会更加的高效。

我们可以从硬件平台、引导程序、启动时间上做简单介绍

1. 硬件平台:

2. 引导加载程序:

3. 启动时间:

它们主要的区别在于启动方式、启动速度、容量限制、图形界面、安全性上

1.启动方式:

2. 启动速度:

3. 容量限制:

4. 图形界面:

5. 安全性:

以前在嵌入式软件开发岗位面试的时候,经常被问到系统启动流程,或者是uboot启动流程介绍。对于系统工程师而言,这些应该是需要熟练掌握,但是对于应用工程师而言,我个人认为只要了解基本流程和概念就可以了。

本文地址:http://w.yusign.com/quote/3074.html    述古往 http://w.yusign.com/static/ , 查看更多

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关行情
推荐行情
点击排行
{
网站首页  |  关于我们  |  联系方式  |  用户协议  |  隐私政策  |  版权声明  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号