Genodeベースの国産OS Phantomのプロトタイプは年末までに完成予定

Dmitry Zavalishin 氏は、Phantom オペレーティング システムの仮想マシンを Genode マイクロカーネル OS 環境で動作するように移植するプロジェクトについて話しました。 インタビューでは、Phantom のメイン バージョンはすでにパイロット プロジェクトの準備が整っており、Genode ベースのバージョンは年末に使用できるようになる予定であると述べています。 同時に、これまでのところプロジェクトのウェブサイトでは実行可能な概念的プロトタイプのみが発表されており、その安定性と機能性は産業利用に適したレベルには達しておらず、最も近い計画の中にアルファ版の形成が含まれています。サードパーティ開発者による実験に適しています。

プロジェクト コードは LGPL ライセンスに基づいて配布されていますが、メイン リポジトリの最後の変更日は 2019 年 2020 月です。 プロジェクトに関連する公開アクティビティは、Genode のフォークを備えたリポジトリに集中しており、XNUMX 年 XNUMX 月以降、イノポリス大学の学生であるアントン アントノフによって維持されています。

2000 年代初頭以来、Phantom オペレーティング システムはドミトリー ザヴァリシンの個人プロジェクトとして開発され、2010 年以降はドミトリーが設立したデジタル ゾーン会社の傘下に移管されました。 このシステムは、高い信頼性を重視し、「すべてがファイルである」ではなく「すべてがオブジェクトである」という概念を採用していることで注目に値します。これにより、メモリ状態の保存とメモリの継続的なサイクルによりファイルの使用が排除されます。仕事。 Phantom のアプリケーションは終了されず、一時停止され、中断したところから再開されるだけです。 すべての変数とデータ構造は、アプリケーションが必要とする限り保存でき、プログラマはデータの保存に特別な注意を払う必要はありません。

Phantom のアプリケーションはバイトコードにコンパイルされ、Java 仮想マシンと同様のスタックベースの仮想マシンで実行されます。 仮想マシンはアプリケーション メモリの永続性を提供します。システムは、仮想マシンの状態のスナップショットを永続メディアに定期的にフラッシュします。 シャットダウンまたはクラッシュ後は、最後に保存されたメモリ スナップショットから作業を続行できます。 スナップショットは、仮想マシンを一時停止せずに非同期で作成されますが、スナップショットは、仮想マシンが停止され、ディスクに保存され、再び開始されたかのように、XNUMX 回限りのスライスをキャプチャします。

すべてのアプリケーションは共通のグローバル アドレス空間で実行されるため、カーネルとアプリケーションの間でコンテキストを切り替える必要がなくなり、参照渡しを通じてオブジェクトを交換できる仮想マシンで実行されるアプリケーション間の通信が大幅に簡素化され、高速化されます。 アクセスの分離はオブジェクトのレベルで実行され、オブジェクトへの参照は、対応するメソッドを呼び出すことによってのみ取得できます (ポインター演算はありません)。 数値を含むすべてのデータは別のオブジェクトとして扱われます。

アプリケーションの場合、作業は継続的に行われ、OS の再起動、クラッシュ、コンピューターのシャットダウンに依存しません。 Phantom のプログラミング モデルは、オブジェクト プログラミング言語の停止しないアプリケーション サーバーを実行することにたとえられます。 Phantom 用の Java プログラムの移植は、アプリケーション開発の主な方法の XNUMX つと考えられており、Phantom 仮想マシンと JVM の類似性によって容易になります。 このプロジェクトでは、Java 言語用のバイトコード コンパイラに加えて、Python と C# 用のコンパイラ、および WebAssembly 中間コードからのトランスレータの実装を作成する予定です。

ビデオやオーディオの処理など、高いパフォーマンスを必要とする操作を実行するために、ネイティブ コードを使用してバイナリ オブジェクトを別のスレッドで実行することができます (バイナリ オブジェクトの構築には LLVM が使用されます)。 低レベルのカーネル サービスにアクセスするために、一部の VM クラス (「内部」クラス) が OS カーネル レベルで実装されます。 Linux アプリケーションを実行するために、Unix プロセスの動作に必要な呼び出しをエミュレートする POSIX 層が提供されます (POSIX 層でのアプリケーションの永続性はまだ提供されていません)。

Genodeベースの国産OS Phantomのプロトタイプは年末までに完成予定

従来の Phantom OS には、仮想マシンに加えて、スレッド、メモリ マネージャー、ガベージ コレクター、同期メカニズム、I/O システム、および機器を操作するためのドライバーが実装された独自のカーネルが含まれているため、仮想マシンの導入が大幅に複雑になります。プロジェクトを広範囲に使用できるように準備します。 これとは別に、ネットワーク スタック、グラフィック サブシステム、およびユーザー インターフェイスを備えたコンポーネントが開発されています。 グラフィック サブシステムとウィンドウ マネージャーがカーネル レベルで動作することは注目に値します。

プロジェクトの安定性、移植性、セキュリティを向上させるために、ドイツの Genode Labs が開発を監督しているオープン マイクロカーネル オペレーティング システム Genode のコンポーネントを使用して Phantom 仮想マシンを動作させる試みが行われました。 Genode ベースの Phantom を試してみたい方のために、Docker ベースの特別なビルド環境が用意されています。

Genode を使用すると、テスト済みのマイクロカーネルとドライバーを使用できるだけでなく、ドライバーをユーザー空間に取り込むことも可能になります (現在の形式では、ドライバーは C で記述され、Phantom カーネル レベルで実行されます)。 特に、数学的信頼性検証に合格し、形式言語で指定された仕様に完全に準拠した実装であることが確認されたseL4マイクロカーネルの利用が可能となります。 Phantom仮想マシンについても同様の信頼性証明を用意し、OS環境全体の検証を可能にする可能性が検討されています。

Genode ベースのポートの主な応用分野は、さまざまな産業用および組み込みデバイス用のアプリケーションの開発です。 現時点では、仮想マシンに対する一連の変更がすでに準備されており、Genode 上で実行されるバインディングがカーネルの永続コンポーネントとメインの低レベル インターフェイスに追加されています。 Phantom 仮想マシンはすでに 64 ビット Genode 環境で動作可能ですが、VM はまだ永続モードで実装されておらず、ドライバー サブシステムを再加工する必要があり、ネットワーク スタックとグラフィック サブシステムを備えたコンポーネントはGenodeに適応される予定です。

Genodeベースの国産OS Phantomのプロトタイプは年末までに完成予定
Genodeベースの国産OS Phantomのプロトタイプは年末までに完成予定
Genodeベースの国産OS Phantomのプロトタイプは年末までに完成予定


出所: オープンネット.ru

コメントを追加します