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

» 2022年10月13日 07時00分 公開
[大原雄介MONOist]

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.