かつて米軍に重用されたRTOS「RTEMS」、今や航空宇宙分野で揺るぎない地位に:リアルタイムOS列伝(11)(3/3 ページ)
というわけで前置きが長くなったRTEMSであるが、RTOSとしての特徴は以下の通りである。
- マルチスレッド対応。ただしスレッド全体で1つのメモリ空間を共有。カーネル/ユーザー空間の違いもなし。MMUによるメモリ保護機能は搭載
- Classic API(RTEMS API)の他、POSIX(pthread付き)やC11/C++11、Newlib/GCCなどに対応する。かつてはμITRONの互換APIも搭載されていたのだが、Version 4.11で廃止された
- プログラミング言語としてC/C++/ラダー/Erlang/Fortran/Python&MicroPythonに対応。またEMB/Google Go/OpenMPなどのパラレル言語環境にも対応する
- スレッド間同期/通信メカニズムとしてMutex(ロック有り無し両対応)、カウンタ付きSemaphore、Binary Semaphore、Event、Message Queue、Barrier、OpenMPで利用するFutex(Fast User-Space Locking)、libbsdで提供されるEpoch Based Reclamationなどをサポートする
- スケジューラーは固定時間/ジョブレベルのプライオリティベース/固定プライオリティベースなどが標準提供され、また新たなスケジューラーを組み込むためのフレームワークも用意される
- システム構成はリンク時に決定され、グローバル変数などもやはりリンク時に設定される
- メモリ管理はFirst-fitベースのものの他、libbsdで提供されるUMA(Universal Memory Allocator)のものも用意される
- ファイルシステムとしてIMFS/FAT/RFS/NFSv2/JFFS2(NORフラッシュ用)/YAFFS2(NANDフラッシュ用)が提供される
- 標準的なドライバとしてはTermios(シリアル経由のコンソール接続)、I2C/SPI/Network Stack(TCP/IPのほかlwIPなども提供)、USB stack、SD/MMCカードstack、フレームバッファー(Qtなどによる画面描画用)などが用意される
libbsdが提供されるので、FreeBSD風の書き方をすることでアプリケーションが簡単に記述できるのも特徴の一つといえるだろう。
最新のRTEMSはVersion 5.1となるが、サポートするアーキテクチャは、以下のように新旧取り混ぜている格好だ。
- Arm(ARMv4T/Armv5/Armv6/Armv7-M/Armv7-A/Armv7-R)
- Atmel AVR
- ADI Blackfin
- Adaptiva Epiphany(Version 5.1でサポート終了であり、Version 6.1でサポート廃止予定)
- Intel/AMD x86(32ビットのみ:64ビット対応に関してはプロセッササポートも含めて現在作業中)
- Lattice Mico32
- Renesas M32C(Version 5.1でサポート廃止)
- Motorola/Freescale MC68xxx&Coldfire
- Xilinx MicroBlaze(SMP未サポート)
- MIPS(旧IDTで移植作業を行ったようで、今のところIDT Orionシリーズのみが対象)
- Altera Nios II(SMP未サポート)
- OpenRISC 1000
- PowerPC(主に旧Freescaleのものだが、旧IBMのPowerPC 403もまだサポート対象として残っている)
- RISC-V(RV32/RV64ともに対応)
- Renesas SuperH(SH1〜SH4まで)
- SPARC(SPARC Version 7/8)
- SPARC-64(UltraSPARC I〜IVまで)
PowerPCやSPARCに関しては、特に航空宇宙向けで現在広く利用されている(SPARCについては、ESA/Cobhamの「LEON」の記事を以前にTechFactoryで公開しているのでご参照いただきたい。PowerPCはTeledyne e2vが航空宇宙向けに現在積極的に投入している)ので、実際にターゲットとして利用される頻度が多いためだろう。これに限らず、何しろもともとが軍用あるいは航空宇宙向けということもあって、現在もこうした分野での利用が非常に多いのがRTEMSの特徴でもある。
最近だと、航空宇宙関連に関しては、航空機向けソフトウェアの標準化を進めるべく2010年に設立されたコンソーシアムのFACE(Future Airborne Capability Environment)への対応をどうするかという話がしばしば出てくるが、RTEMSはこのFACE対応に関しても積極的に対応している。これはRTEMSが、というよりはむしろOAR Corporationが積極的に対応し、その結果をRTEMSにフィードバックしているという格好だ。
そんなわけで、連載第9回で紹介したERIKA Enterpriseが自動車メーカー向けのフリーなRTOSの座を揺るぎないものにしているのと同様に、RTEMSは航空宇宙分野におけるフリーなRTOSの座をきっちり射止めた格好である。
Copyright © ITmedia, Inc. All Rights Reserved.