Autosar APでのRustアプリ関係の仕様書を読んでみた(R23-11)
初めに
本記事はR23-11で出てきたAutosarのドキュメントを説明します。また、できるところは深堀します。
※内容に関しては順次追加する予定です。
記事の要旨
Autosar APにおけるRustアプリのお作法について記載してます。
「1 Introduction」ではRustを導入するための動機、
「4 Rust language tutorials」では次の「5 Tour of AUTOSAR with Rust」の前段となる通常のRust環境に関する解説、
「5 Tour of AUTOSAR with Rust」ではAutosar AP上でのRustアプリの使いこなしの詳細、
「6 In depth discussion」はアプリをどういう風にリンクするかなどの込み入ったトピック、
といった構成です。
前提となる項目
AutosarやRustについては本記事では割愛させていただきます。
個人的にはAutosarに関してはVectorかMonoist辺りの記事や動画を漁ると幸せになれると思います。
一言で言うならAutosarは車載プラットフォームのようなものです。
車載システムは長らくはアセンブラまたはC言語で開発してきましたが、Autosar APに代表されるようにC++でも開発されてきて、さらにこの記事で紹介するドキュメントのようにRustも取り入れ始めています。
それに呼応してか偶然かFerroceneのRustのコンパイラ含むツールチェーンがISO26262の認証を取得しています。
車載でRustが使われ出すのは20年後くらいかと思ってましたが意外と近い将来かもしれませんね。
ドキュメントの中身
1 Introduction
ここでAutosarがRustを導入するモチベーションについて語ってます。
どうやらAP自体は従来通りC++で実装し、その上のAdaptive ApplicationをRustでも実装できるようにしようという試みみたいです。
一応、2022年時点でWG-SAFがRustの導入については検討していたみたいでそれと関係あるかもしれません。
Autosar側から見たC++とRustの認識はこんな感じらしい。
「Language design focus」の部分はC++は速度と自由度の高さに全振りなのに対してRustの場合は信頼性にもフォーカスしているという評価だが実測した結果、そこまで大きな差はなさそうに見えます(C++のほうがわずかに早い?)。
ara::comを例にとるとRust向けにラッパーをかます構成みたいです。
RustのアプリとAutosarのAPIを直接つなげずそれ用の層を用意するらしいです。
RustもC++もC言語と互換性を持たせることが可能なのでそれを利用するとか。
例えばara::comならこういう感じ。
5 Tour of AUTOSAR with Rust
作成中
6 In depth discussion
作成中
Discussion