QNXとは
QNX(キューエヌエックス)は、主に
組み込みシステムで使用される商用のリアルタイム
Unix系オペレーティングシステム(OS)です。POSIX規格に準拠しており、特に高い信頼性とリアルタイム性が求められる分野で広く採用されています。
QNXのアーキテクチャ
QNXの最大の特徴は、マイクロ
カーネルアーキテクチャを採用している点です。従来のモノリシック
カーネルOSとは異なり、OSの機能は「サーバ」と呼ばれる小さなタスクとして動作します。これにより、不要な機能を容易に停止させることができ、システム全体の柔軟性と効率性を高めることが可能です。また、システム自体が非常に小さく、高速で機能的である点も大きな利点です。
QNX Neutrino
2001年にリリースされたQNX Neutrinoは、組み込み市場で広く利用されており、x86、MIPS、
PowerPC、SH-4、ARMなど、多様な
CPUアーキテクチャに対応しています。2007年からは非商用利用向けのライセンスも提供されるようになりました。
歴史
QNXは、
1980年に
ウォータールー大学の学生であったGordon BellとDan Dodgeによって設立されたQuantum Software Systems社(後のQNXソフトウェアシステムズ)によって開発されました。当初は教育システムのOSとして採用されましたが、その信頼性の高さから工業アプリケーションにも広がっていきました。
1980年代末には、市場のPOSIXモデルへの移行に対応するため、
カーネルの書き換えを行い、QNX 4をリリースしました。このバージョンでは、組み込みGUIであるPhoton microGUIが導入され、POSIX準拠により
UNIXやBSDソフトウェアの移植も容易になりました。
その後
1990年代末には、QNX RTOSの全面的な書き換えを行い、SMP対応、既存のPOSIX APIの完全サポート、そして新たなPOSIX APIへの迅速な対応を実現しました。これにより、
2001年にはQNX Neutrino RTOSがリリースされました。
QNXソフトウェアシステムズは、開発ツールにも力を入れ、Eclipseコンソーシアムの創立メンバーとなり、Eclipseワークベンチをベースにした開発環境を提供しました。
2004年には、
ハーマン・インターナショナルに買収され、
自動車業界での利用が拡大しました。
テレマティクスシステム、インフォテインメント、ナビゲーションシステムなど、
自動車向けの様々な用途で採用されました。
2010年には、リサーチ・イン・モーション(現ブラックベリー)に買収され、同社のタブレット端末
BlackBerry PlayBookや、モバイルOSの
BlackBerry 10のベースとなりました。また、
シスコシステムズの
IOS-XRなど、ネットワーク機器向けのOSとしても採用されています。
技術的な特徴
QNX
カーネルは、
CPUスケジューリング、
プロセス間通信、割り込み処理、タイマーのみを管轄し、他の機能はユーザープロセスとして実装されます。これにより、高い柔軟性と信頼性が実現されています。
プロセス間通信はメッセージパッシング方式を採用しており、効率的なデータのやり取りを可能にしています。
プロセス間通信では、メッセージが送信側のアドレス空間から受信側のアドレス空間へコピーされ、受信プロセスがメッセージを待機している場合には、
CPU制御がスケジューラを経由せずに直接渡されます。この効率的なメッセージパッシングは、QNXのリアルタイム性能を支える重要な要素です。
分散処理
QNXはマイクロ
カーネルアーキテクチャであるため、分散OSとしても機能します。透明分散処理(TDP)と呼ばれる機能により、ネットワーク上の複数のノードにまたがるOSサービスを意識せずに利用できます。
メッセージ処理
メッセージ処理はスレッドの優先度に基づいて優先順位付けされ、入出力もメッセージ処理を利用するため、優先度の高いスレッドがより早く結果を受け取れるようになっています。また、
ブートローダも柔軟性が高く、ユーザープログラムや
デバイスドライバを
ブートイメージに含めることができます。
マルチプロセッシング
QNX Neutrinoは、プロセッサ親和性を考慮した
対称型マルチプロセッシング(BMP)をサポートしています。これにより、マルチプロセッサ環境でのアプリケーションの移行が容易になり、キャッシュヒット率も高く維持できます。また、アダプティブ・パーティション・
スケジューリング(APS)により、高負荷時でも重要なスレッドがリアルタイムで動作できます。
透過分散処理 (TDP)
透過分散処理(TDP)は、QNXのネットワーク分散アーキテクチャの名称です。qnetと呼ばれるプロトコルモジュールを使用し、ネットワーク上の複数のマイクロ
カーネル間でOSサービスを透過的に利用可能にします。
Foundry27
Foundry27は、QNXコミュニティ向けのウェブサイトであり、開発者がQNX Neutrinoの開発に必要な情報を得たり、ソースコードやツールキットを取得するためのハブとして機能しています。
競合OS
組み込み市場における主な競合OSには、以下のようなものがあります。
- - POSIXリアルタイムOS: LynxOS
- - 組み込み(にも使われる)Unix系OS: Linux
- - その他リアルタイムOS: VxWorks, THEOS, OS-9, SCIOPTA, ITRON
- - その他組み込みOS: Windows CE
競合OSとの比較
分散処理やMMUの強化を図る場合、メッセージパッシング方式のリアルタイムOSが有利であり、SCIOPTAやOSEなどが同様のアーキテクチャを採用しています。
まとめ
QNXは、マイクロ
カーネルアーキテクチャ、リアルタイム性能、柔軟性、信頼性、分散処理機能などを特徴とする、
組み込みシステムに最適なOSです。
自動車、産業機器、医療機器など、幅広い分野で採用され、その技術力は多くの企業に高く評価されています。