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

Eclipse iceoryx™ - 真正的零拷贝进程间通信_第1张图片

1 序言

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

        首先:什么是冰羚?

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

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

Eclipse iceoryx™ - 真正的零拷贝进程间通信_第2张图片

        中间件是一个混乱的术语,可能是全部,也可能什么都没有。为了更好地了解这对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

你可能感兴趣的:(iceoryx冰羚,冰羚,iceoryx,零拷贝共享内存,恒定的延迟)