エッジコンピューティングの逆襲 特集
連載
» 2020年06月25日 10時00分 公開

豪華絢爛な採用実績を持つRTOSの老舗「VxWorks」の行く先リアルタイムOS列伝(3)(2/3 ページ)

[大原雄介,MONOist]

ハイエンドプロセッサをターゲットに順調にシェアを伸ばす

 そんなわけで、Wind Riverは1987年に最初のVxWorksを、VRTXベースで発表する。1987年といえば、Intelの「80386」、Motorolaの「MC68030」、MIPSの「R2000」、Zilogの「Z80000」などが出荷されていた時期であり、本格的な(=OSサポート機能の付いた)32ビットCPUが利用できる時代だった。もちろんそれ以前の、Intelなら「80286」や「80186」、Motorolaの「MC68000/68010/68020」、Zilogの「Z8000」などは組み込み分野で広範に使われており、特にMC68000系列は組み込みにおけるシェアが圧倒的に高かった。

 こうした比較的ハイエンドのプロセッサをターゲットとしてVxWorksは順調にシェアを伸ばしてゆく。また、初期のVxWorksは(VRTXがモノリシックでの構築だったので当然)モノリシックカーネルでの提供であったが、途中からモジュール構造に切り替わっている。もっともこれ、VRTX側の対応なのか、Mentorで書き直したバージョンなのかはもう判断がつかなかった。

 というのは、VRTXの方も、まずVME(Versa Module Eurocard)バックプレーンベースのマルチプロセッサシステムに対応したMPUやMCU向けに、フットプリントを最小にした「VRTX-mc」、パーソナルユース向けの「VRTX-oc」、Machカーネルを取り入れてスケーラビリティを取り入れた「VRTX-sa」などが後追いの形で投入されているからだが、調べた限りではこうした後追いのバージョンではなく当初のVRTX32をベースにVxWorksが構築されており、その後はフォグリン氏が書き直したカーネルを利用しているようなので、モジュラ構造も恐らくは独自のものと思われる。

 ちなみに先ほどのウォールズ氏による追悼記事の中にあった、BSDのTCP/IPスタックうんぬんは、時間的にはもう少し後、1990年に入ってからだったと思われる。他にもマルチプロセッサ対応やメモリ保護/仮想メモリ対応などの機能を、バージョンを上げながらどんどん取り込むことになる。

 どのバージョンで対応したのかという話はちょっと置いておいて、VxWorksを機能的に見れば以下のような特徴を列挙できる。

  • マルチタスク対応:ラウンドロビンとプリエンプティブの両方をサポートする。また高速割込みをサポート
  • モジュラカーネルの採用
  • カーネルとユーザーの動作モード分離
  • バイナリ/カウンター/プライオリティ付きセマフォ/メッセージキュー(メールボックス)など多彩なプロセス間同期/通信機能の提供
  • SMP/AMP/Mixedの多彩なマルチプロセッサ対応
  • エラーハンドリングフレームワークの提供
  • セキュリティおよび暗号化のサポート(X.509とSHA-256)
  • 複数のファイルシステム(HRFS/DOSFS/NFS/TFFS)のサポート
  • POSIX互換
  • 多彩な通信プロトコルのサポート(USB/CAN/Bluetooth/Bluetooth LE/L2CAPなど)。IPv6のサポート
  • ネイティブ64ビットサポート(今のところx64のみ)
  • GUI(OpenGL/OpenVG/Tilcon UI/フレームバッファードライバなど)のサポート

 これらを全て搭載すると、LinuxやWindows並みに重くなる(フットプリントがかなりの量になる)のは間違いないが、逆に最小構成のカーネルだけだと20KB台と非常にコンパクトで、当然ながら必要なモジュールやコンポーネントを選択して構築できるため、組み込み向けの厳しいリソースでも問題なく動作させることができる。

Copyright © ITmedia, Inc. All Rights Reserved.