QNX

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です。自動車、産業機器、医療機器など、幅広い分野で採用され、その技術力は多くの企業に高く評価されています。

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。