FreeRTOS

FreeRTOS は組み込みシステム用のオープンソースのリアルタイムオペレーティングシステム (RTOS) 。いくつものマイクロコントローラに移植されている。

ライセンス
バージョン9までは例外条項付きGPLの下で配布されていた。
例外条項は、カーネルそのものがオープンソースである場合にはユーザのコードをクローズドソースにしておくことができるという内容である。

Amazon.comに買収された後のバージョン10からはMITライセンスを採用している。

サポートされているアーキテクチャ
サポートされているアーキテクチャは以下のようである。
 ARM
 ARM7
 ARM9
 Cortex-M0
 Cortex-M3
 Cortex-M4
 Atmel AVR, AVR32
 HCS12
 TI MSP430
 PICマイクロコントローラ PIC18、PIC24、dsPIC、PIC32
 ルネサス H8/S
 インテル x86, 8052
 Coldfire V1, V2
 NXP Kinetis K1x, K2x
 NEC V850, 78K0R
 富士通 FRファミリ(MB91460シリーズ), F2MC-16FXファミリ(MB96340シリーズ)
 RISC-V
 ソフトプロセッサ
 アルテラ Nios II
 ザイリンクス MicroBlaze

概要
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を採用している場合にはそのような制約がない。

脚注

関連項目 

 リアルタイムオペレーティングシステム
 組み込みオペレーティングシステム

外部リンク 
 
 
 

リアルタイムオペレーティングシステム
組み込みオペレーティングシステム
フリーソフトウェアOS