Eclipse iceoryx™ - 真正的零拷贝进程间通信

1 序言

通过一个快速的背景教程,介绍项目范围和安装所需的所有内容以及第一个运行示例。

首先:什么是冰羚?

iceoryx是一个用于各种操作系统的进程间通信(IPC)中间件(目前我们支持Linux、macOS、QNX、FreeBSD和Windows 10)。它起源于汽车行业,在汽车行业,当涉及到驾驶员辅助或自动驾驶系统时,必须在不同的进程之间传输大量数据。然而,高效的通信机制也可以应用于更广泛的用例,例如在机器人或游戏开发领域。

iceoryx使用一种真正的零拷贝共享内存方法,允许在没有单个拷贝的情况下将数据从发布者传输到订阅者。这确保了数据传输具有恒定的延迟constant latency,而不管有效负载的大小。有关更多信息,请查看1000字的iceoryx简介。

中间件是一个混乱的术语,可能是全部,也可能什么都没有。为了更好地了解这对iceoryx意味着什么,请看看我们的目标和非目标

将非类型化的C++和C API想象成一个"管道"("管道"在Git中定义,意思是低级)。我们自己并不使用"管道"API,而是使用类型化的C++API。通常的使用情况是,iceoryx作为高性能IPC传输层集成在一个更大的框架中,并具有额外的API层。这种"美瓷"API的一个例子是ROS 2。

您可以在上找到完整的API文档🌐 https://iceoryx.io.

2 支持的平台

自定义iceoryx平台文章中描述了对新平台的修改或添加。

Operating System 操作系统 Compiler 编译器 supports access rights for shared memory 支持共享内存的访问权限 command line parsing 命令行解析
Linux gcc/clang yes yes
QNX gcc yes yes
MacOS clang no, not planned for implementation yes
Windows 10 msvc no, not planned for implementation will be implemented
FreeBSD (Unix) clang no, not planned for implementation yes

一般来说,unix平台应该使用iceoryx,但我们只在CI上测试FreeBSD。

3 Eclipse iceoryx在哪里使用?

Framework Description
ROS 2 Eclipse iceoryx can be used inside the Robot Operating System with rmw_iceoryx
Eclipse eCAL Open-source framework from Continental AG supporting pub/sub and various message protocols
RTA-VRTE AUTOSAR Adaptive Platform software framework for vehicle computer from ETAS GmbH
Cyclone DDS Performant and robust open-source DDS implementation maintained by ZettaScale Technology
Apex.Ida from Apex.AI Safe and certified middleware for autonomous mobility systems from Apex.AI
AVIN AGNOSAR Adaptive Platform AUTOSAR Adaptive Platform Product from AVIN Systems

4 编译和安装

您可以在此处找到构建和安装指南。

5 例子

在你构建了所有必要的东西之后,你可以继续使用这些例子

6 在Docker环境中构建和运行

如果你想避免在主机上安装任何东西,但你已经安装了Docker,那么可以使用它来构建和运行iceoryx应用程序。

有关如何做到这一点的信息,请参阅专用的README.md

7 质量水平和平台

质量级别为5到1+,其中1+是最高级别。

请参阅质量声明,了解根据ROS 2指南的质量措施的详细信息。

CMake project/target Current Level Target Level QNX Target Level Linux, Windows, macOS
iceoryx_hoofs 2 1+ 1
iceoryx_posh 2 1+, 2 1
iceoryx_dust 2 2 2
iceoryx_binding_c 2 2 2
iceoryx_examples 5 4 4
iceoryx_introspection 5 4 4
iceoryx_meta 5 5 5

7 计划中的功能

了解PLANNED_features.md中即将推出的功能和项目范围。

8 iceoryx实现的绑定和创新

Name Description Technologies
iceoryx-rs Rust binding for iceoryx Rust
iceoryx-automotive-soa Binding for automotive frameworks like AUTOSAR Adaptive ara::com C++
iceoryx-gateway-dds Gateway for Cyclone DDS DDS
iceray An iceoryx introspection client written in Rust Rust
Larry.Robotics An iceoryx demonstrator for tinker, thinker and toddler Demonstrator
相关推荐
橘色的喵20 天前
Iceoryx2:高性能进程间通信框架(中间件)
中间件·rust·高性能·iceoryx·iceoryx2