検索
連載

Linux環境でのハードリアルタイムを実現する「RTAI」リアルタイムOS列伝(27)(2/3 ページ)

IoT(モノのインターネット)市場が拡大する中で、エッジ側の機器制御で重要な役割を果たすことが期待されているリアルタイムOS(RTOS)について解説する本連載。第27回は、Linux上でRTOS環境を提供する「RTAI」紹介する。

Share
Tweet
LINE
Hatena

1999年にプロジェクトが開始したものの、もろもろあって2002年に発表

 ちなみにこのADEOSそのものはRTAIとは無関係である。こちらはOpersys創業者であるKarim Yaghmour氏が開発したもので、GPLの形で提供されている。このADEOSの上でRTOS環境を提供しよう、というのがRTAIであり、プロジェクトそのものは2002年9月に発表された。

 発表自体は2002年ではあるものの、その前身は1999年にスタートしている。当初は「PCDOS-DIAPM-RTOS」という名称で、名前の通りMS-DOSとRTOSが共存するもので、動作も16ビットのリアルモード(8086と互換の動作モード)だった。これをLinux(当初のターゲットはKernel 2.0.25)に移行するとともに、32ビットモードに移行させたのが「DIAPM-RTL VARIANT」と呼ばれるトライである。これをベースにLinux Kernel 2.2.xにカーネルパッチを充てる形で開発されたのが「RTHAL-RTAI」で、ここまでは1999年に実装されている。これをベースに、最初のRTAIが1999年4月にリリースされたものの、2001年1月に先述したRT-Linuxの特許が成立したことで、内部的な研究はともかくとして外部にリリースするソフトウェアとしてはこれを利用しにくくなっていた。RTHALが思いっきりこの特許に抵触していたためだ。ところが2002年にADEOSがリリースされたタイミングで、RTHALをADEOSに置き換えて、特許抵触から免れることに成功した。かくしてADEOSを利用する形でRTAIが公式にリリースされることになる。

 余談になるが、このRTAIとよく似た物に「Xenomai」がある。こちらは2001年4月に始まったプロジェクトで、やはりLinuxと共存する形で動作するリアルタイム環境のフレームワークである。似ているということで一度はRTAIにプロジェクトが統合されるものの、目指しているものが微妙に違うということで2005年に再び分離している。RTAIとXenomaiの違いを示したのが図4で、その結果としての両者の特徴をまとめたのが図5である。RTAIのメリットは性能の高さ(特に割り込み処理時間の短さ)であり、本当にハードリアルタイムを実現するならRTAIの方が有利、というわけだ。

図4
図4 「Xenomai」は移植性優先ということで、完全にRTOS部分がハードウェアと分離しているが、RTAIは性能優先で一部直接ハードウェアにアクセスできるところが異なる[クリックで拡大]
図5
図5 開発者に関係あるか? というと微妙ではあるが、移植性は「Xenomai」の方が高く、その分ターゲットも多くサポートされているというのはまぁXenomaiの方が有利ではある[クリックで拡大]

 ちなみにRTAIには割り込みのレイテンシを測定するツールも用意されており、ベストケースの数字も出ている。平均だと3.2μsec、最大でも9.8μsec程度(図6)に抑えられている。ただワーストケース(図7)だと1.3msec程度まで悪化する。RTAIを入れれば簡単にハードリアルタイムが実現できるわけではなく、それなりにシステム構成を考えないとハードリアルタイムにならないということは、当然とはいえるが気を配る必要があるだろう。

図6
図6 ちなみにターゲットのハードウェアは不明である。RTAI 3.3における数字なので、リリース時期(2004年12月)から考えると「Pentium 4」あるいは「Pentium M」あたりか?[クリックで拡大]
図7
図7 悪化する要因として“DMA稼働/x server/USB legacy/Power Management/CPU周波数可変/SMI/その他いろいろ”と挙げられているあたりからも、どうやってもシステムの影響をそれなりに受けるのは仕方がない[クリックで拡大]

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る