かつて米軍に重用されたRTOS「RTEMS」、今や航空宇宙分野で揺るぎない地位に:リアルタイムOS列伝(11)(3/3 ページ)
IoT(モノのインターネット)市場が拡大する中で、エッジ側の機器制御で重要な役割を果たすことが期待されているリアルタイムOS(RTOS)について解説する本連載。第11回は、かつて米国の軍需向けで重用されてきたRTOS「RTEMS」を紹介する。現在は軍需ではなく、航空宇宙分野向けフリーRTOSの座を射止めている。
航空機向けソフトウェア標準のFACEにも積極対応
というわけで前置きが長くなった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.
関連記事
- 連載記事「リアルタイムOS列伝」バックナンバー
- ソニーの「Spresense」が採用するオープンソースRTOS「NuttX」とは
IoT(モノのインターネット)市場が拡大する中で、エッジ側の機器制御で重要な役割を果たすことが期待されているリアルタイムOS(RTOS)について解説する本連載。第9回は、日本になじみがないRTOSシリーズ第3弾として「NuttX」を紹介する。このNuttX、実はソニーのIoTセンシングボード「Spresense」に採用されているのだ。 - 欧州の車載と産業機器でガッチリシェアをつかむRTOS「ERIKA Enterprise」
IoT(モノのインターネット)市場が拡大する中で、エッジ側の機器制御で重要な役割を果たすことが期待されているリアルタイムOS(RTOS)について解説する本連載。第8回は、欧州を中心に車載や産業機器などの分野でガッチリとシェアをつかんでいるRTOS「ERIKA Enterprise」を取り上げる。 - 日本で話題にならない中国発のRTOS「RT-Thread」がじわじわと勢力拡大中
IoT(モノのインターネット)市場が拡大する中で、エッジ側の機器制御で重要な役割を果たすことが期待されているリアルタイムOS(RTOS)について解説する本連載。第8回は、日本以外でじわじわと人気が出始めているRTOS「RT-Thread」を取り上げる。 - インテルのIoT戦略から生まれたRTOS「Zephyr」は徒花で終わらない
IoT(モノのインターネット)市場が拡大する中で、エッジ側の機器制御で重要な役割を果たすことが期待されているリアルタイムOS(RTOS)について解説する本連載。第7回は、IntelのIoT戦略から生まれたRTOS「Zephyr」を取り上げる。 - 買収の果てにオープンソース化した「Micrium μC/OS」、実は使い勝手がいい!?
IoT(モノのインターネット)市場が拡大する中で、エッジ側の機器制御で重要な役割を果たすことが期待されているリアルタイムOS(RTOS)について解説する本連載。第6回は、ミッションクリティカルな用途でも広く用いられている「Micrium μC/OS」を取り上げる。