RTEMS(Real-Time Executive for Multiprocessor Systems)は、
組み込みシステム用に設計された、フリーでオープンソースの
リアルタイムオペレーティングシステム(RTOS)です。その名称は、当初「Real-Time Executive for Missile Systems」の略でしたが、後に「Real-Time Executive for Military Systems」となり、現在の頭字語へと変化しました。RTEMSの開発は
1980年代末に始まり、
1993年頃にはFTPでダウンロード可能になりました。現在、RTEMSプロジェクトは、OAR Corporationがユーザー代表を含む運営委員会と協力して運営しています。
RTEMSは、リアルタイム性が求められる
組み込みシステム向けに特化しており、以下に示す幅広いプロセッサアーキテクチャに対応しています。
ARM
Atmel AVR
Blackfin
Freescale ColdFire
TI C3x/C4x DSPs
H8/300
Intel 80386、Pentium、およびそれ以降のx86アーキテクチャ
Lattice Mico32
68k
ルネサス エレクトロニクス M32C
ルネサス エレクトロニクス M32R
MIPS
Nios II
PowerPC
ルネサス エレクトロニクス
SuperH
SPARC
RTEMSは、
POSIXやμITRONといった各種オープンAPI標準をサポートするように設計されています。元々のAPIは、Real-Time Executive Interface Definition(RTEID)仕様に基づいた「Classic RTEMS API」と呼ばれています。さらに、FreeBSDのTCP/IPスタックや、NFS、FATなどの様々なファイルシステムもサポートしています。
RTEMSは、
メモリ管理や
プロセス管理は行いません。
POSIXの用語で言うと、シングルプロセス・マルチスレッド環境を実装しています。そのため、
POSIXサービスのうち、メモリマッピング、プロセス生成、共有メモリといった関連機能は提供されていません。RTEMSは、
POSIX Profile 52、すなわち「シングルプロセス、スレッド、ファイルシステム」にほぼ相当すると言えます。
RTEMSは、そのリアルタイム性と柔軟性から、様々な分野で利用されています。特に、EPICSコミュニティでは、RTEMSのサブミッタとして活動している人が複数います。また、宇宙開発分野では、
SPARC、ERC32、LEON、MIPS Mongoose-V、Coldfire、
PowerPCといったマイクロプロセッサが使用されることが多く、RTEMSがその能力を発揮しています。例えば、
マーズ・リコネッサンス・オービターでは、ElectraソフトウェアラジオにRTEMSが採用されています。
RTEMSは、修正版GPLライセンスで配布されています。このライセンスの特筆すべき点は、RTEMSオブジェクトと他のファイルをリンクした場合でも、実行ファイル全体をGPLとする必要がないという点です。この点は、
GNAT Modified General Public Licenseに準拠していますが、
Ada言語に限定されるものではありません。
関連情報
公式サイト
公式ウィキ
*
RTEMS Centre