極めて信頼性の高いオペレーティングシステム(EROS)は、1991年にペンシルベニア大学で開発が開始され、その後ジョンズ・ホプキンス大学とEROSグループLLCによって開発されました。自動的なデータおよびプロセスの永続化、初期段階のリアルタイムサポート、および能力ベースのセキュリティなどの機能を備えています。EROSは純粋に研究用のオペレーティングシステムであり、実際の運用には一度も導入されていません。2005年現在開発は中止され、後継システムであるCapROSに注力することになった。
EROSシステム(およびその関連システム)の最優先目標は、オペレーティングシステムレベルで、重要なアプリケーションを小さな通信コンポーネントに効率的に再構築するための強力なサポートを提供することです。各コンポーネントは、保護されたインターフェースを介してのみ他のコンポーネントと通信でき、システムの他の部分から隔離されています。この文脈における保護されたインターフェースとは、オペレーティングシステムの最下層であるカーネルによって強制されるインターフェースのことです。カーネルは、あるプロセスから別のプロセスへ情報を転送できる唯一のシステム部分です。また、カーネルはマシンを完全に制御し、(適切に構築されていれば)バイパスすることはできません。EROSでは、あるコンポーネントが別のコンポーネントのサービスに名前を付けて呼び出すためのカーネル提供のメカニズムは、プロセス間通信(IPC)を使用するケーパビリティです。カーネルは、ケーパビリティで保護されたインターフェースを強制することで、プロセスへのすべての通信が意図的にエクスポートされたインターフェースを介して到着することを保証します。また、呼び出し元のコンポーネントが呼び出し先のコンポーネントに対して有効なケーパビリティを保持していない限り、呼び出しは不可能であることを保証します。能力システムにおける保護は、多くの場合、隔離と呼ばれるセキュリティポリシーを通じて、あるコンポーネントから別のコンポーネントへの能力の伝播を制限することによって実現されます。
能力システムは、コンポーネントベースのソフトウェア構造を自然に促進します。この組織的なアプローチは、プログラミング言語のオブジェクト指向プログラミングの概念に似ていますが、より大きな粒度で行われ、継承の概念は含まれません。このようにソフトウェアを再構築すると、いくつかの利点が生まれます。
これらの利点を総合すると、より堅牢で安全なシステムが実現します。プレッシーシステム250は、もともと電話交換機での使用を想定して設計されたシステムであり、堅牢性を重視した機能ベースの設計が採用されました。
これまでの多くのシステムとは対照的に、 EROSではリソースの命名と使用のための唯一のメカニズムはケイパビリティであり、そのためEROSは純粋なケイパビリティシステムと呼ばれることもある。一方、IBM iは商業的に成功したケイパビリティシステムの例ではあるが、純粋なケイパビリティシステムではない。
純粋能力アーキテクチャは、十分にテストされ成熟した数学的セキュリティモデルによってサポートされています。これらは、能力ベースのシステムが正しく実装されれば安全になることを形式的に実証するために使用されてきました。いわゆる「安全性プロパティ」は、純粋能力システムに対して決定可能であることが示されています(Lipton を参照)。隔離の基本構成要素である隔離は、純粋能力システムによって強制可能であることが形式的に検証されており[ 1 ]、EROSコンストラクタと KeyKOSファクトリによって実用的に実装されています。他のプリミティブ保護メカニズムについては、同等の検証は存在しません。文献には、安全性が一般的には数学的に決定不可能であることを示す基本的な結果があります(HRU を参照。ただし、制限されたケースの無制限の集合に対してはもちろん証明可能であることに注意してください[ 2 ] )。より実用的な重要性として、現在の市販のオペレーティングシステムに搭載されているすべてのプリミティブ保護メカニズムに対して安全性が偽であることが示されています。安全性は、あらゆるセキュリティ ポリシーの成功裡の実施に必要な前提条件です。実際には、この結果は、現在の汎用システムを原理的に安全にすることは不可能であるが、十分な注意を払って実装すれば、能力ベースのシステムを安全にすることは潜在的に可能であることを意味する。EROSもKeyKOSもこれまで侵入されたことはなく、その分離メカニズムも内部攻撃者によって突破されたことはないが、2つの実装が十分に慎重であったかどうかは不明である。Coyotosプロジェクトの目標の1つは、ソフトウェア検証技術を適用することで、コンポーネントの分離とセキュリティが確実に達成されたことを実証することであった。
L4.secシステムは、 L4マイクロカーネルファミリーの後継システムであり、能力ベースのシステムです。このシステムは、EROSプロジェクトの成果から大きな影響を受けています。EROSの高性能呼び出しに関する研究は、Jochen Liedtke氏によるL4マイクロカーネルファミリーでの成功に強く触発されたものであり、その影響は相互的なものです。
EROSの主要開発者はジョナサン・S・シャピロでした。彼はまた、 EROSオペレーティングシステムの「進化の一歩」であるCoyotosの推進力でもありました。 [ 3 ] [ 4 ]
EROSプロジェクトは、1991年に、以前のオペレーティングシステムであるKeyKOSをクリーンルーム環境で再構築することから始まりました。KeyKOSはKey Logic社によって開発され、Tymshare社が開発した以前のGreat New Operating System In the Sky(GNOSIS)システムの開発の直接的な継続でした。1991年のKey Logic社の倒産を取り巻く状況により、KeyKOSのライセンス供与は非現実的になりました。いずれにせよKeyKOSは一般的な汎用プロセッサでは動作しなかったため、公開されているドキュメントに基づいて再構築するという決定がなされました。
1992年末までに、プロセッサアーキテクチャは能力概念の導入以来大きく変化しており、コンポーネント構造のシステムが実用的であるとはもはや自明ではなくなってきていた。同様に多数のプロセスとIPCを重視するマイクロカーネルベースのシステムは、深刻なパフォーマンス上の課題に直面しており、これらをうまく解決できるかどうかは不確かだった。x86アーキテクチャが明らかに主流のアーキテクチャとして台頭しつつあったが、386および486における高価なユーザ/スーパーバイザ遷移レイテンシは、プロセスベースの分離にとって深刻な課題となっていた。EROSプロジェクトは研究活動へと発展し、ペンシルベニア大学に移管され、シャピロの博士論文研究の中心となった。1999年までに、IPCの卓越した速度で知られるL4マイクロカーネルファミリーと直接競合するパフォーマンスを持つ、 Pentiumプロセッサ向けの高性能実装が実証された。EROSの隔離メカニズムは正式に検証され、その過程でセキュアな能力システムの一般的な形式モデルが作成された。
2000年、シャピロはジョンズ・ホプキンス大学のコンピュータサイエンス学部の教員に加わった。ホプキンスでは、EROSカーネルが提供する機能を使用して、アプリケーションレベルで安全で防御可能なサーバーを構築する方法を示すことが目標だった。国防高等研究計画局と空軍研究所の資金提供を受けて、EROSは信頼できるウィンドウシステム[ 5 ] 、高性能で防御可能なネットワークスタック[ 6 ] 、そして安全なウェブブラウザの始まりの基盤として使用された。また、軽量静的チェックの有効性を調査するためにも使用された[ 7 ] 。2003年、同期IPCプリミティブに基づくシステムアーキテクチャ(特にEROSとL4を含む)に固有の、非常に困難なセキュリティ問題がいくつか発見された[ 8 ]。EROSの開発は、これらの問題を解決するCoyotosの開発に注力するために中断された。
2006年現在EROSとその後継システムは、汎用ハードウェア上で動作する、広く利用可能な唯一の機能システムである。
EROSとCoyotosの開発は元のグループによって中断されましたが、後継システムがあります。[ 4 ] EROSの後継であるCapROS(Capability Based Reliable Operating System)は、オープンソースの商用指向のオペレーティングシステムです。[ 9 ]
のアクティブな作業は数か月前に停止しており、再開される可能性は低い。