概要

QNXは、組み込みプラットフォーム向けに設計されたUnix系のリアルタイムOSです。中核となる設計は、決定性、信頼性、小さなフットプリントを重視しています。一般に参照される製品群はQNX Neutrinoで、POSIX風のAPIを実装し、時間制約のあるアプリケーションに適したマルチスレッド、優先度付きスケジューリング、プロセス間通信をサポートします。技術情報や製品資料は公式リソースを参照してください。

アーキテクチャと特徴

モノリシックカーネルとは異なり、QNXは真のマイクロカーネルを採用しています。カーネルが担うのは、低レベルのスケジューリング、割り込み処理、最小限のプロセス間通信など、必要最小限の機能だけです。ファイルシステム、ネットワークスタック、デバイスドライバ、ユーザーセッションといった上位のサービスは、カーネルの外で独立したプロセス(サーバーやデーモン)として動作します。この分離により、1つの不具合のあるドライバがシステム全体を停止させるリスクが下がり、カーネルを再構築せずに部品を更新・置き換えしやすくなります。

  • リアルタイムスケジューリングと予測しやすいレイテンシー
  • 障害分離に役立つモジュール型のサーバーサービス
  • 緊密で低オーバーヘッドな通信を実現するメッセージパッシング型IPC
  • 商用サポート、開発ツール、POSIX互換性

歴史と発展

QNXは、リアルタイム機能と信頼性をマイクロコンピュータにもたらすことを目指した開発者によって1980年代初頭に作られました。数十年にわたり、趣味的な出発点から、さまざまな業界で使われる商用サポート付きの組み込みOSへと発展しました。2000年代には、コンシューマー向けおよびモバイル製品での採用によって注目を集め、いくつかのスマートフォンやタブレットの試みではQNXベースのソフトウェアスタックが使われました。例としてBlackBerryの一部デバイスが挙げられます。QNXは現在も商用開発が続けられており、定期的な更新と組み込みエンジニア向けのツールチェーンが提供されています。

用途、例、注目すべき利点

QNXは、予測可能な動作と高い稼働率が重要な場面で導入されています。一般的な分野には、自動車のインフォテインメントや計器クラスタ、医療機器、産業用コントローラ、通信機器、その他の組み込み家電などがあります。マイクロカーネルモデルと安全性を重視した提供形態により、認証や強い障害封じ込めを必要とする環境でも魅力的です。

開発者は通常、ベンダー提供のSDKや統合開発環境を使ってQNXシステムを構築、デバッグ、プロファイルします。対象プラットフォームは、リソースの限られたコントローラから、高性能な車載コンピュータ、産業用ボックスまで幅広く、サポートされる組み込みプラットフォームやエコシステムの情報は組み込みプラットフォームガイドを参照してください。