私はこのプロジェクトを知っています。質問は、「マネージコードを使用して実際のOSを作成できるか、またはこのプロジェクトで作成するOSがHelloWorldOSであるか」ということです。オペレーティングシステムはハードウェアを完全に制御する必要がありますが、これで実行できますか?他にプロジェクトがあれば
コスモスプロジェクトを教えてください
1 に答える
はい、できます。「Sing#」(それ自体がC#の拡張である「Spec#」の拡張バージョン)で完全に管理されたオペレーティングシステムを作成するためのMicrosoftの研究プロジェクトである Singularityを参照してください。これは概念の単なる研究プロジェクトであり、WindowsやMaxOSXなどの「完全な」オペレーティングシステムとして意図されたものではないことを強調する価値があります。
ソースコードはCodePlexで入手できます。コードをダウンロードしてビルドし、エミュレーターで自分で実行できます(正確な手順は思い出せませんが、自分で作成しました。十分に文書化されており、比較的簡単です)。
システムの一部、具体的にはブートローダーと最低レベルのx86割り込みディスパッチコードはアセンブリ/ Cで記述されていますが、これは本質的にほとんど避けられません(本質的にプラットフォームに大きく依存します-制御するx86命令を記述し、基本的なハードウェアに応答します)。低レベルの割り込みは、オペレーティングシステムが実際にどのように機能するかという点でも特に興味深いものではないため、個人的には、これを「完全に管理された」定義をだますとは考えていません。
SingularityのWikipediaページを見ると、CosmosやC#の代わりにJavaを使用するいくつかの同様の試みを含む5〜6の同様のプロジェクトもあります。
Singularity OSの焦点はセキュリティと依存関係にありましたが、Singularity Project1の概要(PDF)のいくつかの基本的なベンチマークによると、それらのアーキテクチャのパフォーマンスは実際には他の「より従来型の」オペレーティングシステムのパフォーマンスと同等でした。 :
...これらの数値は、私たちが提案したアーキテクチャがパフォーマンスの低下を招かないだけでなく、多くの場合、従来のアーキテクチャと同じかそれよりも高速であることを示しています。言い換えれば、それはシステムを構築するための実際的な基礎です。