多操作系统跨社区生态融合发展的探索与实践

09/05 18:00
阅读数 69
背景

不同的物理设备、使用场景以及客户需求造就了不同类型的操作系统,而软件开发、部署和运维架构与技术更新迭代、世界范围内开源软件蓬勃发展、以及商业市场激烈竞争等因素促进了操作系统多样化的趋势。但操作系统的多样性仿佛是一片绚丽缤纷的花园,虽然丰盛多彩,却也暗藏荆棘。不同操作系统之间存在着生态割裂、社区离散、商业壁垒等诸多问题,本文仅从技术角度分析操作系统多样性给用户和开发者带来的主要消极影响与有益探索:

1)分工协同问题
随着物联网、智能化等需求的持续增长,基础软件系统的复杂性不断提升,单一操作系统难以满足所有功能需求的问题越发突出。为解决此问题,就必须采用一种保障不同操作系统可靠地、高效地、灵活地开展协同合作,比如视窗系统专注于用户界面,Linux负责网络通信与管理,实时操作系统提供高实时性和高可靠性。而实现方式必须具备易开发、易部署和易扩展的特性。
2)互操作性问题
由于不同的设备运行不同的操作系统,设备之间也没有统一的抽象逻辑,导致业务系统的开发必须要关注到操作系统、网络协议等底层的逻辑,创新效率低下。在多种不同的操作系统环境往往出现孤岛化现象,从而导致软件和数据的互操作性下降。
3)平台锁定问题
在某些情况下,用户可能被锁定在特定的操作系统上,因为他们使用的软件或服务只在该平台上可用。这种情况会导致用户体验的割裂,使得用户在不同平台之间切换变得困难。同时,为了支持多种不同的操作系统,开发者需要花费更多的时间和资源,以适应每个平台的特性,可能导致开发的复杂性提高和成本增加。
为了探索多操作系统跨社区生态融合发展的路径,润和软件选取OpenAtom openEuler(简称"openEuler")OpenAtom OpenHarmony(简称"OpenHarmony")两大项目完成了单硬件多系统融合与多硬件多系统间互联互通。其中,openEuler旨在提供一个高性能、稳定和安全的计算、通信和管理平台;OpenHarmony为用户带来直观、友好的跨平台交互体验。

基于混合部署框架的openEuler与OpenHarmony高效协同
openEuler Embedded 23.09版本中提供了混合关键性部署框架MICA,能够实现管理域和实时域的部署+隔离+调度,但无法满足工业控制、航空航天等领域在高效、安全、稳定的人机交互界面的需求。基于此背景,2024年初,润和软件和openEuler社区联合一起移植适配了OpenHarmony,在混合部署框架中增加了HMI域。
1)技术介绍
混合关键性系统可以总结为部署+隔离+调度;通过多OS的混合部署实现资源的隔离与保护,最后通过混合关键性调度提升资源利用率,具体可以映射到混合部署框架和嵌入式虚拟化。
1. 混合部署框架解决高效地混合部署问题和高效地通信与协作问题;
2. 嵌入式虚拟化解决高效地隔离与保护问题和高效地资源共享与调度问题。
在openEuler Embedded 24.03中,混合部署框架中增加了基于OpenHarmony 3.2版本的HMI域,OpenHarmony可以向用户提供完整的图形化界面和操作入口。管理域openEuler与实时域zephyr通过共享内存ivshmem完成信息交互,同时管理域的openEuler域与HMI域的OpenHarmony通过分布式软总线实现互联互通;具体如下图所示:

2)案例展示

基于混合部署架构实现管理域+HMI域+实时域

基于分布式软总线的openEuler与OpenHarmony互联互通
为促进与OpenHarmony生态的合作与互通,实现端边领域的互联互通,首次在openEuler Embedded 22.03中引入分布式软总线(3.1.2版)技术。2023年3月,为了更好地发展以分布式软总线为代表的系统间生态互通技术,润和软件与openEuler社区共同发起并组建了分布式中间件SIG(SIG Distributed Middleware)。
1)技术介绍
Linux平台通信长期依赖偏低层的IPC技术或者单一用途的老旧总线实现(如下表示),缺乏相对开发者比较友好的进程间(跨主机)通信框架。

IPC

Pipe

只能以半双工的形式在进程间进行通信

Signal

侧重更具信号触发控制进程的行为

Message  Queue

传输信息量载体较少

Signal

主要用于信号量值的变化来控制多进程互斥的访问共享资源

Sharing  Memory

支持大量数据且速度快,但多个进程对共享内存块的访问必须以互斥形式进行,需要信号量机制配合

RPC&xBus

Socket

网络操作系统必不可少的基础技术

Desktop  COmmunication Protoco

主要利用其控制KDE应用程序

D-Bus

设计被用来作为用户交互接口与系统服务之间的解耦和通信,以及系统服务之间的通信。

U-Bus:

类似于Linux桌面系统的D-Bus,KD-Bus:在内核里实现的D-Bus

FD-Bus

提供了分布式的进程间通信机制,支持跨主机的C/S通信; 不提供自发现、组网、跨协议等高阶特性

当前,我们需要的不仅仅是IPC机制,更需要提供跨平台的且功能丰富的中间件开发框架,比如支持复杂数据类型、使用服务名的自主寻址方式、安全策略等。分布式软总线被设计作为多设备终端的统一基座,为设备间的无缝互联提供了统一的分布式通信能力,实现了设备间无感发现和高效传输,为端边领域的互通和协同提供了可靠信道。

分布式软总线的核心功能可总结为发现、组网、连接和传输四个基本模块,此外,全量的分布式软总线还涉及启动与服务管理、安全子系统、分布式硬件等等,具体可参见下图,其中淡蓝色标记模块已完成从OpenHarmony往openEuler移植适配,深蓝色标记部分涉及分布式化改造,灰色标记部分当前状态为未完成移植适配工作。

2023年润和软件与openEuler社区一起完成了分布式软总线新版本移植适配,实现了openEuler与OpenHarmony互联互通。其中,润和软件率先完成并贡献了softbus 3.2版本交叉编译工具链、多组件启动beget、组网认证管理工具device_manager、服务管理sa_fwk&sa_samgr、日志组件Hilog多个软件包。
此外,润和软件与openEuler社区一起积极探索尝试了基于分布式软总线的openEuler与OpenHarmony两者场景化应用,先后实现了跨系统的分布式数据、分布式硬件、分布式屏幕等高阶中间件能力;后续将推进softBus及其扩展部件成为与大数据数据库、人工智能框架一样的标配基础组件(如下图所示);同时基于该中间件支持高效、简洁地开发分布式应用。

3)商业改造

分布式软总线起源于面向强交互的移动终端设备的OpenHarmony社区,其功能设计与内部实现并不能完全满足面向高可靠、高性能等需求的openEuler。因此,润和软件积极对其进行了功能强化、安全增强以及生态兼容等方面的优化改造,主要内容请参考下图。

此处用2个案例加以说明:

  • 在移动或者家庭场景下,所有设备组网均在局域网同网段内,因此,OpenHarmony原生支持的分布式软总线不支持设备的跨网段联通。但是openEuler适用的场景往往基于业务或者安全需要而做了逻辑网段隔离,为了解决此类问题,必须支持跨子网段间发现、组网和通信。

  • 在移动或者家庭场景下,无论体积大小或者算力强弱,设备一般均为有屏幕显示,因此OpenHarmony原生支持的分布式软总线基于PIN码验证组网的方式很好地契合了其强交互特征。但是openEuler适用的设备往往没有屏幕显示,因此,必须开发其它安全认证机制。

4)案例展示

案例1 分布式硬件(摄像头)跨平台算力协同

案例2 分布式屏幕(计算器)跨平台显示协同

案例3 分布式应用(计算器)跨平台计算协同

本文分享自微信公众号 - OpenAtom openEuler(openEulercommunity)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
0 评论
0 收藏
0
分享
返回顶部
顶部