VxWorks は、最も確立されていて、広く採用されているスマートデバイス搭載ソフトウェアのオペレーティングシステムです。世界中で3億台を超えるデバイスに搭載され、そのパフォーマンス、スケーラビリティ、フットプリントにより、速度と信頼性の向上を実現しています。次世代 VxWorks は、さらにパワフルな新機能を加え、オープン性、パフォーマンス、信頼性、相互運用性をいっそう強化しています。
VxWorks 6.x により、次のことが実現できます。
- オープンスタンダードの採用により、開発者の生産性を最適化
- MMUベースのメモリ保護により、信頼性を強化
- エラーマネジメントの強化により、市場投入までの時間を短縮
- VxWorks ベースの既存IPおよびオープンソースなど他の既存 IP をシームレスに移行
- 高いパフォーマンス、信頼性、決定性、低遅延、スケーラビリティなど、VxWorks の中核となる特性を活かした製品の継続的な開発
互換性
VxWorks 6.x の中心目標のひとつは、VxWorks 5.5 からの容易なマイグレーションを可能にすることでした。そのため、VxWorks のカーネルは VxWorks 5.5 のカーネルの実行環境を完全にサポートしており、VxWorks 5.5 用に開発あるいは移植されたほとんどのBSP、ドライバ、カーネルアプリケーションを VxWorks 6.x のカーネルで実行することができます。デフォルトでは、VxWorks 6.x のカーネルは VxWorks 5.5 のカーネルと同じ構造に構成されており、同じ機能を提供します。そのうえで開発者は、VxWorks 6.x に新たな機能を追加できます。
また、VxWorks 6.x は、オープンスタンダードへの対応をいっそう強化しています。これにより、オペレーティングシステムとオープンソース・アプリケーションの互換性がいっそう高まり、次の点が改善されました。
- オープンソースおよびサードパーティによるソフトウェアの移植が容易: VxWorks 6 はPOSIX PSE52 準拠認定を最初に取得したオペレーティングシステムであり、POSIX PSE53、PSE54、および 1003.1 規格への準拠も強化
- プログラミングモデルに標準的なプロセスを使用することにより、VxWorks 6 上での新規アプリケーションのプログラミングの習得が容易
- IPv6 対応により、次世代ネットワーク接続デバイスの開発が可能
- 標準的なソケットを使用したモジュール形式のメッセージチャネルにより、共通の通信インタフェースを提供
最先端のメモリ保護
VxWorks 6.x によって、MMU ベースのメモリ保護を介したデバイス信頼性の強化が可能となります。VxWorks は、従来的なカーネルモードの実行に加え、プロセスベースかつユーザモードのアプリケーション実行を採用しています。カーネルは、VxWorks リアルタイムプロセッサ(RTP)上で実行しているユーザモードのアプリケーションから保護されます。また、これらは相互に保護されます。
メッセージチャネル
メモリ保護に伴い、保護されたメモリスペースにおけるアプリケーションのセグメンテーションという問題が起こります。メッセージチャネルは接続指向かつ両方向の新型メッセージングメカニズムで、メモリ境界を超えるタスク間通信を可能にし、VxWorks に搭載された従来型のメッセージングメカニズムを補完します。
様々なプロセスまたはカーネルに存在するタスクは、その位置に関係なく相互の接続を確立することができます。タスク間通信は、プロセス上のタスクとカーネル上のタスク、異なるプロセス上のタスク、あるいは同一プロセス上のタスクの間に起こり得るものです。VxWorks 6.x では、メッセージチャネルはオープンソースで業界標準の TIPC(透過型プロセス間通信)プロトコルを使用し、VxWorks、Linux、あるいは 他のTIPC 対応OSを実行できるマルチプロセッサシステムのタスクへのメッセージングを拡張します。
メモリマネジメント
VxWorks 6.x は、MMU に対応したメモリ保護を提供する一方で、VxWorks の旧バージョンすべてに使用されている非オーバーラップ型のアドレススペースも引き続き採用しています。非オーバーラップ型のメモリモデルは、これまでの VxWorks のコードとの互換性を高め、次のような利点をもたらします。
- メモリ・マップドI/Oや不必要なキャッシュフラッシュを要求せずに高度な決定性と低遅延を維持
- 独自のアドレスポインタにより、既存の VxWorks ドライバおよびアプリケーションの再使用が可能で、新規ドライバおよびアプリケーションの開発が容易
- MMU 対応プロセッサも MMU-less プロセッサもサポートし、デバイスメーカーはより柔軟に、性能や予算の要件に合ったプロセッサの選択が可能
- メモリ翻訳テーブルが不要なので、省メモリスペースとアクセス性能の向上を実現
エラーマネジメント
ウインドリバーは、開発やテスト時に発生したエラー状況の分離、診断、修正を行うエラーマネジメントフレームワークを提供しています。このフレームワーク内で不具合を管理することができるので、デバイス診断を目的とした不具合を再現する必要を低減できます。エラーマネジメントフレームワークは、エラー検出/レポーティングテクノロジを備え、購入後ただちに使えるデバイスソフトウェアのデバッグ基盤を提供するとともに、拡張も可能なので、お客様は信頼性の高いデバイスを設計できます。
プロセッサ抽象化レイヤ
VxWorks 6.x では、従来の VxWorks より少ない手間で、プロセッサ抽象化レイヤ(PAL)のOS サポートを類似のアーキテクチャファミリに拡張することができます。アーキテクチャ固有の PAL は、各アーキテクチャファミリの機能的相互接続を規定し、オペレーティングシステムから該当するハードウェア特性を抽象化します。アプリケーションに対して透過的であると同時に、アーキテクチャファミリを対象とする PAL が存在することから、プロセッサの変種の迅速な導入を促進し、VxWorks 6.x のお客様は市場投入までの時間が短縮できます。
Wind River VxMP
Wind River VxMP は、ホモジニアスAMP を対象とする、高速かつ軽量な共有メモリベースのフレームワークで、各コアは VxWorks の個々のコピーを動作させます。VxWorks の構成可能なオプションコンポネントである VxMP は、セマフォ、メッセージキュー、あるいはすべてのプロセッサからアクセス可能なメモリパーティションを用いて、異なるプロセッサに分散したタスク間の同期化を可能にします。VxMP は、透過インタフェースの長所を活用し、ローカルオブジェクトを操作するために使用するのと同じルーチン内での共有メモリオブジェクト操作を可能にします。パケット交換を必要としないため高速で、RAM あるいは独立したメモリカードのメモリを使用することができます。