1 ポイント 投稿者 GN⁺ 2025-10-07 | 1件のコメント | WhatsAppで共有
  • QNXは1980年代初頭にカナダで始まったマイクロカーネルベースのリアルタイムオペレーティングシステムである
  • IBM PCなど多様なハードウェア対応、高い移植性と分散メッセージパッシング、優れた信頼性とマルチタスク環境を提供する
  • 教育用コンピュータ、産業インフラ、車載システムなどで採用され、大きな影響力を持った
  • POSIX準拠によりUnixとの互換性を強化し、**軽量GUI(Photon)**と多様なネットワーク機能へと発展した
  • 自動車、組み込み、モバイルなど最新の市場変化にも対応し続け、安定性、性能、セキュリティを高めてきた

QNXオペレーティングシステムの始まり

  • 1979年、University of WaterlooのGordon BellDan Dodgeは、Thothというリアルタイムオペレーティングシステムのプロジェクトを通じて経験を積んだ
    • Thothは高い移植性、同期メッセージパッシングを特徴とし、ハードウェアに依存せず動作した
  • BellとDodgeは卒業後、Quantum Software Systems(後のQNX Software Systems)を設立し、プロトタイプのマイクロコンピュータ(6809ベース)で独自OSの開発に着手した

QUNIX — QNXの前身

  • 最初のバージョンであるQUNIX 0.1は、マイクロカーネルベースで、CP/MとUNIXの要素を混ぜ合わせた形態を持ち、IBM PC向け初のマイクロカーネル型リアルタイムOSとして開発された
  • 従来のUnixとは異なり、/cmds、/config、/sys など独自のディレクトリ構造helpコマンドなど固有のコマンド体系を導入した
  • ハードディスク対応(QUNIX 0.4で5MB HDD)、フロッピーベースのブートなど、初期には制約があった

QNXへの転換と成長

  • AT&Tの商標問題により、1982年にQUNIXからQNXへ改名し、1983年にQNX 1.0を正式リリースした
    • カーネル: 約10,000行のCコードで、スケジューリング、メッセージパッシング、優先度処理などマイクロカーネルの特性を備えていた
    • サービス(ファイルシステム、ドライバ、ネットワークなど)の大半はメッセージベース通信構造だった
    • ネットワーク透過メッセージキューをサポートし、最大250同時タスク、マルチユーザーを許容した
  • Cコンパイラ、エディタ、ネットワーク対応を含めて650ドルで販売された(1983年時点)
  • QNX 1.2(1984年): パターンマッチング、シェルプログラミング強化、IBM AT対応、値下げなど

教育分野への進出: Burroughs ICON

  • オンタリオ州教育省の教育用標準コンピュータプロジェクトに採用され、**ICONコンピュータ(80186、512K RAM、QNX搭載)**が開発された
  • ネットワークベースのファイルサーバーブート(ARCNET)、個別ストレージ非搭載、ユーザーはサーバーベースのホームディレクトリを使用した
  • ハイパーテキストベースの「lessonware」の試みや、多様な教育ソフトウェア、ネットワーク機能、オーディオ機能、拡張性など、先進的なシステム構築の経験を積んだ

産業および商用市場の拡大

  • 1980年代中後半には、IBM PS/2、LAN、GUI、DOSエミュレーション(QDOS、RUNDOS)対応など、市場の要求を反映した
  • 1987年のQNX 2では、**IBM AT保護モード、BSDネットワーキング、1TBファイル、32シリアルポート、簡易GUI(House)**などへアップグレードされた
  • オフィス拡張、新社屋への移転など、組織も成長した

POSIX導入とPhoton GUI

  • 1991年のQNX 4.0: POSIX準拠、カーネルの小型化(7K、605 LOC)、IPC、ネットワーキング、性能向上
  • 1994年にQNX Photon microGUIをリリース: マイクロカーネルベースの軽量GUI、ネットワーク透過性、多様なデバイス対応
    • Photonは、リソース制約のある環境から高機能GUIまで拡張でき、X Window互換APIも備えていた
    • デモ環境全体(ネットワーキング、Webブラウザ、ファイル管理など)が1.44MBフロッピー1枚で動作するほど軽量化されていた

組み込みおよび分散システム、Neutrinoへの進化

  • QNX 4.25(1997年)までさまざまな改良が行われ、大企業や産業現場(発電所、医療、交通、宇宙など)でリアルタイムOSの先導役となった
  • 1996年のQNX Neutrino 1.0: SMP、強化されたPOSIX、広範なCPU対応、GNU/GCC導入、プロセス/スレッド管理強化
    • メモリ管理とプロセス分離がより徹底され、NetBSDのネットワークコード導入によって汎用性も高まった

パートナーシップと市場参入

  • 1998年、Amigaとのパートナーシップを推進した(最終的にAmigaはLinuxを採用)
  • 1999年のNeutrino 2.0/2.1: UPM(カーネルレベルの保護メカニズム)、PowerPC/MIPS/ARMなどマルチアーキテクチャ対応、開発環境の多様化
  • 1999年、Motorolaと協力し、自動車インフォテインメントシステム分野へ進出した(ナビゲーション、オーディオなど)

2000年代: マルチメディア、自動車、モバイルへ

  • 2001年のQNX 6.0: マルチメディアストリーミング、Webパッケージマネージャ、多様なCPU/アーキテクチャ向け開発環境の統合
  • EclipseベースのMomentics Tool Suite(2002年)、ネットワーククラスタリング、IPv6などで近代化が進んだ
  • 2004年にHarman Internationalに買収された後、組み込み・自動車市場へ注力し、QNX CARプラットフォームを導入、主要自動車メーカーに採用された
  • 大規模商用化: 2010年までに1,700万台の車両、200以上のモデルに搭載された

BlackBerryによる買収とモバイル/セキュリティの進化

  • 2010年、Research in Motion(BlackBerry)がQNXを買収し、BlackBerry PlayBook・BB10(=BBX)向けOSへと拡張した
    • QNX Safetyカーネル(ISO/IEC認証、ミッションクリティカルなセキュリティ)により、組み込み認証市場を拡大した
    • Photonの改良、ネットワーク、マルチメディア、UI/UXなども継続的に進化した
  • BBX(2013年): ジェスチャー中心UI、マルチタスク、多様なアプリフレームワーク、高性能ハードウェアを搭載
    • アプリエコシステムの制約、キーボード廃止などにより競争に敗れたが、2022年まで寿命が延長された

結論

  • QNXはリアルタイム性、原子的なカーネル設計、ネットワーク透過マルチプロセッシング、拡張性、セキュリティで際立っていた
  • Unix互換性を持ち、産業・自動車・組み込み分野で独自の地位を築いた
  • オープンソースや大衆向けモバイル環境への参入競争では敗れたが、ミッションクリティカル分野では業界標準級の名声を維持している

1件のコメント

 
GN⁺ 2025-10-07
Hacker Newsのコメント
  • このOSには個人的に面白い思い出がある。小学校の教室にICONコンピュータがあって、友だちとトラックボールをできるだけ速く回そうと競っていたのを覚えている。BlackBerryで働いていたときには、QNX BlackBerryをBluetooth HIDデバイスとして使えるようにする機能を開発した。これによって、トラックパッドと物理キーボードでノートPCをリモート操作でき、プレゼンのときに本当に便利だった。ところが、あるPMがこの機能をPlaybook専用に制限しろと言い出して、事実上使い物にならなくなった。Dan Dodgeが、標準なのだから制約を設けるべきではないと主張していたのをはっきり覚えている。Dan Dodgeを尊敬するようになったし、そのPMとは二度と一緒に仕事をしたくない

    • ICONコンピュータがこのOSベースだったと知って驚いた。当時の一般的なPCよりはるかに先進的だった。ただし、ICON同士の会話機能を通じて、ほかのシステムやネットワーク全体を簡単に落とせた点は例外だった

    • QNXは最終的にBlackBerry 10になった。私が使った中で最高のモバイルOSだった。ただ、使っていた人が少なかったのが残念だ

    • 君が手がけたHID機能を使ったことがあるが、本当に気に入っていた

    • KDE Connectが実質的に同じ機能をさらにうまく実現している。心から素晴らしいと思う

    • ICONの体験をエミュレータで保存できたらいいのにと思う。今ならブラウザでもICONネットワーク全体をエミュレートできそうだ

  • QNX Photonのミニマルな美学が本当に好きだった。Photonの雰囲気をできるだけ再現したくて、複雑なFVWM設定を維持していた。参考までに、2004年のGentooデスクトップのスクリーンショットはこちら デスクトップのスクリーンショット

    • 君の設定を自分でも取り入れて、15年以上維持してきた

    • 今見てもかっこいい。dotfilesをまだ持っているのか気になる

    • 自分のWindowMakerテーマよりずっと上だ。君のFVWMテーマは本当に素晴らしい

    • スクリーンショットにあるのってWinampのクローンじゃない?

  • QNXという発想が本当に気に入っていて、大いに期待していた。当時うちのチームは、光学式フードプロセッサをDSPから汎用ハードウェア(FireWire, 1394)へ移行しているところだった。QNXのプロセス分離は見事だったが、メッセージベースのデータ転送のオーバーヘッドにはあまり満足できなかった。結局、Linuxの1394ドライバでisochronous mode/dmaを2千ドル払ってサポートしてもらい、RT extensionsと組み合わせて使った。このとき得た教訓が「醜さ保存の法則」だ。ソフトウェアシステムには、どこかに決して洗練されない“醜さ”が残っていて、一方を改善するとその“醜さ”が別の場所へ移るということだ

    • 「醜さ保存の法則」は、本質的に「ウォーターベッド原理」ととても似ていると思う。ある程度複雑なシステムでは、一か所の問題を押し込めると、必ず別の場所に膨らみが出る。ウォーターベッド原理についてもっと知りたいならこちらを参照できる

    • QNXでメッセージ転送を高速化するアイデアがある。ページング機構を使ってメッセージを送る方式で、データをコピーせずにページテーブルだけを更新する。もちろん、macro kernelと比べればdouble TSS loadのオーバーヘッドは残るが、それでも速い。それでも、優雅さには代償が伴う。レイテンシ、信頼性、安定性、正確性まで考えると、単純な処理速度よりこうした要素のほうがはるかに重い選択基準になる

    • 今日ではDSMP(Direct System Memory Protection)が完全にサポートされ、システム性能も大きく向上しているので、メッセージ転送のオーバーヘッドはそれほど大きな問題ではないと思う。むしろ他の利点のほうが大きい

    • 「optical food processor」が比喩なのか、本当に画像を使って食べ物を切る装置なのか気になる

  • このブログにあるICONの写真はまさに私のICONで、私のブログから持っていかれたものだ(出典表記には感謝している)。QNXでのICONコンピュータに関する自分の投稿を共有する。最初の記事にはQNXデモ動画のYouTubeリンクもある
    ICONの記事
    LEXICONの記事

    • ソフトウェアやROMをarchive.orgにバックアップする予定があるのか気になる。このシステムのエミュレータ作成は、ROMの入手性の問題で止まっていた
  • 2002年ごろ、ケーブルモデムにtelnetで接続したらQNXが動いていて、ものすごく不思議に感じた

  • 1996年ごろ、フロッピー1枚にRTOS GUIとネットワークスタックまで入ったQNXを手にして、その小さな容量に感嘆した。Slackwareをインストールするだけでも何枚ものディスクが必要だったのに、QNXは信じがたかった

    • 私も覚えている。あの小さなデモにはWebブラウザまで入っていた。実際に体験したいならここで可能だ

    • こういうデモ版そのものが、実際には機能を見せつけるためのものだった。当時、QNXはライブCD市場で誰もが絶賛するほど印象的だった。ちなみに、フロッピーから動くX11とWebブラウザを搭載したLinuxもあって、それも本当にすごかった HNコメントへのリンク

    • 2000年ごろ、Linuxデスクトップを触っていたさなかにQNXデモを入手して、驚いたのを覚えている

  • QNX 4で大学時代にロボットシステムを作った。ネットワーク接続された486/Pentium CPUカードを使って、完全なハードリアルタイムのロボット構成を実現した。QNXの基本システムコール(send/receive/reply)が、ヘッダーファイル内でほぼ3行のアセンブリとしてインライン実装されていたのが印象的だった。この経験をもとに、ロボティクス分野でvxWorks、SunOS、Linuxなどに同様の機能を自作しながら多くを学んだ
    ロボットシステムの論文

    • QNXはかつて、現実に本当に使われるマイクロカーネルOSの「不可能を可能にした標準」だった。今ではNintendo Switch Horizon、seL4、HarmonyOS NEXTのような新しいOSと比べてどんな位置づけなのか気になる
  • Raspberry PiでQNXを試したい人向けに、参考になる記事を共有する QNX Raspberry Piインストールガイド

  • QNXでオーディオサーバーを作り、MP3のエンコードと再生機能まで移植した。本社を直接訪れたとき、Dan Dodgeがチームメンバーに全面的に我々を支援するよう指示してくれた。そのおかげでスタートアップを安定して立ち上げることができ、6年後にLinuxへ移行するまで大いに助けられた

    • とても素敵な話だ。QNX Everywhereを通じて、こうした精神を再びよみがえらせる予定だ。コミュニティに無料アクセスを提供し、可能な限り支援するつもりだ
  • QuantumではUnixを尊重すると言いながらも、QNXを1980年代の設計で1990年代のOSになると宣伝していた。当時、GNU、インターネット、Microsoft Windows、サードパーティ開発、Windowsベースのアプリ参入障壁、Web、シェアウェア、BBS、VAR、自由ソフトウェア運動などは考慮に入っていなかった。OS市場が勝者総取りの構造だという点も、数百ドルという価格設定も致命的だった。あの時代には避けがたかったのかもしれないが、問題意識自体は確かにあった。もちろんGUIの重要性に気づくのも遅く、Photon GUIが登場したのはQNX 4.1(1994年)になってからだった

    • このOSはPOSIX互換で、デスクトップ/サーバーにも拡張でき、きわめて安定していて、リアルタイム制御まで可能なユニークなシステムだった。リアルタイム特性のおかげで操作感が非常に快適で、1990〜2000年代まではこうしたニッチ市場があったからこそ会社も存続できた。1.44MBにGUI、ネットワーキング、Webブラウザまで全部詰め込んだ1999年のデモは、今でもあれほどの機能圧縮を見たことがないと思えるほどすごかった。今ではリアルタイムLinuxがQNX級の性能を出し、QNX 6.6以降はセルフホスティング開発も打ち切られて魅力が薄れた。ビジネス的には自動車/組み込み市場に集中するのが合理的だが、テック好きとしては惜しい気持ちがある。高価なライセンスと、リアルタイムLinux(上位)、Zephyr/FreeRTOS(下位)との競争のせいで、新規プロジェクトにQNXを選ぶ理由があまり思い浮かばない。最近QNXを選んだ事例があれば、ぜひ意見を聞きたい