【系统架构设计师】二十二、嵌入式系统架构设计理论与实践③
目录
一、鸿蒙操作系统架构案例分析
1.1 鸿蒙操作系统定义
1.2 鸿蒙的层次化分析
1.2.1 内核层
1.2.2 系统服务层
1.2.3 框架层
1.2.4 应用层
1.3 鸿蒙操作系统的架构分析
1.3.1 鸿蒙操作系统架构具有4个技术特性
1.3.2 分布式架构所带来的优势
1.3.3 HarmonyOS 架构的系统安全性
二、面向安全攸关系统的跨领域 GENESYS 系统架构案例分析
2.1 GENESYS 定义
2.2 GENESYS 架构
2.3 GENESYS基于消息的构件接口
2.4 GENESYS 三级集成
往期推荐
一、鸿蒙操作系统架构案例分析
1.1 鸿蒙操作系统定义
鸿蒙操作系统 (HarmonyOS) 是华为公司研制的一款自主版权的操作系统,是一款“面向未来”、面向全场景(移动办公、运动健康、社交通信、媒体娱乐等)的分布式操作系统。在传统的单设备系统能力的基础上, HarmonyOS 提出了基于同一套系统能力、适配多种终端形态的分布式理念,能够支持多种终端设备的能力。
鸿蒙 (HarmonyOS) 整体采用分层的层次化设计,从下向上依次为:内核层、系统服务层、框架层和应用层。系统功能按照“系统”→“子系统”→“功能/模块”逐级展开,在多设备部署场景下,支持根据实际需求裁剪某些非必要的子系统或功能/模块,如下图所示:
1.2 鸿蒙的层次化分析
1.2.1 内核层
内核层主要由内核子系统和驱动子系统组成。
内核子系统: HarmonyOS 采用多内核设计,支持针对不同资源受限设备选用适合的 OS 内核。内核抽象层 (Kernel Abstract Layer,KAL)通过屏蔽多内核差异,对上层提供基础的内核能力,包括进程/线程管理、内存管理、文件系统、网络管理和外设管理等。
驱动子系统:HarmonyOS 驱动框架 (HDF) 是HarmonyOS 硬件生态开放的基础,提供统一外设访问能力和驱动开发、管理框架。
1.2.2 系统服务层
系统服务层是HarmonyOS 的核心能力集合,通过框架层对应用程序提供服务。该层包含4个部分:系统基本能力子系统集、基础软件服务子系统集、增强软件服务子系统集和硬件服务子系统集。
系统基本能力子系统集:为分布式应用在 HarmonyOS 多设备上的运行、调度、迁移等操作提供了基础能力。
基础软件服务子系统集:为HarmonyOS 提供公共的、通用的软件服务。
增强软件服务子系统集:为HarmonyOS 提供针对不同设备的、差异化的能力增强型软件服务。
硬件服务子系统集:为HarmonyOS 提供硬件服务。
1.2.3 框架层
框架层为HarmonyOS 的应用程序提供了Java/C/C++/JS 等多语言的用户程序框架和Ability框架,以及各种软硬件服务对外开放的多语言框架API;同时为采用HarmonyOS 的设备提供了C/C++/JS 等多语言的框架API, 不同设备支持的 API与系统的组件化裁剪程度相关。
1.2.4 应用层
应用层包括系统应用和第三方非系统应用。 HarmonyOS 的应用由一个或多个 FA(Feature Ability)或PA(Particle Ability) 组成。其中, FA 有 UI界面,提供与用户交互的能力;而PA 无UI界面,提供后台运行任务的能力以及统一的数据访问抽象。基于FA/PA 开发的应用,能够实现特定的业务功能,支持跨设备调度与分发,为用户提供一致、高效的应用体验。
1.3 鸿蒙操作系统的架构分析
1.3.1 鸿蒙操作系统架构具有4个技术特性
(1)分布式架构首次用于终端 OS,实现跨终端无缝协同体验。
(2)确定时延引擎和高性能 IPC 技术实现系统天生流畅。
(3)基于微内核架构重塑终端设备可信安全。
(4)通过统一 IDE 支撑一次开发,多端部署,实现跨终端生态共享。
1.3.2 分布式架构所带来的优势
在HarmonyOS 架构中,重点关注于分布式架构所带来的优势,主要体现在分布式软总线、分布式设备虚拟化、分布式数据管理和分布式任务调度等四个方面。
分布式软总线是多种终端设备的统一基座,为设备之间的互联互通提供了统一的分布式通信能力;
分布式设备虚拟化平台可以实现不同设备的资源融合、设备管理、数据处理,多种设备共同形成一个超级虚拟终端。针对不同类型的任务,为用户匹配并选择能力合适的执行硬件;
分布式数据管理基于分布式软总线的能力,实现应用程序数据和用户数据的分布式管理。用户数据不再与单一物理设备绑定,业务逻辑与数据存储分离,应用跨设备运行时数据无缝衔接,为打造一致、流畅的用户体验创造了基础条件;
分布式任务调度基于分布式软总线、分布式数据管理、分布式 Profle等技术特性,构建统一的分布式服务管理(发现、同步、注册、调用)机制,支持对跨设备的应用进行远程启动、远程调用、远程连接以及迁移等操作,能够根据不同设备的能力、位置等选择合适的设备运行分布式任务。
1.3.3 HarmonyOS 架构的系统安全性
HarmonyOS 架构的系统安全性主要体现在搭载HarmonyOS 的分布式终端上,可以保证
“正确的人,通过正确的设备,正确地使用数据”。
通过“分布式多端协同身份认证”来保证“正确的人”;
通过“在分布式终端上构筑可信运行环境”来保证“正确的设备”;
通过“分布式数据在跨终端流动的过程中,对数据进行分类分级管理”来保证“正确地使用据”。
二、面向安全攸关系统的跨领域 GENESYS 系统架构案例分析
2.1 GENESYS 定义
GENESYS(GENeric Embedded SYStem) 是一种跨领域的通用嵌入式架构平台。主要解决了当时嵌入式系统所面临的三方面挑战:
复杂性管理的挑战(采用消息交换方式实现软硬件构件的抽象级别的提升);
系统健壮性的挑战(设计出故障或错误的隔离框架);
能量有效使用的挑战(采用综合化资源管理方法)。
GENESYS 整个架构包括两类构成系统:即构件和基础平台。基础平台提供了一种“腰”型核心服务和大量用于实现系统构件的可选择服务的最小集合。
如上图所示,GENESYS 架构主要提供了三组服务,即领域无关服务、领域专用服务和应用专用服务(包括中间件)。领域无关服务又分为核心服务和选择服务;领域专用服务又分为领域专用中心服务 (DSC) 和领域专用选择服务 (DSO)。
(1)核心服务。核心服务是强制性的,是GENESYS 架构实例的一部分。核心服务应包含那些可构造较高级服务或者为了维持该结构性质而不可缺少的服务,它是系统服务中的最小集。
(2)选择服务。选择服务是在核心服务之上构造的。它是一种需要时可以扩展的开放式的集合。
(3)领域专用服务。领域专用服务是由领域特有的选择服务子集加上待开发的领域特征的特定服务组合。
2.2 GENESYS 架构
GENESYS 架构的重要思想是分离计算与通信,将计算构件和通信设施作为独立构件进行
设计。
GENESYS 的通信设施构件是基于消息传输的风格。构件中的基本交往机制是多播单向
消息的交换。消息在发送时刻发出,在某个稍后的时刻达到在接收者那里。每一个消息有专门
标识的发送者和若干个接受者。
GENESYS 架构将构件归为四类:硬件构件和软件构件、系统构件和应用构件。
● 硬件构件的功能使用硬件(如ASIC) 被预先确定,因此不能修改。
● 在软件构件中,将加载在软件构件上的软件称为作业。将作业分配给适当的可以执行该作业的硬件单元就创建了新的构件。
● 系统构件是提供某些架构服务的构件。
● 应用设计者只考虑应用构件的开发。
2.3 GENESYS基于消息的构件接口
基于GENESYS 架构的四类基于消息的构件接口。如下图所示:
链接接口 (LIF):LIF提供了构件与构件之间基于消息的操作服务,它是构件的综合接口。
局部接口 (LI):LI是构件连接到外部环境(如I/O、 其他系统)的接口,它建立了构件和局部环境之间的连接关系。
技术无关接口 (TII):TII是指用于系统运行需要的配置或管理资源的接口,它属于非功能属性范畴。
技术相关的接口 (TDI):TDI是指用于查看构件内部、观察构件的内部变量的接口,如构件诊断。
2.4 GENESYS 三级集成
GENESYS 定义了三级的集成,即芯片级 (Chip Level)、设备级 (Device Level)和系统级 (System Level)。
芯片级的构件是 IP核,IP 核间可通过 NoC(Network of Chip)相互连接;
设备级的构件是芯片,芯片间可以由内部通信芯片互相连接。一个设备可以是在互联网上的一个可寻址实体,也可以是一个IP 地址;
系统级的构件是设备,它们可以由有线或无线通信服务互相连接。
往期推荐
【系统架构设计师】二十二、嵌入式系统架构设计理论与实践①-CSDN博客文章浏览阅读310次,点赞10次,收藏11次。嵌入式操作系统 (Embedded Operating System,EOS)是指用于嵌入式系统的操作系统。通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器等。嵌入式操作系统与通用操作系统相比,具备以下主要特点:可剪裁性,可移植性,强实时性,强紧凑性,高质量代码,强定制性,标准接口,强稳定性,弱交互性,强确定性,操作简捷、方便,较强的硬件适应性,可固化性。https://shuaici.blog.csdn.net/article/details/140791124【系统架构设计师】二十二、嵌入式系统架构设计理论与实践②-CSDN博客文章浏览阅读469次,点赞8次,收藏13次。中间件 (Middleware)属于可复用软件的范畴。顾名思义,中间件处于操作系统软件与用户的应用软件的中间,在操作系统、网络和数据库之上,应用软件之下,其作用是为处于上层应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件。
https://shuaici.blog.csdn.net/article/details/140801697【系统架构设计师】二十一、面向服务架构设计理论与实践①-CSDN博客文章浏览阅读547次,点赞18次,收藏11次。为适应日益增长的用户访问量和产品的快速更新迭代,导致SOA 架构向更细粒度、更通用化程度发展,就成了所谓的微服务了。 SOA 与微服务的区别在于如下几个方面:(1)微服务相比于SOA 更加精细,微服务更多地以独立的进程的方式存在,互相之间并无影响;(2)微服务提供的接口方式更加通用化,例如HTTP RESTful 方式,各种终端都可以调用,无关语言、平台限制;(3)微服务更倾向于分布式去中心化的部署方式,在互联网业务场景下更适合。
https://shuaici.blog.csdn.net/article/details/140764750【系统架构设计师】二十、云原生架构设计理论与实践①-CSDN博客文章浏览阅读1k次,点赞17次,收藏22次。云原生架构是基于云原生技术的一组架构原则和设计模式的集合,旨在将云应用中的非业务代码部分进行最大化的剥离,从而让云设施接管应用中原有的大量非功能特性(如弹性、韧性、安全、可观测性、灰度等),使业务不再有非功能性业务中断困扰的同时,具备轻量、敏捷、高度自动化的特点。云原生的代码通常包括三部分:业务代码、三方软件、处理非功能特性的代码。
https://shuaici.blog.csdn.net/article/details/140695519
相关文章:
【系统架构设计师】二十二、嵌入式系统架构设计理论与实践③
目录 一、鸿蒙操作系统架构案例分析 1.1 鸿蒙操作系统定义 1.2 鸿蒙的层次化分析 1.2.1 内核层 1.2.2 系统服务层 1.2.3 框架层 1.2.4 应用层 1.3 鸿蒙操作系统的架构分析 1.3.1 鸿蒙操作系统架构具有4个技术特性 1.3.2 分布式架构所带来的优势 1.3.3 HarmonyOS 架构…...

【轨物推荐】经济长波:创新周期的历史
原创 丑丑姐姐 专利分析可视化 2021年08月01日 21:18 图片来源:Visual Capitalist 在开始本文之前,我们先来学习两个概念: 经济长波(Long Waves),亦称“大循环理论”、“康德拉季耶夫周期”。经济长波理论…...

springboot高校勤工俭学平台-计算机毕业设计源码66824
摘 要 本研究基于Spring Boot企业框架,设计并实现了一款高校勤工俭学平台,包括首页、通知公告、新闻通知和岗位信息等功能模块。该平台旨在为高校学生提供便捷的勤工俭学信息发布与查询服务,促进校园内部劳动力资源的充分利用和高效管理。在研…...

CRM是什么?如何用CRM管理好客户?
在企业的销售运营中,客户是是贯穿始终的主体。客户的需求、偏好与满意度,指引着企业未来改变、优化的方向。而企业销售运营的核心,就是“客户至上”。 面对庞杂的客户信息,如何快速高效的进行客户管理呢?那就是要有一…...

编程入门:大学新生的指南与策略
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

Spring Cloud中怎么使用Resilience4j Retry对OpenFeign进行重试
在微服务架构中,服务之间的通信是非常频繁的。而使用OpenFeign可以极大简化微服务之间的HTTP通信。但在复杂的分布式系统中,服务之间的调用可能会因为网络问题、服务故障等原因而失败。因此,实现服务调用的重试机制显得尤为重要。Resilience4…...

【Redis 进阶】事务
Redis 的事务和 MySQL 的事务概念上是类似的,都是把一系列操作绑定成一组,让这一组能够批量执行。 一、Redis 的事务和 MySQL 事务的区别 1、MySQL 事务 原子性:把多个操作打包成一个整体。(要么全都做,要么都不做&am…...

Linux的防火墙
一、防火墙概述 防火墙是一种计算机硬件和软件的结合,使internet和intranet之间建立一个安全网关(Security Gateway),从而保护内网免受非法用户侵入的技术。 防火墙主要由服务访问规则、验证工具、包过滤和应用网关4个部分组成。…...

跟张良均老师学大数据人工智能-批量集训营开班中
随着我国大数据和人工智能产业的飞速发展,未来社会对高素质科技人才的需求日益旺盛。为助力广大青少年提前掌握前沿技术,实现自我价值,泰迪智能科技多名优秀老师联合打造暑期大数据人工智能集训营,旨在培养具备创新精神和实战能力…...

2024年音频剪辑必备:五大最佳音频编辑软件精选!
在数字时代,音频剪辑已成为创意表达的重要工具。无论是音乐制作、播客编辑还是视频后期,一款优秀的音频剪辑软件都是不可或缺的。推荐五款备受推崇的音频剪辑工具。 福昕音频剪辑 链接:https://www.foxitsoftware.cn/audio-clip/ 福昕音频…...
Native Programs(本机程序)
Native Programs System Program(系统程序)Config ProgramStake ProgramVote ProgramAddress Lookup Table ProgramBPF LoaderEd25519 ProgramSecp256k1 Program Solana contains a small handful of native programs that are part of the validator im…...
RisingWave 1.10 发布!新增用户自定义聚合函数
我们非常高兴地宣布:RisingWave 1.10 版本正式发布!新版本为大家带来了许多重要更新,例如:新增用户自定义聚合函数 (UDAF)、支持从游标获取多个更新、支持可溢出哈希 Join、增强 CDC 连接器、新增 Sink 连接器等。一起来了解本次更…...

Modbus通讯协议
Modbus通讯协议 Modbus协议是一种用于电子控制器之间的通信协议,它允许不同类型的设备之间进行通信,以便进行数据交换和控制。Modbus协议最初为可编程逻辑控制器(PLC)通信开发,现已广泛应用于工业自动化领…...

fal.ai发布超分辨率模型——AuraSR V2
今天,我们发布了单步 GAN 升频器的第二个版本: AuraSR。 我们在上个月发布了 AuraSR v1,社区的反响让我们深受鼓舞,因此我们立即开始了新版本的训练。 AuraSR 基于 Adobe Gigagan 论文,以 lucidrain 的实现为起点。Gi…...

SYD88xx代码复位不成功和解决办法
原来的复位代码如下: void ota_manage(void){#ifdef _OTA_if(ota_state){switch(ota_state){case 1 : #if defined(_DEBUG_) || defined(_SYD_RTT_DEBUG_)dbg_printf("start FwErase\r\n");#endifCmdFwErase();#if defined(_DEBUG_) || defined(_SYD_RTT_DEBUG_)db…...
加油,为Vue3提供一个可媲美Angular的ioc容器
为什么要为Vue3提供ioc容器 Vue3因其出色的响应式系统,以及便利的功能特性,完全胜任大型业务系统的开发。但是,我们不仅要能做到,而且要做得更好。大型业务系统的关键就是解耦合,从而减缓shi山代码的生长。而ioc容器是…...
RS485 CAN SPI IIC UART RS232这些通信协议传输距离、传输速度对比给出比较顺序-笔记(面试必备)
各类通信协议(RS485、CAN、SPI、I2C、UART、RS232)的传输距离和传输速度各有不同,适用于不同的应用场景。以下是这些通信协议的传输距离和传输速度的对比及排序: 传输距离比较(从长到短) RS485 最大传输距…...

高频JMeter软件测试面试题
近期,有很多粉丝在催更关于Jmeter的面试题,索性抽空整理了一波,以下是一些高频JMeter面试题,拿走不谢~ 一、JMeter的工作原理 JMeter就像一群将请求发送到目标服务器的用户一样,它收集来自目标服务器的响应以及其他统计…...

iptables netfilter
iptables -L --line...
如何使用Python自动发送邮件?
Python 提供了强大的内置库 smtplib 和 email,让我们能够轻松地发送各种类型的电子邮件。本指南将带你逐步了解如何使用 Python 发送邮件,从简单文本邮件到包含 HTML 内容、附件和内嵌图片的复杂邮件。 1. 准备工作: 1.1 安装必要的库 确保…...
uniapp 对接腾讯云IM群组成员管理(增删改查)
UniApp 实战:腾讯云IM群组成员管理(增删改查) 一、前言 在社交类App开发中,群组成员管理是核心功能之一。本文将基于UniApp框架,结合腾讯云IM SDK,详细讲解如何实现群组成员的增删改查全流程。 权限校验…...

【入坑系列】TiDB 强制索引在不同库下不生效问题
文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...
Linux简单的操作
ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...

P3 QT项目----记事本(3.8)
3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...
C++ 基础特性深度解析
目录 引言 一、命名空间(namespace) C 中的命名空间 与 C 语言的对比 二、缺省参数 C 中的缺省参数 与 C 语言的对比 三、引用(reference) C 中的引用 与 C 语言的对比 四、inline(内联函数…...
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...

select、poll、epoll 与 Reactor 模式
在高并发网络编程领域,高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表,以及基于它们实现的 Reactor 模式,为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。 一、I…...

tree 树组件大数据卡顿问题优化
问题背景 项目中有用到树组件用来做文件目录,但是由于这个树组件的节点越来越多,导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多,导致的浏览器卡顿,这里很明显就需要用到虚拟列表的技术&…...
【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统
目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索(基于物理空间 广播范围)2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...
力扣-35.搜索插入位置
题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...