DP读书:不知道干什么就和我一起读书吧——以《鲲鹏处理器 架构与编程》中鲲鹏软件的构成为例

这篇具有很好参考价值的文章主要介绍了DP读书:不知道干什么就和我一起读书吧——以《鲲鹏处理器 架构与编程》中鲲鹏软件的构成为例。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


虽然清楚知识需要靠时间沉淀,但在看到自己做不出来的题别人会做,自己写不出的代码别人会写时还是会感到焦虑怎么办?

你是否也因为自身跟周围人的差距而产生过迷茫,这份迷茫如今是被你克服了还是仍旧让你感到困扰?来分享一下吧!

DP读书:不知道干什么就和我一起读书吧——以《鲲鹏处理器 架构与编程》中鲲鹏软件的构成为例,鲲鹏处理器 架构与编程,架构,服务器,云计算,运维,linux,经验分享,笔记

我就读了几天书,就这样了。感觉和周围人还挺不同的,所以就把这样的经历分享出来。

为啥写博客:

(质量:用自己2000+的内容和新鲜感做出来)

好处一:记录自己的学习过程

总是有人在我身边浑浑噩噩,如果这样看自己也就这么差不多了

于是

我开始出去打比赛:

		化工设计
		电赛选拔
		程序设计
		高数竞赛
		设计择优
		......

做的方向很多,也没有啥系统的计划

直到我开始打——鲲鹏开源应用设计大赛

在像往常一样的学习过程中,我发现单独对官方文档硬啃,与其他比赛不太一样,这个竞赛更多的是鲲鹏社区的视频资料为主…

习惯啃文档,学习新东西整活的我,于是做了一个大胆的决定——直接上手(我是纯小白啊…)

于是边做边研究第一个名词:openEuler

买了本书就开始啃:《鲲鹏处理器 架构与编程》

就有了我更了一周的DP读书系列:鲲鹏处理器 架构与编程

优点二:让自己在各大社群里不那么尴尬

DP读书:不知道干什么就和我一起读书吧——以《鲲鹏处理器 架构与编程》中鲲鹏软件的构成为例,鲲鹏处理器 架构与编程,架构,服务器,云计算,运维,linux,经验分享,笔记

提示:自己使用openEuler时,在官网机缘巧合加了openEuler小助手的微信,从此就潜水在openEuler的官方论坛群里,看着大佬们的对话,脑袋里一片空白,于是下定决心,要看懂他们说啥。

自己开始一点一点的读书、啃书、做笔记、敲记事本、学着写Blog、学着用AIGC帮自己画图、学着跟帖、学着画好看的图

推荐三:坚持下去,找到一个能支持自己的伙伴

小王子的作者,安托万·圣埃克苏佩里,同时拥有三位很好的异性朋友,经常深夜打电话,或者寄信给她们,想让她们帮自己看文章,最终成为一代人的童年

我就有一个不错的老友——MIN,总是能给我以精神上的激励。每每我快吐血,肝不动一点的时候,总能在相互交流话语里找到激励。

还有我妈,也总是支持我写一些东西,无论我去哪里,只要我开始动笔,或者开是思考,总是能被悄悄的感动到,我能有一个贼好的创作环境也要很感谢你。

对了,我爸,也老是把我送到很多地方,让我长些见识,创作灵感的涌现也不可或缺有他的帮助,我才今天如此。

下面是,我的一篇最近的原创:希望能作为模版提供给您参考

模版:鲲鹏软件构成

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

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

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

DP读书:不知道干什么就和我一起读书吧——以《鲲鹏处理器 架构与编程》中鲲鹏软件的构成为例,鲲鹏处理器 架构与编程,架构,服务器,云计算,运维,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. 操作系统加载应用程序和用户数据,完成启动过程。

其中,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平台上的二进制可执行文件格式。
根据SBBR规范,用于 AArch64架构的UEFI 加载镜像文件必须为64位的PE/COFF格式,并且必须包含A64格式的代码。

4. ACPI

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

ACPI主要包含以下几部分:

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

ACPI是一种比较复杂的规范,它提供了丰富的电源管理功能。在计算机领域,许多新的电源管理特性都是基于ACPI实现的。
DP读书:不知道干什么就和我一起读书吧——以《鲲鹏处理器 架构与编程》中鲲鹏软件的构成为例,鲲鹏处理器 架构与编程,架构,服务器,云计算,运维,linux,经验分享,笔记

我的介绍就到这里啦,感谢观看!文章来源地址https://www.toymoban.com/news/detail-696785.html

到了这里,关于DP读书:不知道干什么就和我一起读书吧——以《鲲鹏处理器 架构与编程》中鲲鹏软件的构成为例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 服务器是什么?它是用来干什么的?

    作者: Insist-- 个人主页: insist--个人主页 作者会持续更新网络知识和python基础知识,期待你的关注   目录 一、服务器是什么? 二、服务器的作用 1、提高访问速度 2、提高安全性 三、云服务器与物理服务器 1、云服务器 云服务器的优点: 2、物理服务器 物理服务器的优点:

    2024年02月08日
    浏览(58)
  • 什么是tomcat?tomcat是干什么用的?

    什么是tomcat Tomcat是常见的免费的web服务器. Tomcat 这个名字的来历,Tomcat是一种野外的猫科动物,不依赖人类,独立生活。 Tomcat的作者,取这个名字的初衷是希望,这一款服务器可以自力更生,自给自足,像Tomcat这样一种野生动物一般,不依赖其他插件,而可以独立达到提供

    2023年04月11日
    浏览(51)
  • python cv2是什么,可以用来干什么

    OpenCV (Open Source Computer Vision Library) 是一个流行的开源计算机视觉库,提供了丰富的图像和视频处理功能。通过使用 OpenCV 的 Python 绑定库 cv2,可以实现以下一些功能: 图像读取和显示:使用 cv2.imread() 读取图像文件,使用 cv2.imshow() 显示图像窗口。 图像处理:包括图像滤波、

    2024年02月14日
    浏览(44)
  • Hessian 矩阵汉语叫什么名字,是什么意思,是用来干什么的?

    问题描述:Hessian 矩阵汉语叫什么名字,是什么意思,是用来干什么的? 问题解答: Hessian 矩阵的汉语名字是“黑塞矩阵”或“海森矩阵”。 这个名字的来源是对德国数学家Ludwig Hessian(海森)的姓氏的翻译。Hessian 矩阵是一个方阵,其中的元素是一个函数的二阶偏导数,用

    2024年01月22日
    浏览(53)
  • node.js是干什么的

    Node.js是一个开源和跨平台的JavaScript运行时环境。它几乎是任何类型项目的流行工具! Node.js在浏览器之外运行V8 JavaScript引擎(Google Chrome的内核)。这使得Node.js的性能非常好。 Node.js应用程序在单个程序中运行,无需为每个请求创建新的线程。Node.js在其标准库中提供了一组异

    2023年04月09日
    浏览(42)
  • 在线ios免签是干什么的?

    在本教程中,我们将介绍在iOS设备上实现免签名应用程序安装的原理和详细步骤。首先,请注意,这些应用程序通常可能存在风险,因为它们没有经过苹果官方的签名审核。但是,现实中确实有一些情况,您可能需要安装一些非官方渠道的iOS应用。在这种情况下,下面的内容

    2024年02月07日
    浏览(46)
  • SpringBoot 配置文件:什么是配置文件?配置文件是干什么?

    学习一个东西,我们先要知道它有什么用处。整个项目中所有重要的数据都在配置文件中配置,例如:数据库的连接信息、项目启动窗口、第三方系统调用密钥、日志等级…,如果没有配置信息,那么 SpringBoot 项目就无法连接数据库,不能保存关键日志,因此,在项目中,配

    2024年02月16日
    浏览(45)
  • DNS劫持是什么意思?DNS劫持是干什么用的?

    DNS劫持又称域名劫持,是指在劫持的网络范围内拦截域名解析的请求,分析请求的域名,把审查范围以外的请求放行,否则返回假的IP地址或者什么都不做使请求失去响应,其效果就是对特定的网络不能反应或访问的是假网址。 DNS劫持原理 我们以用户访问淘宝网:www.taobao.

    2024年02月08日
    浏览(44)
  • 路由器是什么东西?路由器是干什么用的?

    路由器是什么东西?虽然这个问题对于大多数人来说都不是一个问题,但是任然有少数缺乏网络基础的朋友,不知道路由器到底是个什么东西,本文就简单的介绍一下。 路由器(Router),是连接局域网与局域网、局域网与广域网(Internet)的一种设备,它会根据信道的情况自

    2024年02月08日
    浏览(41)
  • WAF是干什么的 有哪些功能

    Web应用防火墙简称:WAF(Web Application Firewall,Web应用防火墙),很多人不了解WAF是干嘛的,WAF的功能有哪些,以及WAF的应用场景!接下来小情给大家说一说! WAF是Web应用防火墙(Web Application Firewall)的简称,Web应用防火墙是通过执行一系列针对HTTP/HTTPS的安全策略来专门为W

    2024年02月15日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包