- - PR -
第1回では、リアルタイムLinuxのさまざまな実現方法について述べた。今回は、マイクロカーネル方式を中心に性能比較なども交えて説明する。
マイクロカーネル方式とは
マイクロカーネル方式の実装としては、RTLinuxとRTAIが有名であり活用例も多い。
RTLinuxは、FSMLabs(http://www.fsmlabs.com/)が提供しているハードリアルタイムLinuxシステムである。商用版のRTLinuxProとオープンソース版のRTLinux/GPLがあるが、今回は広く入手可能なオープンソース版を評価する。
一方、RTAI(Real-Time Application Interface)は、DIAPM(Department of Aerospace Engineering of Politecnico di Milano)で開発され、オープンソースプロジェクトとして進化を続けている(http://www.rtai.org/)。現在は、Adeosと呼ばれるナノカーネル上にLinuxカーネルが実装されている。将来的には、「fusion」と呼ばれるプロジェクトで以下のような機能が統合されていく。
- ユーザー空間のアプリケーションとしてハードリアルタイムを実現
- 既存のRTOSのAPIをスキンと呼ばれる仕組みで統合
特に後者については、RTAI独自のAPIおよびPOSIX APIに加えて、μITRONやVxWorksなどの互換APIへの取り組みも散見される(注)。このように、fusionは非常に興味深いが実験的なリリースであるため、今回はRTAIの最新開発版を評価する。
| 注:fusion 0.6.9(本稿執筆時点における最新版)現在。 |
マイクロカーネルの役割
RTLinux、RTAIともに、Linuxカーネルはマイクロカーネル(またはナノカーネル)の上で動作する。このマイクロカーネルを、RTLinuxは「Realtime executive」、RTAIは「Adeos」と呼んでいる。
マイクロカーネルの主な機能は以下の3つである。
- タスクのスケジューリング
タスクスケジューリングはマイクロカーネルで行う。Linuxカーネルでさえもマイクロカーネル上の1つのタスクとして振る舞い、最も低い優先度が割り当てられている。よって、Linuxカーネルがいかなる処理をしていても、リアルタイムタスクが走行可能な状態になれば、即座に処理を移すことができる。
- ハードウェア割り込みの調停
ハードウェア割り込みは、すべてマイクロカーネルが管理する。ハードウェアから割り込みが通知されると、マイクロカーネル内のハンドラによって処理される。その後、Linuxカーネルが通知された割り込みに対してハンドラを登録している場合は、適切なタイミングでLinuxカーネルに対して割り込みを伝播する。これによりLinuxカーネルは、あたかも割り込みを直接通知されたかのように処理を行うことができる。

図1 割り込み資源の調停(第1回からの再掲)
タスクスケジューリングとハードウェア割り込みの調停機能により、Linuxカーネルの振る舞いに干渉されることなくハードリアルタイム処理を行うことができる。
- タスク間通信
タスク間通信としては、FIFOや共有メモリといった機構が提供されている。特に、Linuxタスクに対しては、Linuxプロセスとリアルタイムタスク間で通信するAPIを定義している。

図2 Linuxとリアルタイムタスク間の通信(第1回からの再掲)
以上のように、ハードリアルタイムな制御はマイクロカーネルの管理下で行い、ネットワークやマルチメディアなどの機能はLinuxカーネル(タスク)の管理下で実現する。これにより、リアルタイム性と豊富な機能を兼ね備えたシステムを構築できる。
関連記事 設計/開発技法
- 特集:Javaは組み込みに“不向き”は本当か?
- 連載:BREWアプリケーション開発入門(全10回)
- 連載:イチから作って丸ごと学ぶ! H8マイコン道(全12回)
- 連載:−ザ・組み込み−ソフトウェアのハードウェア化(連載中)
- 連載:組み込みLinux開発入門(全3回)
- 連載:T-Engineプログラミング入門(全4回)
- 連載:Symbian OS開発の勘所(全10回)
- 連載:Symbian OSアプリ開発の手引き(連載中)
- 連載:解説! ロボット開発環境Robotics Studio(全4回)
- 連載:Robotics Studio活用術 はじめて作るサービス(全5回)
- 連載:生産性向上への道 Eclipseで行うC/C++開発(全4回)
組み込み開発フォーラム 新着記事
- フルスクラッチの“Hello World”を動かしてみよう(2011/3/31)
- FlexRayプロトコルの概要(その2)(2011/3/29)
- JASA、東北地域に拠点を置く会員企業を支援(2011/3/25)
- NEC、震災の影響を受けた4拠点の生産再開を発表(2011/3/23)
- 内部ブロック図の基礎と共通要素(2011/3/22)
- インテル、被災地におけるITインフラの復旧を支援(2011/3/22)
- Facts on AUTOSAR/AUTOSAR導入の現実(2011/3/18)
- 計測器・震災被害ホットラインを開設、テクトロニクス(2011/3/18)
- ZMP、地震の揺れを多角的に計測するアプリ無償配布(2011/3/16)
- メンター、3Dテレビ・マルチメディア検証プラットフォーム(2011/3/16)
- 【番外編】タチの良い計測値、悪い計測値とは?(2011/3/15)
- tarファイルシステムをAndroidに組み込む!!(2011/3/10)









