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

IoT(モノのインターネット)市場が拡大する中で、エッジ側の機器制御で重要な役割を果たすことが期待されているリアルタイムOS(RTOS)について解説する本連載。第36回は、1980年代からの長い歴史を持つ「QNX Neutrino」を取り上げる。

» 2023年07月03日 07時00分 公開
[大原雄介MONOist]

 「QNX Neutrino」も結構長い歴史を持つリアルタイムOS(RTOS)である。もっとも、長い歴史を持つということは、いろいろな会社の事情に振り回されてきたということとニアリーイコールでもある。

BlackBerry傘下となったQNXのWebサイト BlackBerry傘下となったQNXのWebサイト[クリックでWebサイトへ移動]

⇒連載記事「リアルタイムOS列伝」バックナンバー

カナダの“カナタ”で創業

 QNX Neutrinoは1980年、カナダのウォータールー大学の学生だったGordon Bell氏とDan Dodge氏により開発された。ちなみにBell氏は、DECでPDPやVAXの開発にも関わり、ACMのゴードンベル賞(HPCの分野で画期的な成果に対して贈られる賞。別名スパコン界のノーベル賞)の名前の由来となったGordon Bell氏とは同姓同名の別人である。

 Bell氏とDodge氏は計算機学科でRTOSについて学んでおり、自分たちでもマイクロカーネルベースのRTOSを作ってみた。この試しに作ったRTOSの完成度が予想以上に良かったためか、2人はこれを商用製品として販売することを計画し、オンタリオ州オタワ市郊外のカナタ(「カナダ」ではない)に拠点を移してQuantum Software Systemsという会社を興す。

 当時からこのカナタ地区にはハイテク企業が多く入居するビジネスパークがあり、新規ビジネスには手頃だと思ったのだろう。同社の最初の製品であるQUNIXは1982年、Intel 8088をターゲットにリリースされた。名前から分かる通り、UNIXとの互換性(≠POSIXとの互換性)を意識したRTOSであった。ただこのQUNIXという名称は他社の商標(言うまでもなくAT&Tが保有していた“UNIX”)に抵触する恐れがあり、それもあって1984年にはQNX 1.0に改称される。

 1987年にはQNX 2.0がリリースされるが、当時POSIXがマーケットで急速に受け入れられつつあり、この状況に対応すべく同社はQNXをPOSIX対応にする。この際に単に対応APIを用意するのではなく、POSIXに対応するようにカーネルをローレベルから書き換え直している。この結果として1990年にリリースされたのがQNX 4である。

 このQNX 4には、新たに独自のGUI(QNX Photon microGUI)や、X Window Systemの移植なども行われた。もともとQUNIXやQNX 1.0の時点ではカーネルのサイズが44KBとRTOSとしては大き目で、これもあって従来のRTOSが利用されてきたような用途では敬遠される理由になっていたが、逆にQNX 4.0ではPOSIX互換カーネルにGUI、TCP/IP、Webブラウザまで含めて1.44MBのフロッピーディスク1枚に収まるというコンパクトさは、むしろ当時のDOSやWindowsよりもはるかに使いやすいということになった。

 通常のRTOSとはちょっと違うが、当時から例えば大規模システムのコントローラーにDOSやWindowsを利用することはしばしば行われていた。ハードウェア的には、当時の一般的なRTOSのターゲットだったMCUよりもはるかに充実(何しろWindowsとかが動く構成だ)しており、MCUのような省リソースへの要求性は低いし、プロセッサの性能そのものも高い。ただし、リアルタイム性や堅牢性への要求は高いというニーズであり、こうしたニーズにQNXはうまくはまったというわけだ。

 このQNX 4.0は、実に2021年までアップデートが提供されるという息の長いものになった。プロセッサのサポートこそx86のみだが、他の対応デバイスは以下の通りで充実している。

  • GPU:ATI/Intel/Matrox/NVIDIA/S3
  • ATAPI:Acer/AMD/HighPoint/Intel/Promise/ServerWorks/SiS/Winbond/VIA
  • Network:3COM/Intel/VIA

 USBもOHCI/UHCI/EHCIに対応し、HID/Printer/Mass Storageの各クラスに対応した。

 ただし、QNX 4.0そのものは通常のPCの構成をターゲットにしていたので、SMP構成などには未対応だった。そこで同社はあらためて、マイクロカーネルをベースにSMP対応とPOSIX対応を行ったRTOSを、QNX 4.0とは別に作り始める。1996年にリリースされたこの新しいRTOSは、QNX Neutrino 1.0 RTP(Real Time Platform)という名称になった。ターゲットもx86だけでなく、MIPSやPowerPC、SH-4、ARM/StrongArm/XScaleなどさまざまなものが追加されていく。以後QNXは、このQNX Neutrinoをベースに進化していくことになる。2001年にはQNX RTP 6.0がリリースされるが、これに合わせて同社は初の無償版もリリースする。

       1|2|3 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.