QNX

QNX
開発者BlackBerry(旧QNXソフトウェアシステム
OSファミリーUnixライク
作業状態現在
ソースモデルクローズドソース
初回リリース1982 (1982年
最新リリース8.0 / 2023年12月 (2023年12月
マーケティングターゲット組み込みシステム
パッケージマネージャーNetBSDプロジェクトのPkgsrcフレームワークを使用できる
サポートされているプラ​​ットフォーム現在: x86-64ARM32ARM64旧: MIPSPowerPCSH-4StrongARMXScale
カーネルタイプRTOSマイクロカーネル
ユーザーランドPOSIX
ライセンス独自の
公式サイトqnx .ソフトウェア

QNX ( / ˌ k juː ˌ ɛ n ˈ ɛ k s /または/ ˈ k juː n ɪ k s / ) は、主に組み込みシステム市場を対象とした商用のUnix ライクなリアルタイム オペレーティング システムです。

この製品は、もともと 1980 年代初頭にカナダの企業 Quantum Software Systems (1980 年 3 月 30 日に設立され、後に QNX Software Systems に改名) によって開発されました。

2022年現在、自動車[ 1 ]医療機器プログラマブルロジックコントローラ自動化製造電車など、 さまざまな機器に使用されています。

歴史

1980年、ウォータールー大学の学生だったゴードン・ベルダン・ドッジは、リアルタイムオペレーティングシステムのコースを受講し、基本的なリアルタイムマイクロカーネルとユーザープログラムを構築しました。二人はそのようなシステムの商業的ニーズがあると確信し、オンタリオ州カナタのハイテク計画都市に移り、同年にクォンタム・ソフトウェア・システムズを設立しました。1982年、Intel 8088 CPU向けにQUNIXの最初のバージョンがリリースされました。1984年、クォンタム・ソフトウェア・システムズは商標権侵害の疑いを避けるため、QUNIXをQNX(Quantum's Network eXecutive)に改名しました。

QNXリアルタイムOS(RTOS)が初めて広く利用されたのは、組み込み機器以外の分野において、オンタリオ教育システム独自のコンピュータ設計であるUnisys ICONのOSとして採用された時でした。長年にわたり、QNXは主に大規模なプロジェクトで使用されていました。これは、44kカーネルが当時のワンチップコンピュータに収まりきらないほど大きかったためです。QNXシステムは信頼性の高さで高い評価を得、多くの産業用途の機械を動かすのに使われるようになりました。

1980年代後半、クォンタム社は市場が急速にポータブル・オペレーティング・システム・インターフェース(POSIX)モデルへと移行していることを認識し、カーネルを低レベルでより互換性の高いものに書き換えることを決定しました。その結果生まれたのがQNX 4です。この頃、インターンとして働いていたパトリック・ヘイデンは、当時正社員だったロビン・バーゲナーと共に、新しいウィンドウシステムを開発しました。この特許取得済みの[ 2 ]コンセプトは、QNX Photon microGUIと呼ばれる組み込み型グラフィカル・ユーザー・インターフェース(GUI)へと発展しました。QNXはX Window Systemのバージョンも提供していました。

QNXは1990年代後半に、OSの性能と比較的小型なサイズを実証するために、POSIX準拠のQNX 4 OS、完全なグラフィカルユーザーインターフェイス、グラフィカルテキストエディタ、TCP/IPネットワーク、ウェブブラウザ、ウェブサーバを含むデモイメージをリリースした。これらはすべて386 PC用の起動可能な1.44  MBのフロッピーディスクに収まるものだった。[ 3 ] [ 4 ]

1990年代末、当時QNXソフトウェアシステムズと名乗っていた同社は、対称型マルチプロセッシング(SMP)対応、そしてマイクロカーネルアーキテクチャを維持しながら、現行のPOSIXアプリケーションプログラミングインターフェース(API)に加え、将来的に導入される可能性のあるあらゆる新しいPOSIX APIをサポートするよう、QNXの新バージョンの開発に着手しました。その結果、2001年にリリースされたQNX Neutrinoが誕生しました。

QNXソフトウェアシステムズは、Neutrinoカーネルの開発とともに、Eclipse統合開発環境)コンソーシアムの創設メンバーとなりました。同社は2002年に、Eclipseワークベンチにパッケージ化されたEclipseプラグインスイート「QNX Momentics Tool Suite」をリリースしました。

2004年、同社はハーマン・インターナショナル・インダストリーズへの売却を発表しました。この買収以前から、QNXソフトウェアは自動車業界のテレマティクスシステムに広く利用されていました。ハーマンによる買収以降、QNXソフトウェアは200を超える様々な自動車メーカー・モデル、テレマティクスシステム、インフォテインメントおよびナビゲーションユニットに採用されています。QNX CARアプリケーションプラットフォームは、2011年半ば時点で2,000万台以上の車両に搭載されています。[ 5 ]その後、同社はQNX Aviageマルチメディアスイート、QNX Aviageアコースティックプロセッシングスイート、QNX HMIスイートなど、複数のミドルウェア製品をリリースしています。

シスコシステムズIOS-XR(超高可用性IOS、2004年導入)[ 6 ] [ 7 ]IOSソフトウェアモジュラリティ(2006年導入)[ 8 ]のマイクロカーネルはQNXをベースとしていました。IOSソフトウェアモジュラリティは普及せず、Catalyst 6500向けの小規模な実装に限定されましたが、IOS XRはリリース6.0xからLinuxに移行しました 。

2007年9月、QNXソフトウェアシステムズはソースコードの一部を公開すると発表した。[ 9 ]

2010年4月9日、リサーチ・イン・モーション(後にブラックベリー・リミテッドに改名)は、ハーマン・インターナショナル・インダストリーズからQNXソフトウェアシステムズを買収すると発表した。[ 10 ]同日、QNXのソースコードへのアクセスは一般および愛好家から制限された。[ 11 ]

2010年9月、同社はタブレットコンピュータBlackBerry PlayBook」と、そのタブレット上で動作するQNXベースの新しいオペレーティングシステム「BlackBerry Tablet OS」を発表した。 [ 12 ]

2011年10月18日、リサーチ・イン・モーションは「BBX」[ 13 ]を発表しましたが、これは後に2011年12月にBlackBerry 10に改名されました。 [ 14 ] BlackBerry 10デバイスは、タッチデバイス用のBlackBerry PlayBook QNXベースのオペレーティングシステムをベースに構築されていますが、 QtベースのCascades Native User-Interfaceフレームワークを使用してスマートフォン用のユーザーインターフェイスを採用しています。

ジュネーブモーターショーで、Appleは対応車両のヘッドユニットにiOS風のユーザーインターフェースを提供するCarPlayをデモしました。自動車メーカーによる設定後、QNXはディスプレイと一部の機能をApple CarPlayデバイスに渡すようにプログラムできます。[ 15 ] [ 16 ]

2014年12月11日、フォード・モーター・カンパニーはMicrosoft AutoをQNXに置き換えると発表した。 [ 1 ]

2017年1月、QNXはIntelおよびARMの32ビットおよび64ビットプラットフォームとC++14をサポートするSDP 7.0のリリースを発表しました。これは2017年3月にリリースされました。[ 17 ]

2023年12月、QNXは、最新のIntelおよびARM [v8およびv9] 64ビットプラットフォーム、GCC12ベースのツールチェーン、およびVisual Studio Code用のQNXツールキットをサポートする次世代マイクロカーネルを搭載したQNX SDP 8.0をリリースしました。[ 18 ]

テクノロジー

マイクロカーネルベースのOSであるQNXは、オペレーティングシステムカーネルの大部分を、リソースマネージャと呼ばれる多数の小さなタスクの形で実行するという考え方に基づいています。これは、オペレーティングシステムカーネルが多数のパーツから構成され、それぞれが特別な機能を持つ1つの巨大なプログラムである従来のモノリシックカーネルとは異なります。QNXの場合、マイクロカーネルを使用することで、ユーザー(開発者)はOSを変更することなく、不要な機能を無効にすることができます。つまり、不要なサービスは単に実行されなくなります。

QNXカーネル(procntoQNX Neutrino('nto')プロセス('proc')自体のバイナリ実行可能プログラムの名前でもある)には、CPUスケジューリングプロセス間通信割り込みリダイレクト、およびタイマーのみが含まれています。その他すべてはユーザープロセスとして実行されます。これには、マイクロカーネルと連携してprocプロセス作成とメモリ管理を実行する特別なプロセスが含まれます。これは、サブルーチン呼び出しタイプのプロセス間通信と、カーネルと任意のユーザープログラムと共有ライブラリのセットを含むイメージをロードできるブートローダーという2つの主要なメカニズムによって可能になっています。カーネルにはデバイスドライバーはありません。ネットワークスタックはNetBSDコードに基づいています。[ 19 ] QNXは、独自のネイティブデバイスドライバーのサポートに加えて、レガシーのio-netマネージャーサーバーとNetBSDから移植されたネットワークドライバーをサポートしています。[ 20 ]

QNXプロセス間通信は、あるプロセスから別のプロセスへメッセージを送信し、応答を待つという動作で構成されます。これは と呼ばれる単一の操作ですMsgSend。メッセージはカーネルによって、送信プロセスのアドレス空間から受信プロセスのアドレス空間へコピーされます。受信プロセスがメッセージを待機している場合、CPU制御はCPUスケジューラを経由することなく同時に移行されます。したがって、別のプロセスにメッセージを送信し、応答を待つことで、CPUの「順番を失う」ことはありません。メッセージパッシングとCPUスケジューリングのこの緊密な統合は、QNXメッセージパッシングを広く利用できるようにしている重要なメカニズムの一つです。ほとんどのUnixおよびLinuxのプロセス間通信メカニズムにはこの緊密な統合が欠けていますが、Linux用のQNX型メッセージングのユーザー空間実装は存在します。この微妙な問題の不適切な処理が、 Machの初期バージョンなどの他のマイクロカーネルシステムのパフォーマンスが期待外れになる主な原因です。受信プロセスは、同じ物理マシン上にある必要はありません。

すべてのI/O操作、ファイルシステム操作、およびネットワーク操作はこのメカニズムを介して実行されるように設計されており、転送されたデータはメッセージパッシング中にコピーされていました。QNXの後のバージョンでは、パフォーマンス上の理由から、個別のプロセスの数を減らし、ネットワークスタックとその他の機能ブロックを単一のアプリケーションに統合しました。

メッセージ処理はスレッド優先度によって優先順位が付けられます。I/O要求はメッセージパッシングによって実行されるため、優先度の高いスレッドは優先度の低いスレッドよりも先にI/Oサービスを受け取ります。これは、ハードリアルタイムシステム において不可欠な機能です。

ブートローダーは、最小限のマイクロカーネルシステムのもう一つの重要なコンポーネントです。ユーザープログラムをブートイメージに組み込むことができるため、起動に必要なデバイスドライバとサポートライブラリのセットはカーネル内に存在する必要はなく、実際にカーネル内には存在しません。プログラムのロードなどの機能もカーネル内ではなく、ブートイメージの一部として読み込まれる共有ユーザー空間ライブラリ内にあります。ブートイメージ全体をROMに格納することも可能で、これはディスクレス組み込みシステムで使用されます。

Neutrinoは、対称型マルチプロセッシングプロセッサアフィニティ(QNX用語では境界型マルチプロセッシング(BMP)と呼ばれる)をサポートしています。BMPは、キャッシュヒット率を向上させ、SMP非対応のアプリケーションをマルチプロセッサコンピュータに移行しやすくするために使用されます。

Neutrinoは、厳密な優先度プリエンプティブスケジューリングとアダプティブパーティションスケジューリング(APS)をサポートしています。APSは、他のスレッドの優先度が高くても、選択されたスレッドグループに最低限のCPU使用率を保証します。アダプティブパーティションスケジューラは、システムの負荷が低い場合でも、厳密な優先度プリエンプティブスケジューリングを維持します。また、システムの負荷が高い場合でも、 選択されたクリティカルスレッドセットを厳密にリアルタイムで実行するように設定することもできます。

QNXオペレーティングシステムには、「Voyager」と呼ばれるウェブブラウザも含まれていました。[ 21 ]

QNXはマイクロカーネルアーキテクチャを採用しているため、分散オペレーティングシステムでもあります。Dan DodgePeter van der Veenは、米国特許6,697,876を保有しています。この特許は、商用では透過的分散処理として知られるQNXオペレーティングシステムの分散処理機能に基づく分散カーネルオペレーティングシステムです。これにより、別々のデバイス上のQNXカーネルは、ローカルサービスへのアクセスに使用されるのと実質的に同じ通信メカニズムを使用して、互いのシステムサービスにアクセスできるようになります。

リリース

QNX RTOSの歴史[ 22 ]
バージョン 日付 配布媒体 注記
1981 QUNIX設立。
ベータ 1983 QNXベータ版として
1.0 1984
2.0 1987 TCP/IPPPPなどの4.3BSDの要素がQNX 2.0に統合されました。
2.21 1989 QNX 2.21
4.0 1990 QNX 4.0
4.1 1994 4.4BSD の要素を QNX 4.1に組み込む
4.2 1995 QNX 4.2
4.22 1995 QNX 4.22
4.24 1995 QNX/Neutrino 1.0はQNX 4.24からフォークされたものです。
4.25 1997 QNX 4.25 は、 QNX/Neutrino 1.0 とのフォーク後に継続されます。
QNX/Neutrino マイクロカーネルの歴史 (1996 年に QNX 4.24 からフォーク)
リリース 日付 注記
1.0 1996 QNX 4.24 からフォークされた QNX/Neutrino 1.0
2.0 1998 QNX/ニュートリノ 2.0
2.10 1999 QNX/ニュートリノ 2.10 (QRTP)
6 2001年1月18日 QNX RTOS 6
6.1.0 2001 QNX RTOS 6
6.1.0 (パッチA) 2001年9月28日
6.2 2002年6月4日 QNX 6.2 (モメンティクス)
6.2(​​パッチA) 2002年10月18日 QNX 6.2
6.2.1 2003年2月18日 QNX 6.2.1 (モメンティクス)
6.3 2004年6月3日 QNX 6.3
6.3.0 SP1 ?
6.3.0 SP2 ?
6.3.0 SP3/ OS 6.3.2 ?
6.3.2 2006年8月16日[ 23 ]
6.4.0 2008年10月30日 QNX ニュートリノ RTOS 6.4.0
6.4.1 2009年5月 QNX ニュートリノ RTOS 6.4.1
6.5.0 2010年7月 QNX Neutrino RTOS 6.5.0は、2011 年 10 月 18 日に発表され、その後プレビューされ、 2012 年 5 月 1 日に「BlackBerry 10 OS 」 と名付けられ、 BBX を生成するためにフォークされました。
6.5 SP1 2012年7月11日 QNX ニュートリノ RTOS 6.5 SP1
6.6 2014年2月28日 QNX 6.6
7.0 2017年1月4日 QNX SDP 7.0、64ビットをサポートする最初のバージョン
7.1 2020年7月23日 QNX SDP 7.1
8.0 2023年12月 QNX SDP 8.0 [ 24 ]

用途

BlackBerryが設計したBlackBerry PlayBookタブレットコンピューターは、QNXのバージョンをメインオペレーティングシステムとして採用しています。BlackBerry 10オペレーティングシステムQNXをベースにしています。

QNXは車載インフォテインメントシステムにも利用されており、多くの大手自動車メーカーがQNXアーキテクチャを組み込んだバリエーションを提供しています。wolfSSLなどの一般的なSSL/TLSライブラリもサポートしています。[ 25 ]

QNXは2010年に「Safe Kernel 1.0」を発表して以来、機能安全認証を受けたRTOSを必要とする自動車プロジェクト向けの自動運転システムやADASシステムに採用されてきました。QNXは、QNX OS for Safety製品を通じてこの機能を提供しています。[ 26 ]

QNX Neutrino (2001) は多くのプラットフォームに移植されており、現在では組み込み市場で使用されているほぼすべての最新の中央処理装置(CPU) ファミリーで動作します。これには、 PowerPCx86MIPSSH-4、そして密接に関連するARMStrongARMXScaleが含まれます。

2025年12月16日現在、QNXソフトウェアは世界中で2億7500万台以上の車両に組み込まれており、BMW、ボッシュ、コンチネンタル、東風汽車、吉利汽車、フォード、ホンダ、メルセデス・ベンツ、スバル、トヨタ、フォルクスワーゲン、ボルボなど、ほとんどの大手OEMとTier 1サプライヤーが含まれています。[ 27 ]

認定資格

QNX OS for SafetyとQNX Hypervisor for Safetyは、以下の要件に準拠していることが認定されています。[ 28 ] [ 29 ]

QNX OS for Safety は、以下の要件にも準拠していることが認定されています。

  • IEC 62304のクラスCは、医療機器におけるソフトウェアの使用に関してIEC 62304で定義されている最も厳しいレベルである。[ 28 ] [ 29 ]
  • ISO/SAE 21434:2021は、道路車両内で使用されるソフトウェアのサイバーセキュリティ規格である。[ 30 ]

ライセンス

2025年1月6日、QNXはソフトウェア開発プラットフォームを非商用目的で利用できるようにしました。[ 31 ]

QNXは非商用および学術的なユーザー向けのライセンスを提供しています。[ 32 ] 2024年1月、BlackBerryはQNXを愛好家がより利用しやすくするためにQNX Everywhereを導入しました。QNX Everywhereは2024年初頭に一般公開されました。[ 33 ]

コミュニティ

  • OpenQNXは、独立して設立・運営されているQNXコミュニティポータルです。IRCチャンネルとニュースグループへのウェブアクセスが可能です。このサイトには、多様な業界の開発者が参加しています。[ 34 ]
  • Foundry27は、同社が設立したウェブベースのQNXコミュニティです。QNX Neutrino開発のハブとして機能し、開発者は登録、ライセンスの選択、RTOSのソースコードと関連ツールキットの入手が可能です。[ 35 ]

QNX ボード サポート パッケージ

QNX標準サポートは、QNXソフトウェアセンターで利用可能なBSPとして以下に記載されているBSPに対してご利用いただけます。その他のBSPについては、下記「BSPサプライヤー」または「ボードベンダー」から代替のサポート(カスタムサポートプランなど)が提供される場合や、必要な場合があります。[ 36 ]

BlackBerry QNX パートナー

BlackBerry QNXは、補完的な技術を提供するために、パートナー組織のネットワークと連携してきました。これらの重要な関係により、世界で最もクリティカルな組み込みシステムを支える基盤ソフトウェア、ミドルウェア、そしてサービスを提供することが可能となっています。[ 37 ]

参照

参考文献

  1. ^ a b Burns, Matt (2014年12月11日). 「Ford、最新の車載技術プラットフォームでMicrosoftからQNXへ移行」 . TechCrunch . 2015年2月26日閲覧
  2. ^ US5745759
  3. ^ Hildebrand, Dan (1997年6月6日). 「Think Small. (The 1.44M Web Challenge)」 . marc.info .
  4. ^ “How we did it!” 1999年11月28日時点のオリジナルよりアーカイブ。 2020年8月3日閲覧
  5. ^ QNX CAR http://www.qnx.com/products/qnxcar/
  6. ^ 「QNX、大規模スケーラブルなルーティングシステム向けに極めて信頼性の高いマイクロカーネルを提供」 2004年8月17日。 2012年3月16日閲覧
  7. ^ 「CRS-1 および IOS XR の運用ベスト プラクティス。Cisco
  8. ^ Brad Reese- BradReese.Com (2006年9月26日). 「iOSの背後にはどのOSがあるのか​​?」オリジナルより2011年12月22日アーカイブ。 2012年3月16日閲覧
  9. ^ Leroux, Paul (2007年9月12日). 「QNXがNeutrinoのソースコードを公開し、開発プロセスを公開www.qnx.com .
  10. ^ 「RIMがQNXソフトウェアを買収」『ザ・グローブ・アンド・メール』、トロント、カナディアン・プレス。2010年4月9日。 2010年4月9日閲覧
  11. ^ "foundry27: Wikiページを表示: UpdatedQNXSourceAccessPolicyFAQ" . community.qnx.com .
  12. ^ 「RIMがBlackBerry PlayBookを発表」(公式プレスリリース)2010年9月27日。2010年10月21日時点のオリジナルよりアーカイブ2010年9月27日閲覧。
  13. ^ Molen, Brad (2011年10月18日). 「Research in MotionがBBXを発表、『BlackBerryとQNXの長所を融合』」 . Engadget . 2013年1月20日閲覧
  14. ^ Arthur, Charles (2011年12月7日). 「BlackBerryメーカーのRIM、新ソフトウェアでBBXの名称を廃止せざるを得ず」 . Guardian . ロンドン. 2013年1月20日閲覧
  15. ^ハートリー、マット(2014年3月3日)「Apple CarPlay、GM、BMW、Fordなどの車のダッシュボードにiPhoneの機能を実装」フィナンシャル・ポスト。 2014年3月28日閲覧
  16. ^ 「BlackBerryのQNX:なぜApple、Google、自動車業界にとってこれほど価値のあるのか」 ZDNet 2014年10月27日閲覧
  17. ^ 「BlackBerry QNX、自動運転およびコネクテッドカー向けの最も先進的で安全な組み込みソフトウェアプラットフォームを発表」 2017年1月4日。
  18. ^ 「QNX® ソフトウェア開発プラットフォーム (SDP) 8.0」。2023年12月11日。
  19. ^ 「Core Networking 6.4: Neutrinoの次世代ネットワークスタックとFoundry27」 。 2008年11月26日時点のオリジナルよりアーカイブ2008年8月7日閲覧。
  20. ^ "foundry27: Wiki ページを表示: Drivers_wiki_page" . community.qnx.com .
  21. ^ “QNX Neutrino RTOS – 組み込み OS | BlackBerry QNX | BlackBerry QNX” .
  22. ^ Lévénez, Éric (2011年5月1日). 「UNIXの歴史」 . levenez.com . 2011年5月18日閲覧
  23. ^ 「QNX® Neutrino® Core OS 6.3.2 リリース ノート」。 2006 年 8 月 16 日。
  24. ^ 「QNX® ソフトウェア開発プラットフォーム (SDP) 8.0: リリースノート」。2023年12月11日。
  25. ^ 「wolfSSL Build Sizes for the QNX Embedded RTOS」 . wolfSSL . 2010年9月17日. 2019年2月13日閲覧
  26. ^ 「安全のためのQNX OS」
  27. ^ 「QNX組み込み技術、現在2億7500万台以上の車両に搭載」 www.accessnewswire.com 2025年12月16日閲覧
  28. ^ a b「証明書番号: 968/FSP 2999.00/25」(PDF) . TÜV Rheinland . 2026年1月25日閲覧。{{cite web}}: CS1 maint: url-status (リンク)
  29. ^ a b「QNX Safety Certifications | ISO 26262, IEC 61508, IEC 62304 | BlackBerry QNX」qa-blackberry-qnx.adobecqms.net . 2026年1月24日閲覧
  30. ^ 「証明書番号: 962/CSP 1032.00/25」(PDF) . TÜV Rheinland . 2026年1月25日閲覧。{{cite web}}: CS1 maint: url-status (リンク)
  31. ^ 「QNX は開発者サポートを強化し、あらゆる場所で組み込みソフトウェアのイノベーションを推進します」
  32. ^ 「BlackBerry、世界的な組み込みソフトウェア開発者のスキル不足に対処するためQNX Everywhereを発表」
  33. ^ 「非商用利用のためのQNX SDP 8.0への無料アクセス」
  34. ^ OpenQNXコミュニティポータル:アナウンス
  35. ^ QNXプレスリリース: Foundry27
  36. ^ 「QNXボードサポートパッケージ」。2024年11月7日。
  37. ^ 「Blackberry QNX Partners」 2024年11月12日。

さらに読む