エッジコンピューティングの逆襲 特集

今やBlackBerryの主力事業に、下克上を果たしたRTOS「QNX Neutrino」リアルタイムOS列伝(36)(3/3 ページ)

» 2023年07月03日 07時00分 公開
[大原雄介MONOist]
前のページへ 1|2|3       

無償版はなくなったものの、30日間の評価版が利用可能

 というわけで長々とQNXの歴史をご紹介してきたが、QNXの特徴は以下の通りになる。

アーキテクチャ

 マイクロカーネルベースのアーキテクチャを採用している。カーネル(QNX用語ではprocnto)そのものは最小限(スケジューリング/プロセス間通信/割り込み処理/タイマー)程度の処理に留めており、デバイスドライバなどを含むその他の処理は全部別Taskという形で分離した上で、Task(というか、そのTaskの実行単位であるThread)間はMessage Passingの形で通信を行っている。

 この方式だと一般にはパフォーマンスが犠牲になりやすいが、QNXではMessage Passingがスケジューラと密接に連動する形で実装されており、パフォーマンスの犠牲が最小限にとどめられている。その一方でドライバまで別Taskなので、例えば何かの理由でドライバがクラッシュしても、OS全体は影響を受けないという利点がある(もちろんそのドライバがクラッシュすることで、アプリケーションの動作に影響を及ぼす可能性はあるが、それは別の問題である)。

スケジューリング

 スケジューリングはプライオリティベースのプリエンプティブであるが、APS(Adaptive Partition Scheduling)と呼ばれる技法(全てのThreadが、一定期間内に最小限のCPU時間の割り当てを受ける方式:より優先度の高いThreadが全てのCPU時間を独占することを防ぐ)や、Sporadic Scheduling(Threadの実行時間の上限を定めるスケジューリング)など、いくつかのオプションが用意される。

マルチプロセッサへの対応

 マルチプロセッサに対応したAMP/SMP構成が可能だが、Processor Affinity(SMTなどの仮想的なマルチプロセッサ)に対応したBMP(Bound Multi Processor)という構成を利用することもできる。最新のQNX Neutrinoでは、ターゲットは64ビット対応のx86およびArmv8-A対応(64ビット)であるが、引き続きARMv7ベースの32ビットプロセッサのサポートもあるとしている。その他のアーキテクチャは、現状は未サポートである。

 Secure BootやTPM/Trust Zoneの対応、ファイルシステムのAES256暗号化、HAM(High Availability Manager)を利用して、障害プロセスの切り離しや再起動機能の搭載など、最近のOSに求められる機能はおおむねそろっている。そもそも先に書いたように、自動車業界向けに現在も使われているわけで、そうしたターゲットに必要となる機能は当然のように用意されている。逆に言えば、自動車業界で使われていないようなアーキテクチャやデバイスのサポートなどはまだ手薄というかはっきり言えばない辺りが、汎用として利用する場合に若干ネックになるかもしれない。

 無償版のQNX Neutrinoはもはや存在しないが、30日利用の評価版は同社から提供されている。まずはこれを使って試してみる、というあたりから始めてみる格好だろう。

前のページへ 1|2|3       

Copyright © ITmedia, Inc. All Rights Reserved.