RTAI(Real-Time Application Interface)は、
LinuxカーネルをリアルタイムOSのように動作させるための拡張機能です。この技術を用いることで、
Linux上で時間制約の厳しいリアルタイムアプリケーションを開発することが可能になります。RTAIは、オープンソースコミュニティによって開発・維持されており、
Linuxと同様に、その成果は広く利用されています。
対応アーキテクチャ
RTAIは、以下のような様々なアーキテクチャをサポートしています。
x86: FPU(浮動小数点演算ユニット)とTSC(タイムスタンプカウンタ)の有無に対応します。
x64
PowerPC
ARM: StrongARM、ARM7(clps711xファミリ、Cirrus Logic EP7xxx、CS89712、PXA25xなど)が含まれます。
MIPS
これらの幅広いアーキテクチャへの対応が、RTAIの大きな特徴の一つです。これにより、様々なハードウェア環境でリアルタイム処理を必要とするシステムを構築することができます。
RTAIの機能
RTAIは、以下の主要な機能を提供します。
POSIX互換タスク:
POSIX(Portable Operating System Interface)規格に準拠したタスクをサポートします。
ネイティブRTAIリアルタイムタスク: RTAI独自のリアルタイムタスクをサポートします。
確定的な割り込み応答: 割り込みに対する応答時間を一定時間内に収めることができます。
これらの機能により、RTAIは高精度な時間管理を必要とするアプリケーションに最適です。特に、制御システムやロボット工学などの分野でその能力を発揮します。
RTAIの構成要素
RTAIは、主に以下の2つの部分で構成されています。
1.
AdeosベースのLinuxカーネル用パッチ: この
パッチは、HAL(Hardware Abstraction Layer:ハードウェア抽象化レイヤー)を導入します。HALは、ハードウェアの違いを吸収し、
ソフトウェアが異なるハードウェア上で動作することを可能にする層です。
2.
リアルタイム・プログラミングに役立つ各種サービス群: リアルタイムアプリケーションの開発に必要な様々なサービスを提供します。
Adeosカーネルパッチ
RTAIバージョン3.0以降では、Adeosカーネル
パッチが使用されています(x86では若干の修正が加えられています)。Adeosは、Interrupt Pipelineを構成するカーネル
パッチであり、異なるOSドメインが割り込みハンドラを登録することを可能にします。これにより、
Linuxの他の処理に影響を与えることなく、RTAIが割り込みを制御できるようになります。Adeosの採用により、RTAIはRT
Linuxとの
特許問題を回避することも可能になりました。
関連技術
Xenomai: RTAIと同様にLinuxをリアルタイムOS化するプロジェクトです。Xenomaiもオープンソースで開発されています。
外部リンク
RTAI 公式サイト
RTAI Wiki
RTAI wikibook
*
Univ. di Padova - RTAI / Xenomai presentation
RTAIは、
Linuxのリアルタイム機能を拡張するための強力なツールであり、様々な産業分野での利用が期待されています。