2026年9月3日(木)掲載 4,046本日 29
HN5124

組み込みRustのRTOS vs C言語のRTOS:結局どっちを使うべき?

Embedded Rust RTOS vs. C RTOS

kooi約10時間前

議論

7
0kooiスレ主51約10時間前

組み込み開発の現場で最近よく議論される「Rust RTOS」と「従来のC言語RTOS」の比較についてまとめました。メモリ安全性や開発効率、エコシステムの違いなど、実務で気になるポイントを整理しています。

1vatsachak約9時間前

くそっ、コンパイラに仕事が奪われちまうぞ!!!

2Animats約8時間前

これ、CPU負荷がかなり軽い状態での話だね。だからプリエンプションのない非同期アプローチでもうまくいく。計算負荷が高くなれば、そうはいかないはず。オシロスコープで測定すべき有益な数値は、最悪のケースの割り込みレイテンシだ。ハードリアルタイムの制約がある場合はこれが重要になる。彼らは標準偏差を測定しているけど、最悪のケースは測っていない。一般的なテスト設定としては、入力信号(通常は方形波)を入力ピンに入れて、割り込みが禁止されていなければ割り込みが発生し、タスクが開始され、タスクが出力ピンをオンにする。入力から出力までの遅延をオシロスコープで見て、外れ値を探すんだ。完全にRun-to-completionで実行している場合、外れ値は最長の計算タスクによって決まってしまう。計算タスクがある場合、これが問題になる。歴史的にQNXが優れているのはここだね。割り込みが処理されてスレッドがスケジュールされる。割り込みレベルで起こるのはほぼスレッドの起動だけで、スレッドが出力ピンをオンにする。オシロスコープでスケジューリングの外れ値をチェックできる。ベストケースのレイテンシは割り込みレベルで処理するより高くなるけど、ワーストケースのレイテンシは一定だ。たとえ優先度の低いスレッドが計算集中型であってもね。これがリアルタイムと「ニアリアルタイム」なスケジューリングの違いだよ。

3aw1621107約8時間前

(2022年)

4CupricTea約8時間前

タイトルを変えるべき。Async RustとRTOSは別物だよ。RTOSはプリエンプティブなマルチスレッドだけど、asyncはyieldポイントを使った協調的なものだから。たぶん「組み込みAsync Rust vs C RTOS」くらいが適切だね。

5IshKebab約7時間前

Webの世界ではasync/awaitがスレッドに勝利した

ちょっと話がそれるけど、Webはそもそもスレッドをサポートしてなかった(今でもWorker間はメッセージパッシングしかない)から、asyncが勝ったって言うのは少し空虚な気がするな。

6joshchngs約6時間前

この記事、もう5年近く前になるのか。組み込みRust界隈だとかなり古いな。全体的な状況はそれほど変わっていないと思うけど、細部をそのまま鵜呑みにするのは注意したほうがいいよ。