DP读书:鲲鹏处理器 架构与编程(十一)鲲鹏生态软硬件构成

news2025/1/19 14:19:11

鲲鹏生态软硬件构成

  • 鲲鹏软件构成
    • 硬件特定软件
      • 1. Boot Loader
      • 2. SBSA 与 SBBR
      • 3. UEFI
      • 4. ACPI

鲲鹏软件构成

鲲鹏处理器的软件生态是一个不断发展的软件生态,服务器本身也具有复杂度多样性,经过很长时间的发展服务器硬件有不同的操作系统方案,这些操作系统往往还实现了软件的分层组合,很难简单描述其软件架构

本节从一个比较高的层次,主要从GNU/Linux软件生态角度出发,介绍鲲鹏软件的构成。

以下为鲲鹏 GNU/Linux 的软件架构高层视图:

鲲鹏 GNU/Linux 的软件架构高层视图
上图中,底部为鲲鹏服务器硬件,以 鲲鹏处理器为核心的通用服务器设备
在包含ARM核心的硬件系统上运行的软件不可避免的会包含特定系统的代码,此类代码通常以固件形式与其他系统软件分开,本节将此特性的代码称为----硬件特定软件

在服务器领域,服务器的硬件硬件特定软件对服务器“开箱即用”的影响最大,所以这两部分都要满足ARM服务器相关的合规性要求(详见:ARMv8-A 体系结构、鲲鹏软件生态与云服务)

硬件特定软件

硬件特定软件是指ARM服务器中特定系统的、常以固件形式提供的软件,主要包括所谓的Boot Loader 和设备特定固件。

本节将先介绍Boot Loader,然后介绍 ARM 服务器中的固件要求规范 SBSA 和 SBBR,以及其中 涉及到的一些重要元素, 如 UEFI、ACPI 与 ATF( ARM 可信固件)

1. Boot Loader

Boot Loader 即启动加载程序,是 Bootstrap Loader 一词的缩写版,通常是系统上电或重置运行后的第一个软件,因此它是专门针对特定处理器和主板的。

粗略的看启动流程包括三个主要阶段:

  1. 系统上电,硬件加载Boot Loader
  2. Boot Loader 加载操作系统,例如Linux内核;
  3. 操作系统加载应用程序和用户数据,完成启动过程。
系统上电 加载
加载
加载
硬件
BootLoader
操作系统
应用程序和用户数据

其中,Boot Loader的主要作用就是充当硬件与操作系统之间的媒介,用于加载操作系统。为完成这一目的,Boot Loader往往要寻找并释放操作系统,建立操作系统运行的基本环境(例如初始化内存、发现硬件设备参数回传操作系统等)。一些复杂的 Boot Loader还会有很多额外的功能,如支持多阶段启动、多种启动方式(如Flash内存、磁盘、网络、U盘、光盘等)、启动多种操作系统、更新固件、提供运行时服务、支持底层调试等。

在服务器领域,支持 安全启动也是一个很重要的特性。

2. SBSA 与 SBBR

不同操作系统对系统加载过程中的要求是不一样的。在ARM的传统强项——嵌入式设备与移动终端——领域的Soc产品,往往是 定制化、差异化、价格敏感的,用户很少跟换硬件模块操作系统。在这些情况下,定制软件的成本远远小于移除硬件功能带来的成本节省。所以此类情况下使用方案多是高度定制化的,如“启动固件+Boot Loader(u-boot、fastboot)+操作系统(Linux)+应用软件”

但在 服务器和PC领域,软件通常由第三方开发,用户只要考虑“开箱即用”和“模块可更换”。定制硬件的成本远超过软件成本。所以,使用的方案一般为标准化的接口兼容的。

SBSA(Server Base Boot Requirements)和SBBR(Server Base Boot Requirements)是ARM在服务器应用领域对服务器基本启动需求提出的规范。

SBBA的规范是基于ARM 64 位处理器架构的硬件体系结构的规范,详细描述了服务器操作系统软件,如:操作系统、Hypervisor(虚拟机管理器)和固件所依赖的特性和系统架构关键层面,包括 CPU、PCIe、定时器、IOMMU、UART(Universal Asynchronous Recevier / Transmitter,通用异步收发传输器)、看门狗和中断等,目标是有足够标准的
系统架构,来使一个恰当的系统镜像能在所有符合规范的系统硬件上运行。

SBSA标准主要定义了以下方面的要求:

1.服务器在加电自检(POST)阶段应该检查的基本硬件组件,例如处理器、内存、硬盘驱动器、键盘和鼠标等。
2.服务器引导过程中需要加载的最小软件集合,包括固件(如BIOS或UEFI固件)、引导加载器(如GRUB或UEFI引导加载器)以及内核等。
3.服务器在引导过程中应该遵循的基本时序和顺序。
4.对于采用多引导架构的系统,SBSA还规定了引导过程中如何处理多个操作系统的引导选项。

SBBR规范是对系统启动固件的规范,定义了符合SBSA标准的ARM AArch64 架构的服务器上的操作系统或者Hypervisor(虚拟机管理器)要实现开箱即用能力的基本固件需求,包括所需启动和运行时的服务和安全要求,并遵循UEFI(Unified Extensible Firmware Interface,统一可拓展固件接口)和ACPI (高级适配电源管理接口规范)

SBSA/SBBR是针对ARM服务器能够启动OS或监视器等固件上提出的最小需求集,同时遵循了UEFI、ACPI、PSCI、SMBIO等工业标准。其中,SBSA和SBBR虽然名字相似,但它们实际上关注的方面有所不同。SBSA主要关注系统启动和运行的最小需求,包括启动加载程序、运行时服务、固件抽象等,而SBBR则关注引导程序的最小需求,例如UEFI的BootServices、RuntimeServices、Protocol等基础服务及协议接口。

在实现层面,SBSA和SBBR规范主要通过LuvOS这个定制化Linux系统来实现。LuvOS是基于Linux内核的,通过将FWTS(Firmware Test Suite)和SBSA-ACS(ARM Server Base Architecture - Automotive and Server Consortium Starter Kit) 在Linux下的工具与标准Linux内核共同编译获得。

3. UEFI

UEFI最早由Intel推出,是16位 x86“传统”PC BIOS的后继产品,目前由UEFI论坛维护。

UEFI(Unified Extensible Firmware Interface) 是一种在计算机固件中使用的图形化标准接口,它被设计用来替代传统的BIOS。UEFI被定义为一个可扩展的固件接口规范,它提供了一组标准的API,使得操作系统可以在预启动环境下与固件进行交互。

UEFI规范的开源参考实现是edk2 或 EDK Ⅱ,源码位于https://github.com/tianocore/tianocore.github.io/tree/master/edk2
上游开发小组为TianoCore社区

UEFI是以图形化界面展示的,相比传统的BIOS,它更易于使用和定制。此外,UEFI还提供了一些先进的功能,例如网络配置、硬件诊断和安全启动等。

UEFI是由一些行业领先的公司共同制定的,包括AMD、Intel、Microsoft等。随着计算机硬件的发展,UEFI也在不断演进,以满足新的需求。

UEFI 规范中包含一个启动管理器 BOOT Manager,他会根据NVRAM(Non-Volatile Random Access Memory,非易失性随机访问存储器)中的参数决定如何加载可执行文件(可能是Boot Loader 或者其他镜像文件),EFI(可拓展固件接口)可执行文件格式必须符合PE(Protable Executable,可移植可执行)格式,PE是一种广泛应用在Windows平台上

4. ACPI

ACPI(Advanced Configuration and Power Interface)是一种开放式电源管理接口规范,它被设计用来提供一种通用的、标准化的电源管理方式。ACPI定义了在操作系统控制之下对电源管理进行完全控制的一种接口规范。

ACPI主要包含以下几部分:

  1. 用于描述计算机系统中电源状态和设备状态的表(Tables);
  2. 用于操作系统与固件之间进行通信的接口(Interfaces);
  3. 用于描述电源、散热管理及系统配置的规范;
  4. 用于提供运行时电源管理的事件(Events)。

ACPI是一种比较复杂的规范,它提供了丰富的电源管理功能。在计算机领域,许多新的电源管理特性都是基于ACPI实现的。

文字内容 文字内容 文字内容

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

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

相关文章

为什么 Higress 是 Knative 入口网关的最佳实践?

作者:赵伟基(兆维) 在传统的应用开发中,通常需要管理底层的基础设施、服务器与网络配置等方面的工作。然而在云原生 Serverless 化的浪潮下,这些基础设施的细节被抽象和自动化,开发者无需关注服务器等配置…

如何通过内网穿透实现外部网络对Spring Boot服务端接口的HTTP监听和调试?

文章目录 前言1. 本地环境搭建1.1 环境参数1.2 搭建springboot服务项目 2. 内网穿透2.1 安装配置cpolar内网穿透2.1.1 windows系统2.1.2 linux系统 2.2 创建隧道映射本地端口2.3 测试公网地址 3. 固定公网地址3.1 保留一个二级子域名3.2 配置二级子域名3.2 测试使用固定公网地址…

【附安装包】谷歌浏览器安装教程

软件下载 软件:谷歌浏览器版本:110.0.5181语言:简体中文大小:1.3M安装环境:Win11/Win10/Win8/Win7硬件要求:CPU2.59GHz 内存2G(或更高)下载通道①百度网盘丨64位下载链接:https://p…

学乐多光屏P90:智能引领儿童学习新时代

随着科技的迅猛发展,儿童教育正逐渐迈入数字化时代。在这个变革的浪潮中,学乐多光屏P90以其卓越的功能和深刻的教育理念,成为了智能儿童学习领域的引领者,为孩子们开启了全新的学习体验。 融合创新技术,引领学习变革 …

【Flutter】Flutter 使用 flutter_timezone 获取当前操作系统的时区

【Flutter】Flutter 使用 flutter_timezone 获取当前操作系统的时区 文章目录 一、前言二、flutter_timezone 包的背景三、安装和基本使用四、深入理解时区五、实际业务中的用法六、完整示例七、总结 一、前言 大家好!我是小雨青年,今天我想和大家分享一…

Tensorflow调用训练好的yolov5模型进行推理

文章目录 1、安装TensorFlow-GPU版本1.2、验证是否安装正常 2、将训练好的pt文件转换成onnx文件2.2、什么是Onnx模型和Tensorflow模型2.1、将onnx文件转换成pb文件 1、安装TensorFlow-GPU版本 1、创建虚拟环境python3.8 conda create -n TF2.4 python3.82、进入虚拟环境 conda…

点成分享丨冷冻保存技术对生物样本库的重要性

生物样本库概述 生物样本库又称生物银行,是一种集中收集、储存和管理各种生物样本(如血液、组织、DNA等),用于疾病的治疗和生命科学研究的生物应用系统。生物样本库有组织库、器官库、细胞株(系)库以及各种…

vue2使用 vis-network 和 vue-vis-network 插件封装一个公用的关联关系图

效果图&#xff1a; vis组件库&#xff1a;vis.js vis-network中文文档&#xff1a;vis-network 安装组件库&#xff1a; npm install vis-network vue-vis-network 或 yarn add vis-network vue-vis-network 新建RelationGraph.vue文件&#xff1a; <template><…

【高等数学基础知识篇】——一元函数微分学的应用

本文仅用于个人学习记录&#xff0c;使用的教材为汤家凤老师的《高等数学辅导讲义》。本文无任何盈利或者赚取个人声望的目的&#xff0c;如有侵权&#xff0c;请联系删除&#xff01; 文章目录 一、中值定理1.1 极值点1.2 中值定理1.2.1 罗尔中值定理1.2.2 拉格朗日中值定理1.…

036 - timezone

timestamp随着mysql的time_zone变化而变化&#xff0c;但是datetime不会&#xff1b; -- 查询mysql的变量&#xff1a; show variables;-- 模糊查询变量中带有time_zone的变量&#xff1a; show variables like %time_zone%; -- 创建表 create table test_time_zone (a dateti…

分布式 - 服务器Nginx:一小时入门系列之HTTPS协议配置

文章目录 1. HTTPS 协议2. 生成证书3. 配置 SSL4. HTTPS 协议优化 1. HTTPS 协议 HTTPS 是一种通过计算机网络进行安全通信的协议。它是HTTP的安全版本&#xff0c;通过使用 SSL 或 TLS 协议来加密和保护数据传输。HTTPS的主要目的是确保在客户端和服务器之间传输的数据是加密…

跟着文快速创建一个完整的TDesign后台系统

先创建一个文件夹 来作为项目的载体 打开终端 首先 我们执行 npm i tdesign-starter-clilatest -g全局装一下依赖 然后执行 td-starter init我不清楚你们哦 反正我第一次是报错了 告诉我们少了 babel/core 那就读字面呗 不想复杂了 直接 npm install -g babel/core全局装一…

“光遗传学治疗晚期视网膜色素变性”,9月6日星明优健执行总裁孙思睫博士直播分享

视网膜色素变性 &#xff08;Retinitis pigmentosa&#xff0c;RP&#xff09; 是一种进行性、单基因遗传的神经退行性致盲疾病&#xff0c;由超过71个不同的基因突变引起&#xff0c;并影响着全球超过200万人。视网膜色素变性会破坏视网膜的感光细胞&#xff0c;可能导致患者完…

【NX】分割曲线出现“输入行的长度为0”

在nx使用分割曲线的功能或者函数的时候&#xff0c;偶尔会提示如下&#xff1a; “输入行的长度为0”。实际上这是翻译的过&#xff0c;应该是the length of input is 0 之类的直译。 针对这种情况&#xff0c;一般要考虑是输入的曲线有问题或者点有问题&#xff0c;这时候我们…

SQLI-labs-第二关

目录 知识点&#xff1a;数字型get注入 1、在url中输入?id1 2、判断注入点 3、判断目前表的字段数 4、判断回显位置 5、爆库名 6、爆表名 7、爆字段名&#xff0c;以users表为例 ​编辑8、爆值 知识点&#xff1a;数字型get注入 思路&#xff1a; 1、在url中输入?id1 2…

Python3多线程/多进程解决方案(持续更新ing...)

诸神缄默不语-个人CSDN博文目录 文章目录 1. 多线程2. 多进程示例1&#xff1a;multiprocessing.Pool直接实现对一个列表中的每个元素的函数操作示例2&#xff1a;使用苏神写的工具函数实现对一个迭代器中每个元素的函数操作 1. 多线程 2. 多进程 示例1&#xff1a;multiproc…

强化自主可控,润开鸿发布基于RISC-V架构的开源鸿蒙终端新品

2023 RISC-V中国峰会于8月23日至25日在北京召开,峰会以“RISC-V生态共建”为主题,结合当下全球新形势,把握全球新时机,呈现RISC-V全球新观点、新趋势。本次大会邀请了RISC-V国际基金会、业界专家、企业代表及社区伙伴等共同探讨RISC-V发展趋势与机遇,吸引超过百余家业界企业、高…

易基因:5mC DNA甲基化介导茶树组织功能分化和重要风味物质合成调控|植物研究

大家好&#xff0c;这里是专注表观组学十余年&#xff0c;领跑多组学科研服务的易基因。 在植物中&#xff0c;5mC DNA甲基化修饰&#xff08;简称5mC甲基化&#xff09;是一个重要而保守的表观基因标记&#xff0c;参与基因组稳定性、基因转录调控、发育调控、非生物胁迫响应…

重生c++系列之类与对象(中篇)

好的继上期&#xff0c;我们今天带来c类与对象系列的继续学习。 类的6个默认成员函数 如果一个类中什么成员都没有&#xff0c;简称为空类。 空类中真的什么都没有吗&#xff1f;并不是&#xff0c;任何类在什么都不写时&#xff0c;编译器会自动生成以下6个默认成员 函数。 …

【Latex】使用技能站:(一)Visio导出矢量图并导入Latex模板

Visio导出矢量图并导入Latex模板 引言1 安装Inkscape工具1.1 官网下载并安装1.2 添加环境变量 2 Visio导出svg文件3 Inkscape 转换为PDF或EPS格式4 Latex导入.pdf或者.eps矢量图 引言 矢量图格式有&#xff1a;svg&#xff0c;eps&#xff0c;pdfVisio能导出的矢量图格式有&am…