FreeRTOS は組み込みシステム用のオープンソースのリアルタイムオペレーティングシステム (RTOS) 。いくつものマイクロコントローラに移植されている。
ライセンス
バージョン9までは例外条項付きGPLの下で配布されていた。
例外条項は、カーネルそのものがオープンソースである場合にはユーザのコードをクローズドソースにしておくことができるという内容である。[2]
Amazon.comに買収された後のバージョン10からはMITライセンスを採用している。
サポートされているアーキテクチャ
サポートされているアーキテクチャは以下のようである[3]。
概要
FreeRTOSは小さく単純であるように設計されている。
カーネル自体は3つあるいは4つのC言語によるファイルのみからなっている。
コードを読みやすく、移植しやすく、メンテナンスしやすくするために、ほとんどC言語で書かれている。
しかし、アーキテクチャ独自のスケジューラルーチンを中心に、必要な部分には少ないがアセンブリ言語が使われている。
ダウンロードできる配布物では、既に設定がなされており、
全ての移植先に対してのデモンストレーションとコンパイラが含まれている。
これにより、すばやくアプリケーションをデザインできる。
FreeRTOS.orgウェブサイトはRTOSについてのチュートリアルや、
設計の詳細と様々なマイクロコントローラでのパフォーマンスの比較結果を掲載している。
以下が主要な機能である。
- 小さく単純である。オペレーティングシステムに慣れていない者にも適している。
- スケジューラはプリエンプティブマルチタスクと協調的マルチタスクの両方に設定できる。
- コルーチンサポート (FreeRTOSにおけるコルーチンとは、非常に単純で軽量なタスクであり、スタックの使用は極めて制限されている)
SafeRTOS
FreeRTOSから派生したSafeRTOSと呼ばれるスピンオフしたプロジェクトがある。
SafeRTOSはFreeRTOSのコードをベースとしているが、
IEC 61508に定める安全性に関連するアプリケーションで使用できるように
アップデートやドキュメントの作成、テスト、検査されている。
OpenRTOS
関連するもう一つのプロジェクトはOpenRTOSである。これはFreeRTOSのコードベースを基にしているが、
ライセンスが異なっている。
OpenRTOSはFreeRTOSからGPLへの言及とGPLによる実装をすべて取り除いたものである。
たとえば、商用製品にFreeRTOSを組み込んだ場合には、製造者はFreeRTOSを使用していることを意識し、
利用者が要求すればGPLの規定によりソースコードを開示提供しなければならないが、OpenRTOSを採用している場合にはそのような制約がない。
脚注
関連項目
外部リンク