Green Hills Softwareのオペレーティングシステムの主力商品であるリアルタイムOS INTEGRITYは、パーティショニングアーキテクチャに基づき、十全な信頼性、絶対的なセキュリティ、および最大のリアルタイム性能を持つ組込みシステムを実現します。長年にわたりリーダーシップを発揮していろいろな業界の認証に合格してきたことで、INTEGRITYはリアルタイムOSの安全性、セキュリティ、および信頼性の基準となりました。
初回リリース以来INTEGRITYは、組込み開発者がアプリケーションのセキュリティ、信頼性、および性能の要件を最大限に達成できることを考えて設計されてきました。
このため、INTEGRITYはハードウェアメモリ保護で組込みアプリケーションを分離、保護しています。セキュアなパーティションによってタスクごとに実行に必要なリソースを確保しながらも、サービス拒否攻撃、ワーム、およびトロイの木馬など、悪意のコードをシャットアウトしてOSとユーザータスクを確実に守ります。
他のメモリ保護機構のあるOSとは違い、INTEGRITYはリアルタイム性能を犠牲にすることなくセキュリティと保護機能を実現しています。
製品開発を速やかに始められるように、Green Hills SoftwareはINTEGRITYに統合・検証済みのミドルウェアを幅広く用意しています。
上記のミドルウェアパッケージはすべて、INTEGRITYの優れたリアルタイムOSの機能とシームレスに統合され、その機能をフル活用できるよう、統合とテストがなされた状態でリリースされます。主要な産業向けに、Green Hills Softwareはプラットフォームに統合した形でエコシステムを用意しています。プラットフォームにはINTEGRITYだけでなく、開発ツール、業界に合わせて作られたミドルウェア、リファレンスハードウェア、およびドキュメントなどが含まれます。
高統合型プラットフォームの中にあらゆるコアソフトウェアとドキュメントが統合されていることにより、開発者には以下のような利点があります。
INTEGRITYは組込みシステムで分離、損害限定、および情報流通管理のポリシーを厳格に適用するために必要な機能をすべて備えています。また、今日の複雑かつ常時接続のアプリケーションにセキュアなネットワーク機能を持たせることができます。
INTEGRITYの分離カーネルは、プロセスの書き込みが割り当てられたメモリ領域を超えないように抑止することで悪意のコードによる被害を防ぎます。さらに、INTEGRITYのパーティションはデータのあるパーティションの外側からの意図しないアクセスも防ぎます。
従来のOSはクラッシュやロック、制御できない実行などがあり得るので、そうなると衛星の喪失、車のエンスト、メディカルモニターの故障など、大きな金銭的損害が発生します。しかしINTEGRITYは、INTEGRITY自体にもクリティカルなアプリケーションにも、そうした損害につながる恐れのある故障が起こらないようにします。
そのため、INTEGRITYは個々のプロセスに保証付きシステムリソースを配分し、別のプロセスが何かをしようとしていても、CPU時間とメモリリソースが常時利用できるようにします。
悪意のアクセスや予期しないイベントがあると、システムリソースへのアクセスが妨げられ、システムプロセスが意図通りに動作しなくなることがあります。このようなサービス拒否攻撃を防ぐために、INTEGRITYはある決まったCPU時間とメモリの枠をプロセスごとに割り振ることができます。所定のプロセスの時間枠を保証することにより、実行中のタスクがその枠を超えて実行されることがないため、決められたリソース枠に基づいて他のプロセスの一貫性も維持することができます。
ハードウェアのメモリ管理ユニット(MMU)を初めて活用したRTOSとして、INTEGRITYはセキュリティや保護のためにリアルタイム性能を犠牲にしない、厳密にリアルタイムなOSです。INTEGRITYはイベントに対してナノ秒単位の応答を保証しています。
すべてのINTEGRITYカーネルサービスはシステムコールのオーバーヘッドが最小になるよう慎重に最適化されています。システムコールは他の実行のために一時停止させることができます。INTEGRITYはリアルタイムスケジューラを用いていろいろな優先度レベルをサポートし、CPUの分配率を的確に管理できます。
INTEGRITYは常に、最高優先度の割込みに絶対最小待ち時間を提供します。これを保証するために、カーネルは割込みを隠したりブロックしたりすることはありません。また、カーネルは一時的にでもどこかのシステムの割込みを妨げそうな長い待ち時間を持つ命令を実行しないようにします。
INTEGRITYはいろいろな方法で次のような障害からメモリを保護します。
INTEGRITY独自のメモリ割り当てシステムはアドレス空間が他のメモリを枯渇させてしまわないように管理します。
カーネルメモリの枯渇を防ぐために、INTEGRITYはプロセスの要求に対する応答で作成されたメッセージ、セマフォ、その他のカーネルオブジェクトがカーネルメモリを使用しないようにします。その代わりに、カーネルは要求元のプロセスが用意したメモリリソースを使ってサービスを実行します。
ユーザースタックのオーバーフローのリスクをなくすために、INTEGRITYのカーネルは独自のメモリスタックを持っています。これがないと、カーネルはユーザープロセスのスタックにアクセスしなければなりませんが、その場合、スタックが(カーネルなどの)未知のコードに使われる時にユーザープロセスには最大スタックサイズがどのくらいになるか予想できないため、問題となることがあります。
INTEGRITYの新型のアーキテクチャはマルチコアプロセッサをターゲットにした組込みシステムに向いています。INTEGRITYは組込みのリアルタイム動作に最適化された非対称マルチプロセッシング(AMP)や対称マルチプロセッシング(SMP)を完全にサポートしています。そのため、組込みシステム設計者はタスクに合ったマルチプロセッシングアーキテクチャを選べます。Green Hillsの統合開発環境MULTIにある高性能マルチコアデバッギング機能と合わせて、開発期間の短縮と同時に、システムの性能と信頼性を高めることが可能です。
INTEGRITY Multivisorは堅牢で移植性の高い仮想化基盤で、今日のマイクロプロセッサのいろいろなハードウェア機能を柔軟に扱えます。ISVはゲストOSへの変更を行わず、行ったとしても最小限に抑えて、利用可能なハードウェア仮想化機能の使用を最大限拡大します。
半導体メーカーの多くは現在ハードウェア支援型仮想化技術を保有しています。例えば、ARMはVirtualization Extensions(VE)、IntelはVT-xやVT-dを持っていて、それに仮想化の可能なPower Architectureなどもあります。こうしたアーキテクチャについては、INTEGRITY MultivisorはゲストOSへの変更がまったく不要な高性能の「フル仮想化」をサポートしています。ゲストやアプリケーション同士でデバイスアクセスを共有しなければならない場合は、ハードウェアへのアクセスを調整するアプリケーションを簡単に追加できます。
ハイパーバイザモード支援機能のないプロセッサでは、INTEGRITY MultivisorはゲストOSに対して、慎重に構成され、介入度を最小限に抑えた変更を加え、移行や移植の容易さを犠牲にせずに性能を最大限引き出します。
INTEGRITY Multivisorはコアを管理する柔軟で強力な仕組みを持っています。非対称マルチプロセッシング(AMP)モデルでは、MultivisorはゲストOSを静的にコアにバインドできます。また対称的マルチプロセッシング(SMP)モデルではシステム要件に合わせて負荷を動的にスケジューリングできます。