RedHawk Linux
RedHawk Linux(レッドホーク・リナックス)は、米国に本社を置くコンカレント・コンピュータ (Concurrent Computer) が、Red Hat Enterprise Linux (RHEL) のカーネルをリアルタイムLinuxカーネルに置き換えて開発した、x86系リアルタイム版のRed Hat系 Linuxである。Red Hat MRG とは異なる。 バージョン1.1は2002年9月30日リリースされた。
概要
カーネルを置き換え、リアルタイムライブラリを追加している部分がRHELと異なる。
また、RedHawk Linuxでは、上流ストリームのカーネルとRedHawkカーネルをGRUBで選択起動できる。
カーネルに対するすべてのリアルタイムパッチは、DVDによってソースコードで供給されており、上流ストリームとのバージョン関係は以下の通りである。
- RedHawk 1.1 RHV8ユーザランドでカーネル2.4.18 +リアルタイムパッチ
- RedHawk 1.2 RHV8ユーザランドでカーネル2.4.18 +リアルタイムパッチ
- RedHawk 1.3 RHV8ユーザランドでカーネル2.4.21-pre4 +リアルタイムパッチ
- RedHawk 1.4 RHV8ユーザランドでカーネル2.4.21 +リアルタイムパッチ
- この間欠番
- RedHawk 2.1 RHEL 3.0ユーザランドでカーネル2.6.3 +リアルタイムパッチ
- RedHawk 2.2 RHEL 3.0ユーザランドでカーネル2.6.7 +リアルタイムパッチ
- RedHawk 2.3 RHEL 3.0ユーザランドでカーネル2.6.9 +リアルタイムパッチ[1]
- この間欠番
- RedHawk 4.1 RHEL 4.1ユーザランドでカーネル2.6.15 +リアルタイムパッチ[2]
- RedHawk 4.2 RHEL 4.2ユーザランドでカーネル2.6.18 +リアルタイムパッチ[3]
- RedHawk 5.1 RHEL 5.1ユーザランドでカーネル2.6.23 +リアルタイムパッチ[4]
- RedHawk 5.2 RHEL 5.2ユーザランドでカーネル2.6.26 +リアルタイムパッチ[5]
- RedHawk 5.3 欠番
- RedHawk 5.4 RHEL 5.4ユーザランドでカーネル2.6.31 +リアルタイムパッチ[6]
- この間欠番
- RedHawk 6.0 RHEL 6.0ユーザランドでカーネル2.6.36 +リアルタイムパッチ[7]
- この間欠番
- RedHawk 6.3 CentOS/RHEL 6.3ユーザランドでカーネル3.5.7 +リアルタイムパッチ[8]
- この間欠番
- RedHawk 6.5 CentOS 6.5ユーザランドでカーネル3.10.34 +リアルタイムパッチ[9]
リアルタイムパッチは、コンカレント・コンピュータの判断によって独自パッチとその他のパッチを組み合わせており、FBSと呼ばれる周期制御スケジューラ(レートモノトニックスケジューリング)も含まれている。
プロセッサシールドと呼ばれる機能で、任意のCPUにアサインされている割り込みの禁止や許可が実行中において可能であることを最大の特徴としている。 NUMAシステムでは、マルチコア上での割り込みからの保護に加えて、NUMAノード上で使用するメモリを固定するメモリシールド機能を利用できる。
これらの機能を利用するための、リアルタイム環境を整えるコマンドに、 run(1)[10], cpu(1)[11], shield(1)[12] があり、これを組み合わせることで、リアルタイム化していないバイナリアプリケーションプログラムでも、リアルタイムに利用可能である。 なお、RedHawk 5.1以降では、組み込み向けとしてRedHawk Embedded、サーバ向けとしてRedHawk Serverがそれぞれ別のラインナップとなっている。 また、RedHawk 5.4で、KVMとNVIDIAのCUDA環境をサポートした。
RedHawk 6.0では、IPv6およびLVMをサポートし、USB起動が出来るようになった。シールド時のリアルタイム応答性は15μ秒を保証している。
Redhawk 6.3では、SELinuxをイネーブルにして利用できるようになった[13]。
RedHawk6.3以降では、従来のRHELベースからCentOSベースを標準にし、PREEMPT_RTもサポートしている[14]。
API
APIは、POSIX 1003.1b(リアルタイム)およびPOSIX 1003.1c(POSIXスレッド)である。
なお、POSIX 1003.1b-1993およびPOSIX 1003.1c-1995は、IEEE Std 1003.1, 1996およびISO/IEC 9945-1 : 1996 としてPOSIX 1003.1にマージされ、現在のPOSIX 1003.1にすべて含まれている。 拡張リアルタイムAPIとして、Concurrent Computer 独自のAPIも、libccur_rt として提供されている。 プロセスIDを指定してメモリロックを行う、mlockall_pid(2)やCPUの割り込みから保護するshield(1)を実現するmpadvise(2)や、プライオリティインヘリタンス(優先順位の逆転)対応の関数等がこのlibccur_rtに含まれている。
開発環境
NightStarツールと呼ばれるGUIベースの開発環境を5つ提供している。
- NightView: ソースコードデバッガ
- NightTrace: イベントアナライザー
- NightProbe: データモニター
- NightTune: システムチューナー
- NightSim: リアルタイムスケジューラー
NightTraceは、アプリケーションと同時にマルチコアで動作するカーネルをグラフィカルにトレース表示できる。
NightSimは、FBS(周期スケジューラ)を用いたリアルタイムプロセス専用のツールであり、Linuxのスケジューラとは無関係である。
なお、RHELやFedora、CentOS、openSUSE、Ubuntu、Debian用の非リアルタイム版NightStarLXも用意され、非商用利用、教育・研究利用は、無償で利用可能である その他に、Archtectと呼ばれる、組込用開発ツールを販売している。
CUDA Toolkit
RedHawkのVersion 5.4以降には、標準でNVIDIAのCUDA Toolkitがインストールされている[15]。
- CUDA Toolkit v3.1 : RedHawk 5.4.[0-4](i386,x86_64)
- CUDA Toolkit v3.2 : RedHawk 5.4.x(i386,x86_64)
- CUDA Toolkit v4.0 : RedHawk 6.0.0(x86_64)
- CUDA Toolkit v4.1 : RedHawk 6.0.[0-3](x86_64)
- CUDA Toolkit v4.2 : RedHawk 6.0.x(x86_64)
- CUDA Toolkit v5.0 : RedHawk 6.3.[0-7](x86_64)
- CUDA Toolkit v5.5 : RedHawk 6.3.x(x86_64)
- CUDA Toolkit v5.5 : RedHawk 6.5(x86_64)
その他の製品
その他に、クローズドループシミュレータとデータ収録用のプロダクトが存在する。
- SIMulation Workbench SIMulation Workbench紹介
- Laboratory Workbench Laboratory Workbench紹介
MATLAB/Simulinkを利用したリアルタイムシミュレーションを行うのが、SIMulation Workbenchで、データ収録を行うのがLaboratory Workbenchである。 なお、Laboratory Workbench (LWB) は、元々世界で始めてリアルタイムUNIX (RTU) を開発した、マサチューセッツ・コンピューター (MASSCOMP)の製品であったが、1988年に同社が買収され、そのソフトウェアをRedHawk linuxに移植した製品である。
関連項目
脚注
- ^ RedHawk Linux OS Version 2.3 Release Notes
- ^ RedHawk Linux OS Version 4.1 Release Notes
- ^ RedHawk Linux OS Version 4.2 Release Notes
- ^ RedHawk Linux OS Version 5.1 Release Notes
- ^ RedHawk Linux OS Version 5.2 Release Notes
- ^ RedHawk Linux OS Version 5.4 Release Notes
- ^ RedHawk Linux OS Version 6.0 Release Notes
- ^ RedHawk Linux OS Version 6.3 Release Notes
- ^ RedHawk Linux OS Version 6.5 Release Notes
- ^ run(1)のマニュアル
- ^ cpu(1)のマニュアル
- ^ shield(1)のマニュアル
- ^ SELinuxをイネーブルにしたパフォーマンスの報告
- ^ RedHawk Server Development Packages
- ^ リアルタイムテクニカルドキュメント(CUDA/VSIPL編)