【系统架构设计师】二十二、嵌入式系统架构设计理论与实践③

news2024/9/20 8:16:00

目录

一、鸿蒙操作系统架构案例分析

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

        

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

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

相关文章

康耐视VisionPro GigE相机设置两种方法详细步骤

VisionPro GigE 相机设置方法一 1:关闭防火墙 2:打开 GigE Vision Configuration Tool 2.1:设置网卡巨型帧或者叫大型数据包 2.2:设置网卡 IP、掩码 2.3:设置相机 IP、掩码 VisionPro GigE 相机设置方法二 1:关闭防火墙 2:设置网卡 IP 跟掩码

每日一题~EC168 A+B+C+D

A 题意: 字符串 每一个字符的花费是2,如果ai-1 ai ,那么ai 的花费是1. 现在可以插入一个字符,得到最大花费。输出插入字符之后的字符串。 分析:只需要在相同的连续字符中间插入一个不同的字符就可以了。如果没有连续的相同字符&am…

C++基础知识:构造函数的分类和调用,有参构造和无参构造,有参构造和无参构造,三种调用方式:括号法,显示法,隐式转换法,以及相关代码演示和注意事项

1.构造函数的分类及调用: 2.两种分类方式: 按参数分为: 有参构造和无参构造 按类型分为:有参构造和无参构造 3.三种调用方式: 括号法 显示法 隐式转换法 2.调用方法代码演示 1.括号法代码演示&#xff1a; #include<iostream>using namespace std;//1.构造函数的分类和…

tensorflow2(快速入门)

版本问题 导包 import tensorflow as tf 加载数据 加载并准备 MNIST 数据集。将样本数据从整数转换为浮点数&#xff1a; mnist tf.keras.datasets.mnist (x_train, y_train), (x_test, y_test) mnist.load_data() x_train, x_test x_train / 255.0, x_test / 255.0 搭…

【Cloud Native】数据库新纪元:驾驭关系型与NoSQL的力量

&#x1f407;明明跟你说过&#xff1a;个人主页 &#x1f3c5;个人专栏&#xff1a;《未来已来&#xff1a;云原生之旅》&#x1f3c5; &#x1f516;行路有良友&#xff0c;便是天堂&#x1f516; 目录 一、引言 1、云原生概述 2、数据库在云原生时代的重要性 二、云…

详细分析Flask中的蓝图Blueprint(附Demo)

目录 前言1. 基本知识2. Demo 前言 对于Java的基本知识推荐阅读&#xff1a; java框架 零基础从入门到精通的学习路线 附开源项目面经等&#xff08;超全&#xff09;【Java项目】实战CRUD的功能整理&#xff08;持续更新&#xff09; 1. 基本知识 蓝图&#xff08;Bluepri…

yolo数据集从一种文件夹格式转话成另外一种

1、转化前yolo格式数据集路径结构 2、转化后yolo格式数据集路径结构 3、转化脚本&#xff08;可以直接复制使用&#xff09; import os import argparse import shutil def makdirs(opt,tests_flag):images_train os.path.join(opt.save_root_path, images/train)images_val …

编程入门:大学新生的指南与策略

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

SSH访问控制:精确管理你的服务器门户

“ 在数字世界中&#xff0c;服务器的安全性是任何网络管理员的首要任务。特别是对于远程登录协议如SSH&#xff0c;确保只有授权用户可以访问是至关重要的。 今天&#xff0c;记录两种有效的方法来控制用户对特定服务器的访问&#xff1a;通过sshd_config实现黑/白名单机制和利…

论文解析——Character Region Awareness for Text Detection,字符级文本检测CRAFT算法

这篇论文来自CVPR2019&#xff0c;paper地址&#xff1a;Character Region Awareness for Text Detection。 代码&#xff1a;CRAFT-pytorch。 这篇论文主要解决之前的文本检测是基于word-level的检测框&#xff0c;不能识别任意形状的文本的问题。与之前的方法不同&#xff0…

HID类报表描述符深入理解(需要完善)

参考资料 一篇博文&#xff0c; USB中文网, USB中文网1, HID有关资源&#xff0c; HID报告描述符的基本组成&#xff08;短&#xff09;item 长的item几乎没使用过&#xff0c;和短的item使用方法类似&#xff0c;可根据HID协议查看&#xff0c;使用方式可以参考item介绍 三…

自修室预约小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;学生管理&#xff0c;公告通知管理&#xff0c;自修室管理&#xff0c;座位预约管理&#xff0c;预约取消管理&#xff0c;管理员管理&#xff0c;系统管理 微信端账号功能包括&#xff1a;系统首页&a…

代码随想录训练营 Day17打卡 二叉树 part05 654. 最大二叉树 617. 合并二叉树 700. 二叉搜索树中的搜索 98. 验证二叉搜索树

代码随想录训练营 Day17打卡 二叉树 part05 一、 力扣654. 最大二叉树 给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建: 创建一个根节点&#xff0c;其值为 nums 中的最大值。 递归地在最大值 左边 的 子数组前缀上 构建左子树。 递归…

基于Raft算法的分布式KV数据库:一、开篇

项目描述&#xff1a;本项目是基于Raft算法的分布式KV数据库&#xff0c;保证了分布式系统的数据一致性和分区容错性&#xff0c;在少于半数节点发生故障时仍可对外提供服务。使用个人实现的分布式通信框架mpRPC和跳表数据库skipList提供RPC服务和KV存储服务。 github地址&…

如何在数据埋点中发现和修复数据上报逻辑错误

如何发现和处理数据埋点中的逻辑错误 在大数据分析中,数据埋点是至关重要的一环。然而,当我们遇到数据上报逻辑错误时,该如何应对呢?本文将为你揭示解决这一棘手问题的有效方法。 目录 如何发现和处理数据埋点中的逻辑错误什么是数据上报逻辑错误?如何发现数据上报逻辑错误…

Python酷库之旅-第三方库Pandas(060)

目录 一、用法精讲 231、pandas.Series.reorder_levels方法 231-1、语法 231-2、参数 231-3、功能 231-4、返回值 231-5、说明 231-6、用法 231-6-1、数据准备 231-6-2、代码示例 231-6-3、结果输出 232、pandas.Series.sort_values方法 232-1、语法 232-2、参数…

Flink-StarRocks详解:第三部分StarRocks分区分桶(第53天)

文章目录 前言2.3 数据分布2.3.1 数据分布概览2.3.1.1 常见的数据分布方式2.3.1.2 StarRocks的数据分布方式2.3.1.3 分区2.3.1.4 分桶 2.3.2 创建分区2.3.2.1 表达式分区2.3.2.1.1 时间函数表达式分区&#xff08;自v3.1&#xff09;2.3.2.1.2 列表达式分区&#xff08;自v3.1&…

EAK水冷电阻60kW负载制动电阻器

描述 EAK制动电阻器 液冷电阻器将多余的制动能量转化为有用的热量&#xff0c;因此非常适合电动或混合动力驱动。与传统的风冷制动电阻器相比&#xff0c;水冷可节省高达 88% 的额外空间。作为一个额外的功能&#xff0c;电阻器可以很容易地与无滴漏的快速紧固件连接。由于即使…

注意力特征融合

摘要 https://arxiv.org/pdf/2009.14082 特征融合&#xff0c;即来自不同层或分支的特征的组合&#xff0c;是现代网络架构中无处不在的一部分。它通常通过简单的操作来实现&#xff0c;如求和或拼接&#xff0c;但这可能不是最佳选择。在这项工作中&#xff0c;我们提出了一种…

【Mybatis】浅谈Mybatis的缓存机制,一级缓存和二级缓存

目录 1. 缓存机制介绍 2. 一级缓存 3. 二级缓存 4. mybatis缓存执行流程 1. 缓存机制介绍 MyBatis 的缓存机制是为了提高应用程序的性能而设计的&#xff0c;通过缓存策略来减少数据库的查询次数。MyBatis 提供了两种类型的缓存&#xff1a;一级缓存和二级缓存。 默认情况下…