openEuler Embedded 系统 实时性

openEuler Embedded 系统 & 实时性

  • 1 介绍
    • 1.1 概述
    • 1.2 openEuler 23.09 Embedded
    • 1.3 openEuler 重要节点
    • 1.4 系统构建工具
    • 1.5 openEuler Embedded 诞生的需求背景
      • 运动控制系统实时性需求高
      • 嵌入式OS主要供应商来自老美,市场碎片化严重
    • 1.6 总体架构
    • 1.7 openEuler Embedded 运行模式
    • 1.8 openEuler Embedded 混合关键性系统技术架构
    • 1.9 实时性:UniProton 整体架构和能力
    • 1.10 openEuler 对 Linux Kernel 的持续贡献
    • 1.11 系统整体功能描述
  • 2 系统剪裁工具【Yocto】
  • 3 实时性
    • 实时内核UniProton及其混合关键性部署的实践(演讲稿)
  • 参考

1 介绍

1.1 概述

openEuler 诞生于华为,华为捐赠给了开放原子开源基金会。
openEuler 是由开放原子开源基金会(OpenAtom Foundation)孵化及运营的开源项目,是面向数字基础设施的开源操作系统。

2019年12月,华为作为创始企业发起了openEuler开源社区,并将EulerOS相关的能力贡献到openEuler社区。

2022年03月,首个社区共建的全场景【含Embedded】版本 openEuler22.03 LTS 正式发布。

到23年年底支持指令集和芯片如下

  • 指令集:已支持 X86、ARM、SW64、RISC-V、LoongArch 多处理器架构,逐步扩展 PowerPC 等更多芯片架构支持,持续完善多样性算力生态体验。

  • 已支持芯片:海思工业芯片Hi3093 、瑞芯微RK3568、芯驰D9系列、树莓派、x86、 STM32F407ZGT6

  • 支持中:地平线、中科院RISC-V、瑞芯微RK3588、飞腾E2000

在这里插入图片描述

1.2 openEuler 23.09 Embedded

openEuler 23.09 Embedded 支持嵌入式虚拟化弹性底座,提供 Jailhouse 虚拟化方案、openAMP 轻量化混合部署方案,用户可以根据自己的使用场景选择最优的部署方案。同时支持 ROS humble 版本,集成 ros-core、rosbase、SLAM 等核心软件包,满足 ROS2 运行时要求。

  • 南向生态:openEuler Embedded Linux 当前主要支持 ARM64、x86-64 两种芯片架构,支持 RK3568、Hi3093、树莓派 4B、x86-64 工控机等具体硬件,23.09 版本新增支持 RK3399、RK3588 芯片。初步支持 ARM32、RISC-V 两种架构具体通过 QEMU 仿真来体现。

  • 嵌入式弹性虚拟化底座:openEuler Embedded 的融合弹性底座是为了在多核片上系统(SoC,System On Chip)上实现多个操作系统/运行时共同运行的一系列技术的集合,包含了裸金属、嵌入式虚拟化、轻量级容器、LibOS、可信执行环境(TEE)、异构等多种实现形态。

  • 混合关键性部署框架:构建在融合弹性底座之上,通过一套统一的框架屏蔽下层融合弹性底座形态的不同,从而实现 Linux 和其他 OS 运行时便捷地混合部署。

  • 北向生态:350+ 嵌入式领域常用软件包的构建;支持 ROS2 humble 版本,集成 ros-core、ros-base、SLAM 等核心包,并提供 ROS SDK,简化嵌入式 ROS 开发;基于 Linux 5.10 内核提供软实时能力,软实时中断响应时延微秒级;集成 OpenHarmony 的分布式软总线和 hichain 点对点认证模块,实现欧拉嵌入式设备之间互联互通、欧拉嵌入式设备和 OpenHarmony 设备之间互联互通。

  • 硬实时系统(UniProton):是一款实时操作系统,具备极致的低时延和灵活的混合关键性部署特性,可以适用于工业控制场景,既支持微控制器 MCU,也支持算力强的多核 CPU。

1.3 openEuler 重要节点

  • 2019年12月31日,华为作为创始企业发起了openEuler开源社区,并将EulerOS相关的能力贡献到openEuler社区,后续EulerOS将基于openEuler进行演进。

  • 2020年03月,openEuler 20.03 LTS 发布,作为首个LTS(长期支持)版本,它基于Linux Kernel 5.10,提供了长达4年的社区支持。

  • 2020年09月,2020.09创新版本;

  • 2021年03月,2021.03创新版本;

  • 2021年09月,2021.09创新版本;

  • 2022年03月,2022.03全场景LTS版本;

  • 2022年09月,2022.09创新版本;

1.4 系统构建工具

  • OBS:服务器 OS

  • Yocto:嵌入式 OS

  • EulerMaker:Euler 全场景 OS,替代 OBS 和 Yocto,目前已经替代 OBS,还没有替代 Yocto。

1.5 openEuler Embedded 诞生的需求背景

运动控制系统实时性需求高

在这里插入图片描述

嵌入式OS主要供应商来自老美,市场碎片化严重

在这里插入图片描述

1.6 总体架构

在这里插入图片描述

1.7 openEuler Embedded 运行模式

在这里插入图片描述

1.8 openEuler Embedded 混合关键性系统技术架构

在这里插入图片描述

1.9 实时性:UniProton 整体架构和能力

在这里插入图片描述

1.10 openEuler 对 Linux Kernel 的持续贡献

  • openEuler 内核研发团队持续贡献 Linux Kernel 上游社区,回馈主要集中在:芯片架构、ACPI、内存管理、文件系统、Media、内核文档、针对整个内核质量加固的 bug fix 及代码重构等内容。十余年来总计向社区贡献 17,000+ 补丁。
  • 在 Linux Kernel 5.10 和 5.14 版本中,openEuler 内核研发团队代码贡献量排名全球第一。坚持内核创新,持续贡献上游社区。

在这里插入图片描述

1.11 系统整体功能描述

在这里插入图片描述

  1. 轻量化能力:开放 yocto 小型化构建裁剪框架,支撑 OS 镜像轻量化定制,提供 OS 镜像 < 5M,以及 < 5S 快速启动等能力。
  2. 多硬件支持:新增支持树莓派作为嵌入式场景通用硬件。
  3. 软实时内核:基于 Linux 5.10 内核提供软实时能力,软实时中断响应时延微秒级。
  4. 混合关键性部署:实现 SOC 内实时和非实时多平面混合部署,并支持 Zephyr 实时内核。
  5. 分布式软总线基础能力:集成鸿蒙的分布式软总线,实现欧拉嵌入式设备之间互联互通。
  6. 嵌入式软件包支持:新增 80+ 嵌入式领域常用软件包的构建。

2 系统剪裁工具【Yocto】

yocto-meta-openeuler是用于构建openEuler Embedded所需要的一系列工具、构建配方的集合。

跑 embedded 版本,普遍使用Yocto做定制修改,可以理解成 oebuild.
如果他们雪球计划(做南向兼容的小组)在openEuler-meta-yocto中还没人做,就要用Yocto工具手动编译 openEuler_embedded 内核,然后一步步驱动移植,最终生成一个完整的.wic或者.sdcard镜像。
openEuler Embedded使用与开发手册¶

3 实时性

当前国内主流方案为基于 Preempt-RT 补丁的 linux 系统,其最大中断延迟约60us(Intel I5 4核),可支撑1ms的EtherCAT通信周期

openEuler Embedded 操作系统内核实时性优化,中断延迟测试(中断平均延迟小
于1 μs ,最大中断时延10 μs ),可支撑250 μs的EtherCAT通信周期。

在这里插入图片描述

  • 智能工业机器人操作系统及应用探索

实时内核UniProton及其混合关键性部署的实践(演讲稿)

openEuler–实时内核UniProton及其混合关键性部署的实践

华为嵌入式实时操作系统领域专家 余德钊

余德钊从运动控制系统和全球嵌入式OS实际情况出发,介绍了华为开发openEuler Embedded的背景:2019年发布第一个版本,经过几年发展,目前已经成为一个面向全场景的开源社区,在云计算、服务器和嵌入式领域都有应用。openEuler Embedded是将openEuler与嵌入式应用场景融合的一个以Linux为中心的综合嵌入式系统软件平台,其适用于任何需要Linux的嵌入式系统。余德钊介绍的UniProton是一款硬实时操作系统,具备极致的us级低时延和灵活的混合关键性部署特性,可以高效地与以openEuler Embedded为代表的通用OS混合部署,适用于工业控制场景,既能支持微控制器MCU,也支持算力强的多核CPU。

余德钊表示,多OS混合部署要解决如下几个问题:多OS统一构建、高效的基础通信机制、提供服务化部署。华为针对这些问题也做了很多工作,现在openEuler Embedded 能够接纳不同的RTOS,更好地帮助基础设施进行改造。

参考

1、华为–EulerOS
2、官网–openEuler
3、Euler 欧拉系统介绍
4、openEuler–实时内核UniProton及其混合关键性部署的实践
5、DP读书:开源软件的影响力(小白向)解读Embedded_SIG介绍以及代码架构解析
6、openEuler–构建系统
7、智能工业机器人操作系统及应用探索
8、1智能机器人操作系统及机器人视觉
9、2智能机器人二次开发接口
10、使用OpenEuler官方光盘映像中分离出的rootfs,在rk3588开发板上启动,最终卡在[FAILED] Failed to start System Logging Service无法进入文件系统,求教一下是什么原因?
11、openEuler Embedded使用与开发手册¶
12、openEuler镜像的构建
13、openEuler 22.03 LTS SP3 技术白皮书
14、openEuler 24.03 LTS 特性
15、openEuler 22.03-LTS 技术白皮书
16、22.03_LTS_SP2 EulerMaker用户指南
17、EulerMaker:构建 openEuler 全场景生态
18、树莓派第一次开机

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

AI预测体彩排3采取888=3策略+和值012路一缩定乾坤测试6月3日预测第10弹

昨天的第二套方案已命中&#xff01;今天继续基于8883的大底进行测试&#xff0c;今天继续测试&#xff0c;好了&#xff0c;直接上结果吧~ 首先&#xff0c;888定位如下&#xff1a; 百位&#xff1a;6,4,7,8,2,9,1,0 十位&#xff1a;2,3,4,1,6,7,8,…

000002 - Hadoop环境安装

Hadoop及其大数据生态圈 1. 背景2. 实践2.1 Linux服务器准备2.2 在其中一台服务器上安装JDK2.3 在其中一台服务器上安装HADOOP2.4 本地模式运行一个hadoop案例 3. 自动化部署 1. 背景 要搭建Hadoop集群环境&#xff0c;我们需要执行如下 准备三台Linux服务器&#xff0c;服务…

基于三元组一致性学习的单目内窥镜里程计估计

文章目录 TCL: Triplet Consistent Learning for Odometry Estimation of Monocular Endoscope摘要方法实验结果 TCL: Triplet Consistent Learning for Odometry Estimation of Monocular Endoscope 摘要 单目图像中深度和姿态的估计对于计算机辅助导航至关重要。由于很难获…

Rye一个强大的Python包管理工具

这是一个由Flask框架作者用rust开发并维护的一个python包管理工具&#xff0c;经过个人体验和使用还是非常不错的&#xff0c;尽管它还并非正式版本&#xff0c;但其易用性和便捷性均值得我们来体验&#xff01; 其中他对python各版本的管理比其他同类工具要好&#xff0c;安装…

Cognita:一款面向生产环境的开源、模块化 RAG 框架

一、引言&#xff1a;RAG 技术的兴起和挑战 1.1、从关键词搜索到 RAG 在大模型技术火起来之前&#xff0c;我们处理海量数据中的信息检索问题&#xff0c;往往依靠的是传统的关键词搜索和全文检索方法。这些方法虽然在一定程度上帮助我们找到了信息&#xff0c;但它们在语义理…

SpringBoot——全局异常处理

目录 异常 项目总结 新建一个SpringBoot项目 pom.xml Result&#xff08;通用的响应结果类&#xff09; MyBusinessException自定义异常类 GlobalExceptionHandler全局异常处理类 ExceptionController控制器 SpringbootExceptionApplication启动类 参考文章&#xff1a…

【计算机-ARM】

计算机-ARM ■ 指令集■ 1. RISC■ 2. CISC ■ ARM简介■ 1.■ 2. ■ ARM-CPU体系架构■ 1. M0■ 2. M3■ 3. M4■ 4. M7■ 5. M7■ 6. M7 ■ ARM-寄存器■ 1. 通用寄存器■ 2.■ 3.■ 4. ■ ARM-工作模式■ ARM-寄存器组■ ARM-异常向量表■ 由于soc0x00000000 是存放IROM芯片…

基于.NetCore和ABP.VNext的项目实战七:全局异常处理并日志记录

ABP框架已经默认为我们实现了全局的异常模块,这里我们自定义全局异常模块,先在HelloWorldController中写一个异常接口,测试下ABP的默认全局异常: [HttpGet][Route("Exception")]public string Exception(){throw new NotImplementedException("这是一个未实…

常用技巧-PPT时你真的做对了吗?

常用技巧-PPT时你真的做对了吗&#xff1f; PPT时通常会通过多种表现手法将信息转化为图表&#xff0c;更好的凸显自己的专业素养。将数据转化为图表是对的&#xff0c;那么你真的用对了图表了吗&#xff1f; 话不多说&#xff0c;直接上干货&#xff1a; 时间线图 时间线是…

Jmeter实战教程入门讲解

前言 通过前面对Jmeter元件的讲解&#xff0c;大家应该都知道常用元件的作用和使用了。编写Jmeter脚本前我们需要知道Jmeter元件的执行顺序&#xff0c;可以看看我这篇性能测试学习之路&#xff08;三&#xff09;—初识Jmeter来了解下。下面我将以工作中的一个简单的实例带大…

突破性技术: 大语言模型LLM量化激活outliers异常值抑制

LLM过去有两种突破性技术大大提升了量化精度&#xff0c;分别是group-wise量化和GPTQ/AWQ量化。前者相比于过去的per-tensor和per-channel/per-axis量化提出了更细粒度的对channel拆分为更小单元的量化方式&#xff0c;后者通过巧妙的算法明显提升了4bit量化的精度。 LLM量化存…

【面试八股总结】MySQL索引(二):B+树数据结构、索引使用场景、索引优化、索引失效

参考资料&#xff1a;小林coding、阿秀 一、为什么InnoDB采用B树作为索引数据结构&#xff1f; B 树是一个自平衡多路搜索树&#xff0c;每一个节点最多可以包括 M 个子节点&#xff0c;M 称为 B 树的阶&#xff0c;所以 B 树就是一个多叉树。 B 树与 B 树的差异&#xff1a;…

【UE5 刺客信条动态地面复刻】实现无界地面01:动态生成

为了快速上手UE5&#xff0c;开启了《复刻刺客信条动态地面》的技术篇章&#xff0c;最终希望复刻刺客信条等待界面的效果&#xff0c;这个效果大体上包括&#xff1a; 基础的地面随着任务走动消失和出现的基础效果地板的Bloom和竖起的面片辉光效果 既然是新手&#xff0c;&am…

CSS学习笔记之高级教程(五)

23、CSS 媒体查询 - 实例 /* 如果屏幕尺寸超过 600 像素&#xff0c;把 <div> 的字体大小设置为 80 像素 */ media screen and (min-width: 600px) {div.example {font-size: 80px;} }/* 如果屏幕大小为 600px 或更小&#xff0c;把 <div> 的字体大小设置为 30px …

器利而事善——datagrip 的安装以及简单使用

一&#xff0c;安装 下载&#xff1a;直接到官网下载即可&#xff0c; 破解&#xff1a;这是破解连接&#xff1a;https://pan.baidu.com/s/11BgOMp4Z9ddBrXwCVhwBng &#xff0c;提取码&#xff1a;abcd&#xff1b; 下载后&#xff0c;选择倒数第三个文件&#xff0c;打开da…

【ZZULI数据结构实验四】:C语言排序算法大比拼

&#x1f4c3;博客主页&#xff1a; 小镇敲码人 &#x1f49a;代码仓库&#xff0c;欢迎访问 &#x1f680; 欢迎关注&#xff1a;&#x1f44d;点赞 &#x1f442;&#x1f3fd;留言 &#x1f60d;收藏 &#x1f30f; 任尔江湖满血骨&#xff0c;我自踏雪寻梅香。 万千浮云遮碧…

洛谷 P10566 「Daily OI Round 4」Analysis 题解

先弄个 ASCII 码表&#xff1a; 分析 很明显&#xff0c;想要节省时间&#xff0c;就要把这些字符转换成和它们的 ASCII 值最接近的大写字母。 通过 ASCII 码表&#xff0c;很容易就可以发现&#xff1a; ASCII 值与数字最接近的大写字母是 A \texttt A A。ASCII 值与小写…

切片的MBTiles格式和XYZ格式

MBTiles 和XYZ是两种经常使用的切片格式&#xff0c;尤其是各类下载器下载在线地图时经常使用这种格式。 MBTiles 是一种用于存储地图切片&#xff08;tileset&#xff09;的文件格式&#xff0c;通常用于地图的存储和传输。该格式由 Mapbox 开发&#xff0c;旨在简化大规模栅格…

TensorFlow库详解:Python中的深度学习框架

引言 TensorFlow是由Google Brain团队开发的开源机器学习库&#xff0c;用于各种复杂的数学计算&#xff0c;特别是涉及深度学习的计算。它提供了大量工具和资源&#xff0c;用于构建和训练机器学习模型。TensorFlow因其强大的功能和灵活性&#xff0c;在机器学习和深度学习领…

IGraph使用实例——贝尔曼-福特算法(求解单源最短路径)

1 概述 本文中求解最短路径使用的方法是igraph中基于贝尔曼-福特算法&#xff08;Bellman-Ford算法&#xff09;。Bellman-Ford算法是一种用于在加权图中找到从单个源点到所有其他顶点的最短路径的算法。这个算法可以处理包含负权重边的图&#xff0c;但不能处理有负权重循环的…