「FreeRTOS」とμITRON仕様のRTOS「μC3」
はじめに
ここ数年、以前にも増して、「オープンソース」や「FreeRTOS」の事をよく耳にするようになりました。
実際、オープンソースのソフトウェアを活用して、誰もが簡単にモノづくりできるようになったと思います。
代表的なものとしては、米Amazonが2017年にReal Time Engineersから買収したFreeRTOSです。
この買収により、ライセンス形態がGPLからMITライセンスになり、「著作権及びMITライセンスの全文を表示」さえすれば改変・再配布・商用利用・有償提供ができるようになりました。
また現在、多くの半導体ベンダーが標準サポートするようになり、ユーザーからの敷居は以前と比べると大分下がってきているように思います。
しかし、物事には必ず裏と表があります。
FreeRTOSの表が「無料」や「簡単」だとしたら、裏には「自己責任」という見過ごされがちですがプロジェクトの成功を左右する重要な一面があります。
当コラムの概要
今回、こちらのコラムでは、FreeRTOSのメリット・デメリットや当社のμC3との比較について、
「FreeRTOSのメリット・デメリットを知りたい」
「初期費用を抑えるためにオープンソースを使用するように言われたが不安」
…という方を対象に述べる内容となっております。皆様のOS選定の一助となれば幸いです。
AWS FreeRTOSとμC3の比較
先ずは、両社のホームページ上の情報で概要を見ていきたいと思います。
AWS Free RTOS | μC3 | |
---|---|---|
仕様 | 独自 | μITRON4.0 |
導入コスト | 無償 | 有償 |
ライセンス | MITライセンス | プロジェクトベース |
ドキュメント | 英語 | 日本語/英語 |
サポート | Amazon AWS | eForce |
受託やカスタム対応 | 3rd party | eForce |
ソフトウェアの構成 | OSSのディストリビューション | 全てeForceが自社開発 |
表1:AWS FreeRTOSとμC3の概要比較
やはり、AWS FreeRTOSの導入コストがゼロという点が魅力的に見えて、上層部から「初期費用を抑えるために、FreeRTOSを検討してみよう!」と、言われた事があるエンジニアの方も少なくないと思います。
ただ、日本語のドキュメントがなく、サポートに関してもどれだけリアルタイムのサポートが受けられるのか、状況に応じて柔軟な対応をして貰えるのかなど、検討時に十分に確認しておくべき内容が多いように思えます。
また、やはりOSSのディストリビューションである点をどう判断するかが重要なポイントになってきそうです。
一方、μC3は商用品になりますのでライセンス費用は発生しますが、ドキュメントは日・英の両方が揃っており、サポートは1営業日以内に1次回答が貰え、カスタム対応など含め、ユーザーの状況に応じて柔軟に対応しています。
次に、OS単体の機能を比較してみたいと思います。
OS単体の機能比較
μITRONの機能リストに対して、該当機能のサポート有/無を〇/×で表しています。
機能(μITRON仕様) | AWS FreeRTOS | μC3/Standard | μC3/Compact |
---|---|---|---|
動的生成 | 〇 | 〇 | × |
タスク管理機能 | 〇 | 〇 | 〇 |
タスク付属同期 | 〇 | 〇 | 〇 |
タスク例外処理 | × | × | × |
セマフォ | 〇 | 〇 | 〇 |
イベントフラグ | 〇 | 〇 | 〇 |
データキュー | 〇 | 〇 | 〇 |
メールボックス | × | 〇 | 〇 |
ミューテックス | 〇 | 〇 | × |
メッセージバッファ | 〇 | 〇 | × |
ランデブ | × | 〇 | × |
固定長メモリプール | × | 〇 | 〇 |
可変長メモリプール | 〇 | 〇 | × |
システム時間管理 | 〇 | 〇 | 〇 |
周期ハンドラ | △ | 〇 | 〇 |
アラームハンドラ | △ | 〇 | × |
オーバーランハンドラ | △ | 〇 | × |
システム状態管理 | 〇 | 〇 | 〇 |
割込み管理 | 〇 | 〇 | 〇 |
サービスコール管理機能 | × | × | × |
システム構成管理 | △ | 〇 | 〇 |
デバイスドライバ管理 | × | 〇 | × |
表2. AWS FreeRTOSとμC3の機能比較
AWS FreeRTOSが〇になっていても、例えば、「タスク付属同期」では起床要求のキューイングがなかったり、「システム状態管理」では優先度回転は対応していなかったりと、誰かに聞けば教えてくれるのではなく実際に使用してみないと気付くことができない部分もあるので、しっかりと事前調査する必要がありそうです。
このように、オープンソースのソフトウェアを検討する時には、事前調査という見えざるコストが有償品のそれよりはるかに多く発生するだけでなく、その結果には自分で責任を持たなければなりません。
それでは最後に、オープンソースのメリットとデメリットを纏めてみましょう。
オープンソースのメリット・デメリット
メリット | デメリット |
導入コストの削減 | 緊急時のサポート |
スタートアップが楽 | 永続性(突然終了することも) |
トレンド追従 | 製品計画が不透明 |
カスタマイズが自由 | 自力でカスタマイズが必要 |
機能が豊富 | 管理者が必要 |
表3.オープンソースのメリットとデメリット
先ずは、メリットになります。
とりわけ導入コストが注目されがちですが、それだけではなく、トレンド追従や豊富な機能を自由にカスタマイズできる点にメリットを感じている方が多いと思います。
次に、デメリットになります。
「何か問題が発生した時、緊急時のサポートはどうなるのか?」
「どっかにボードを持ち込めば、一緒にデバッグしてくれる人はいるのか?」
「不具合時に問題の切り分けはどうすればいい?」
「いつまでも存在するのだろうか」
「自分でカスタマイズするしかないの?」
等々、商用品では直ぐに解が見つかるような事まで検討・確認する必要があります。また、豊富な機能を複合的に利用する際には、そのライセンスに矛盾が生じていないか等、管理コストも大きくなります。
このように、オープンソースのFreeRTOSを導入し初期費用は抑えられたとしても、ライフサイクルコストやTCO(Total Cost of Ownership)を考えると結構なコストアップの要因が潜んでいる事がわかります。
実際に弊社のお客様でも、導入から時間が経過し、出荷数量や仕向地が増え、サポートやカスタマイズ等のコストも増えてしまい、以下の様に、最終的に商用品の方がコストメリットがあるという判断のもと、FreeRTOSからμC3に切り替えた方もいらっしゃいます。
おわりに
今後、トレンド追従などでFreeRTOSだけでなくオープンソースの活用は重要なポイントになってきます。実際に、マルチコアプロセッサ上にLinuxとμC3を共存させる事により、OSSと商用品の双方のメリットを享受できるマルチOSソリューションの需要も伸びてきています。
是非、OS選定の際には、導入コストだけでなく、活用シーンと関連コスト(特に見えにくい部分)を含めたライフサイクルコストを考慮した上で後悔のない部品選定をしていきましょう。