DP读书:开源软件的影响力(小白向)解读Embedded_SIG介绍以及代码架构解析

从一个SIG的文档来看,一个社区的生态。
开源软件的影响力

开源 openEuler Embedded软件发行版的影响力

openEuler Embedded是基于openEuler社区面向嵌入式场景的Linux版本。 该版本与其他openEuler版本在内核和软件版本方面保持一致,但内核配置、软件包组合和配置以及特性补丁针对嵌入式场景进行了优化。 

构建使用Yocto工具

构建进程

openEuler Embedded采用Yocto构建,但实现了与openEuler其他版本代码同源。 该版本的目标是构建一个高质量的以Linux为中心的嵌入式系统软件平台。
openEuler Embedded

10min速通开源软件发行版openEuler Embedded 极简文档

  • 开源 openEuler Embedded软件发行版的影响力
      • 开源软件的低成本、可协作性和透明度等特点,使得越来越多的企业和个人选择使用开源软件
    • 分享开源软件在各行业的应用案例,展示其在实际应用中的优势和价值。
  • 1.极佳的社区环境
  • 2.最好的文档
    • 总体介绍
      • 南向生态
      • 融合弹性底座
      • 混合关键性部署框架
      • 高质量的Linux内核
      • 实时操作系统
      • 分布式软总线
      • 工具体系
      • 维测体系
      • 基础设施
      • 北向生态
    • 我们也有自己的小仓库
      • 也有一些其他开发者的小而有趣的仓库
    • mcx开源软件仓库 比如做混合部署的[mcx](https://gitee.com/openeuler/mcs),跑[UniProton](https://gitee.com/openeuler/UniProton)的,还有构建ROS的在每一个SIG下都有不少这样有趣的仓库,而SIG又有不少,这就显得极为有趣了。
    • 仓库链接:[https://gitee.com/openeuler/yocto-meta-openeuler](https://gitee.com/openeuler/yocto-meta-openeuler) 官网链接:[https://www.openeuler.org/zh/sig/sig-detail/?name=sig-embedded](https://www.openeuler.org/zh/sig/sig-detail/?name=sig-embedded)

开源软件的低成本、可协作性和透明度等特点,使得越来越多的企业和个人选择使用开源软件

openEuler的Embedded库

提示:分析开源软件如何通过开放源代码,促进全球开发者之间的协作和交流,推动软件技术的创新和发展。
SIG

方向:中国开源软件的未来发展趋势

提示:预测开源软件未来的发展趋势,以及如何应对新的挑战和机遇。

机遇:中国开源软件的行业实例

分享开源软件在各行业的应用案例,展示其在实际应用中的优势和价值。

Embedded——SIG是我在openEuelr社区加入的第一个SIG(兴趣小组,Special interest group)

1.极佳的社区环境

与国外普遍在论坛和邮箱里的交流不同,国内开发者普遍更多的使用微信、QQ等即使通讯工具,交流也更倾向于在QQ群、微信群里交流。
openEmbedded构建仓库

我也是有一天在逛开发者社区,偶然发现了欧拉openEuler社区,在最下面有相关的小助手微信,从此我就入坑了。

2.最好的文档

当然前面我分享过openEuler的文档,但这篇我主要介绍社区的一个SIG:
最好的开源文档
拉仓库文档的方法:

社区文档(sphinx)怎么编译

sudo apt-get install python3-sphinx
pip3 install sphinx_rtd_theme sphinx_multiversion sphinx_tabs -i https://pypi.tuna.tsinghua.edu.cn/simple

装上sphinx环境,去拉社区文档仓(docs),就可以make html,生成文档了仓库
上面是仓库;
仓库地址

下面是工具:

yocto-meta-openeuler是用于构建openEuler Embedded所需要的一系列工具、构建配方的集合,
以及当前openEuler Embedded开发使用文档的承载仓库。

所以我来推荐一下这个
所有文档地址在这:
https://openeuler.gitee.io/yocto-meta-openeuler/master/index.html

进去使用会发现
无论你开发环境是什么,你都可以在这个文档里熟悉Yocto的使用方式——如果你英文好的话也可以直接看openEmbedded的官方文档。


总体介绍

对于当前的嵌入式系统,一方面由于硬件越发强大,可以有力支撑Linux等复杂操作系统的运行;另一方面,应用也变得越发复杂, 包含了如互联、AI、迭代升级等方面的越来越多的需求。 需求如此复杂而繁多,实践中也往往需要像Linux这样强大的操作系统来满足。因此,在嵌入式系统中,Linux所应用的场景越来越多,甚至在传统认为像Linux这样的大型操作系统所不能胜任的领域,如传感器、工业控制、航空航天等领域,Linux的身影也越发常见。 但同时也必须认识到,与一般的计算机系统不同的是,嵌入式系统往往有资源限制、功耗限制、实时性、可靠性、安全性等方面的约束,这些约束并没有随着系统的复杂化而变化。受限于自身的复杂架构的Linux并不能很好地满足这些约束, 而以实时操作系统乃至裸金属运行时为代表的相对精简的专用系统,往往更有用武之地。
复杂架构的Linux

在上述背景下,openEuler Embedded旨在成为一个以Linux为中心的综合嵌入式软件平台。如上图所示,openEuler Embedded中各组成部分的关系类似于一个“太阳系”: Linux作为整个星系的中心,提供丰富的生态与功能,而不同的运行时“行星”提供各具特色的功能,如实时操作系统满足硬实时的需求、基于TEE技术的运行时保障信息安全、裸金属运行时可以实现极致性能、嵌入式虚拟化可以实现不同运行时之间的隔离等。openEuler Embedded以Linux丰富的生态与功能、混合关键性系统、分布式软总线、基础设施等为“引力”,把诸多的运行时“行星”与Linux有机地集成在一起。

南向生态

openEuler Embedded当前主要支持ARM64、x86-64二种架构,支持RK3568、Hi3093、树莓派4B、x86-64工控机等具体硬件,初步支持了ARM32、RISC-V两种架构具体通过QEMU仿真来体现。openEuler Embedded的南向生态正在不断完善中。
openEuler Embedded当前主要支持ARM64

融合弹性底座

openEuler Embedded的融合弹性底座是为了在多核片上系统(SoC,System On Chip)上实现多个操作系统/运行时共同运行的一系列技术的集合,包含了裸金属、嵌入式虚拟化、轻量级容器、LibOS、可信执行环境(TEE)、异构等多种实现形态。不同的形态有各自的特点,例如裸金属可以得到最佳的性能、嵌入式虚拟化可以实现更好的隔离与保护、轻量级容器则有更好的易用性与灵活性等等。

混合关键性部署框架

openEuler Embedded的混合关键性部署框架构建在融合弹性底座之上,通过一套统一的框架屏蔽下层融合弹性底座形态的不同,从而实现Linux和其他OS/运行时便捷地混合部署。依托硬件上的多核能力使得通用的Linux和专用的实时操作系统有效互补,从而达到全系统兼具两者的特点,并能够灵活开发、灵活部署。

混合关键性部署框架的组成主要有四大部分:生命周期管理、跨OS通信、服务化框架和多OS基础设施。生命周期管理主要负责从OS(Client OS)的加载、启动、暂停、结束等工作;跨OS通信为不同OS之间提供一套基于共享内存的高效通信机制;服务化框架是在跨OS通信基础之上便于不同OS提供各自擅长服务的框架,例如Linux提供通用的文件系统、网络服务,实时操作系统提供实时控制、实时计算等服务;多OS基础设施是从工程角度为把不同OS从工程上有机融合在一起的一系列机制,包括资源表达与分配,统一构建等功能。

高质量的Linux内核

openEuler Embedded的中心是Linux,当前采用了与openEuler其他场景相同的Linux 5.10内核,该版本内核最长支持周期为6年,未来也将与其他场景协同演进内核。在软件包层面也与内核一样和所有场景共代码、共演进,当前已经支持250+软件包,远期目标是支持尽可能多的openEuler社区软件包。

同时针对嵌入式场景的需求,openEuler Embedded会在内核特性、系统配置、快速启动、软件包组合、镜像裁剪、安全加固、轻量化等方面进行创新,包括但不限于基于Preempt-RT补丁提供软实时能力、最小OS镜像<5M、小于<5S的快速启动能力等。

实时操作系统

对于嵌入式系统中的高可靠、高实时、高安全等需求,openEuler Embedded需要借助以实时操作系统为代表的相对精简的专用系统来实现。 openEuler Embedded对实时操作系统的选择是开放的,当前已适配Zephyr、RT-Thread、Uniproton等多种实时操作系统,可以共同部署。

分布式软总线

欧拉和鸿蒙两大社区正积极合作,通过在openEuler Embedded中引入分布式软总线技术,使得鸿蒙设备和欧拉设备能够彼此互联互通,打通鸿蒙和欧拉两大生态。鸿蒙主要面向有强交互等需求的智能终端、物联网终端和工业终端,欧拉主要面向有高可靠、高性能等需求的服务器、边缘计算、云、嵌入式设备,二者各有侧重,通过以分布式软总线为代表的技术相互联通,可以实现“1+1>2”的效果。

工具体系

由于嵌入式系统资源受限,无法像通用系统那样方便地进行开发工作,因此非常依赖开发工具体系的支持。除了嵌入式Linux运行时外,openEuler Embedded的发布件中还包含能够有力支持嵌入式开发工作的SDK(Software Development Kit),同时近期也会集成与openEuler Embedded配套嵌入式系统仿真方案,未来还计划集成图形化的IDE(Integrated Development Environment),最终形成一套相对完整的开发工具体系。

维测体系

针对嵌入式系统资源受限、无法像通用系统那样方便地进行优化和调试的现状,openEuler Embedded的维测体系为一个包含了针对嵌入式Linux的调试机制(Debug)、性能优化机制(Optimization)和追踪机制(Trace)在内的相关完善体系,旨在帮助开发者高效地完成相关工作。

基础设施

openEuler Embedded采用的面向嵌入式系统Yocto构建体系,而非openEuler服务器场景的OBS构建体系。虽然实现了内核和软件包在代码层面的共享,但在具体构建上有着巨大的差异,需要专门编写相应的构建文件,这也意味当前openEuler体系中众多软件包的构建规则不能直接应用于嵌入式场景。当前openEuler Embedded已经实现了250+软件包的支持,未来为了实现所有软件包的支持,显然不能把所有的软件包的构建在Yocto下重新实现一遍。因此,openEuler Embedded正在与其他场景共同努力,希望打造一套支持全场景的统一构建系统。

openEuler Embedded的CI/CD主要完成代码检查、门禁构建、每日构建、每周构建、发布构建等功能。

openEuler Embedded的测试框架主要配合CI/CD的流程,完成相应的测试工作,目前相关功能还比较简要,正在不断完善中。

北向生态

openEuler Embedded的北向生态正在起步中,将会与openEuler的相关SIG组与社区伙伴合作不断完善,重点聚焦在工控、机器人、能源等场景。从openEuler 23.03开始,轻量级机器人运行时成为了openEuler Embedded关键特性之一。

© Copyright 2022, openEuler Embedded.

Built with Sphinx using a theme provided by Read the Docs.


但这是我在中国看到的可以说是最好的Yocto构建(小白)文档了;

当然你也可以选择C站…(大佬们更容易通过搜索找到自己的答案)
开源C站仓库
使用的pocket做的书签插件…

我们也有自己的小仓库

仓库
在做一个NXP上跑openEuler的Embedded的bsp,还在进行中,虽然开学了,但我还在啃。

也有一些其他开发者的小而有趣的仓库

mcx开源软件仓库
比如做混合部署的mcx,跑UniProton的,还有构建ROS的在每一个SIG下都有不少这样有趣的仓库,而SIG又有不少,这就显得极为有趣了。

今天的开源社区openEulerSIG分享就到这啦~
留给大家自己探索啦~~~

仓库链接:https://gitee.com/openeuler/yocto-meta-openeuler
官网链接:https://www.openeuler.org/zh/sig/sig-detail/?name=sig-embedded

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

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

相关文章

LeetCode 刷题 [C++] 第240题.搜索二维矩阵 II

题目描述 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性&#xff1a; 每行的元素从左到右升序排列。 每列的元素从上到下升序排列。 题目分析 通过分析矩阵的特点发现&#xff0c;其左下角和右上角可以看作一个“二叉搜索树的根节…

WPF 【十月的寒流】学习笔记(3):DataGrid分页

文章目录 前言相关链接代码仓库项目配置&#xff08;省略&#xff09;项目初始配置xamlviewModel Filter过滤详细代码展示结果问题 Linq过滤CollectionDataxamlviewModel sql&#xff0c;这里用到数据库&#xff0c;就不展开了 总结 前言 我们这次详细了解一下列表通知的底层是…

GIS之深度学习03:Anaconda无法正常启动问题汇总(更新)

在安装完成anaconda后&#xff0c;总会出现一些问题&#xff0c;以下为遇到的问题及解决方案&#xff1a; &#xff08;有问题请私信&#xff0c;持续更新&#xff09; 01&#xff1a;anaconda navigator启动时一直卡在 loading applications 页面 解决&#xff1a; 找到anac…

在Ubuntu22.04 LTS上搭建Kubernetes集群

文章目录 准备工作系统准备软件包准备主机和IP地址准备 安装步骤安装前准备关闭防火墙设置服务器时区关闭 swap 分区关闭SELinux配置hosts配置文件转发 IPv4 并让 iptables 看到桥接流量 安装容器运行时安装Kubernetes配置并安装apt包初始化集群 安装calico网络插件部署应用 本…

2-3 树

原文链接&#xff1a;https://blog.csdn.net/Ceylan__/article/details/125578130 一、2-3树 的定义 Q&#xff1a;什么是二叉排序树 A&#xff1a;二叉排序树或者是一棵空树&#xff0c;或者是具有如下性质的二叉树 1&#xff09;若它的左子树不空&#xff0c;则 左子树 上…

Introduction to OpenCL

Introduction to OpenCL Open Computing Language 是用于编写跨异构平台执行的程序的框架。 例如&#xff0c;它们由 CPU、GPU、DSP 和 FPGA 组成。 OpenCL 指定了一种用于对这些设备进行编程的编程语言&#xff08;基于 C99&#xff09;和应用程序编程接口 (API)&#xff0c…

【Godot4.2】菜单相关控件和节点完全解析

MenuBar MenuBar的逻辑是&#xff1a; 添加到其中的PopupMenu节点&#xff0c;会自动水平排列&#xff08;类似于HBoxContainer&#xff09;。PopupMenu隐藏&#xff0c;而自动将其创建为可以点击的MenuButton形式,MenuButton的文本将与PopupMenu节点的名称一致 MenuBar不是必…

C++初阶 | [八] (下) vector 模拟实现

摘要&#xff1a;vector 模拟实现讲解&#xff08;附代码示例&#xff09;&#xff0c;隐藏的浅拷贝&#xff0c;迭代器失效 在进行 vector 的模拟实现之前&#xff0c;我们先粗略浏览一下 stl_vector.h 文件中的源码来确定模拟实现的大体框架。 这里提供一些粗略浏览源码的技巧…

防御-day3-内容安全(入侵检测-IPS,防病毒网关-AV)

一、内容安全 1、华为---IAE引擎 核心技术 DPI---深度包检测---主要针对完整的数据包&#xff08;数据包分片&#xff0c;分段需要重组&#xff09;&#xff0c;之后对 数据包的内容进行识别。&#xff08;应用层&#xff09; DFI---深度流检测---一种基于流量行为的应用识别技…

SpringCloud(17)之SpringCloud Stream

一、Spring Cloud Stream介绍 Spring Cloud Stream是一个框架&#xff0c;用于构建与共享消息系统连接的高度可扩展的事件驱动微服务。该框架提供了一个灵活的编程模型&#xff0c;该模型建立在已经建立和熟悉的Spring习惯用法和最佳实践之上&#xff0c;包括对持久发布/子语义…

Coze开源软件Windows客户端-coze_desk

字节的coze相信大家都已经有所关注了&#xff0c;最近看到很多公众号在推。笔者也在使用&#xff0c;体验很不错。 这个是官网&#xff1a;https://www.coze.com/。 官网版 应用的样子 三栏式布局&#xff0c;用起来还是可以的。 不过这个是在浏览器端&#xff0c;有时候不小…

springcloud -远程调用方式

如果我们要进行远程微服之间的调用该如何完成呢&#xff0c;本文以案例推动以养老系统中老人支付购买商品为例&#xff0c;一步步实现远程微服务的调用。 目标 微服务之间的调用方式 老人支付 common模块设计 统一返回 package com.wnhz.ssc.common.result;import lombok.G…

书生·浦语大模型全链路开源体系介绍

背景介绍 随着人工智能技术的迅猛发展&#xff0c;大模型技术已成为当今人工智能领域的热门话题。2022 年 11 月 30 日&#xff0c;美国 OpenAI 公司发布了 ChatGPT 通用型对话系统 并引发了全球 的极大关注&#xff0c;上线仅 60 天月活用户数便超过 1 亿&#xff0c;成为历史…

开源人脸检测模型MTCNN简单的例子

阅读本文之前可以先参阅----神经网络中的重要概念 如何快速入门深度学习 当使用MTCNN模型进行人脸检测时&#xff0c;你可以使用Python编程语言和相应的深度学习库来实现。下面是一个简单的例子&#xff0c;演示了如何使用MTCNN模型进行人脸检测&#xff1a; 首先&#xff0c;…

每日学习总结20240227

每日总结 20240227 1.如何将字符串通过串口以十六进制进行传输 将文件名或者文件内容通过串口传输&#xff0c;再解析&#xff0c;拼接成源文件 1.1 文件转换 1.1.1 转十六进制 在Linux中&#xff0c;你可以使用 xxd 命令将文本文件转换为十六进制格式。以下是如何在Linux中…

天翼云登录参数JavaSrcipt逆向

天翼云登录参数 password 、comParam_curTime、comParam_seqCode、comParam_signature JavaSrcipt逆向 目标网站 https://m.ctyun.cn/wap/main/auth/login?redirect/my 目标参数 要逆向的有 password、comParam_curTime、comParam_seqCode、comParam_signature 四个参数 …

【蓝桥杯嵌入式】蓝桥杯嵌入式第十四届省赛程序真题,真题分析与代码讲解

&#x1f38a;【蓝桥杯嵌入式】专题正在持续更新中&#xff0c;原理图解析✨&#xff0c;各模块分析✨以及历年真题讲解✨都已更新完毕&#xff0c;欢迎大家前往订阅本专题&#x1f38f; &#x1f38f;【蓝桥杯嵌入式】蓝桥杯第十届省赛真题 &#x1f38f;【蓝桥杯嵌入式】蓝桥…

软件测试笔记(三):黑盒测试

1 黑盒测试概述 黑盒测试也叫功能测试&#xff0c;通过测试来检测每个功能是否都能正常使用。在测试中&#xff0c;把程序看作是一个不能打开的黑盒子&#xff0c;在完全不考虑程序内部结构和内部特性的情况下&#xff0c;对程序接口进行测试&#xff0c;只检查程序功能是否按…

Web前端3D JS框架和库 整理

在WebGL库和SVG/Canvas元素的支持下&#xff0c;JavaScript变得惊人的强大。几乎可以为网络构建任何东西&#xff0c;包括基于浏览器的游戏和本地应用&#xff0c;许多最新的突破性功能都在3D上运行。 为此&#xff0c;「数维图小编」整理了19个交互式3D Javascript库和框架&am…

开心的金明

好久没发文章了&#xff0c;随着这一题开始2024年吧&#xff01; 题目描述 金明今天很开心&#xff0c;家里购置的新房就要领钥匙了&#xff0c;新房里有一间他自己专用的很宽敞的房间。更让他高兴的是&#xff0c;妈妈昨天对他说&#xff1a;“你的房间需要购买哪些物品&…