ハイパーバイザー上でアプリケーションを実行するためのプラットフォーム、MirageOS 4.0 のリリース

4.0 年半の開発を経て、MirageOS XNUMX プロジェクトのリリースが公開されました。これにより、XNUMX つのアプリケーション用のオペレーティング システムの作成が可能になります。このプロジェクトでは、アプリケーションは自己完結型の「ユニカーネル」として提供され、アプリケーションなしで実行できます。オペレーティング システム、別個の OS カーネル、および任意のレイヤーの使用。 OCaml 言語はアプリケーションの開発に使用されます。 プロジェクト コードは、無料の ISC ライセンスに基づいて配布されます。

オペレーティング システムに固有のすべての低レベル機能は、アプリケーションに付属するライブラリの形式で実装されます。 アプリケーションは任意の OS 上で開発でき、その後、専用のカーネル (ユニカーネル概念) にコンパイルされ、Xen、KVM、BHyve、および VMM (OpenBSD) ハイパーバイザー、モバイル プラットフォーム上で直接実行できます。 POSIX 準拠環境またはクラウド環境 Amazon Elastic Compute Cloud および Google Compute Engine におけるプロセスの形式。

生成された環境には余分なものが含まれておらず、ドライバーやシステム層を使用せずにハイパーバイザーと直接対話するため、オーバーヘッド コストが大幅に削減され、セキュリティが向上します。 MirageOS の操作は、環境で使用される OPAM パッケージの定義による構成の準備、環境の組み立て、環境の起動の 5 つの段階に分かれます。 ハイパーバイザー上での動作を保証するために、ランタイムは SoloXNUMX カーネルに基づいて構築されています。

アプリケーションとライブラリが高レベルの OCaml 言語で作成されているにもかかわらず、結果として得られる環境は、かなり優れたパフォーマンスと最小限のサイズ (たとえば、DNS サーバーが占有するのはわずか 200 KB) を示します。 プログラムの更新や設定変更が必要な場合には、新たに環境を作成して起動するだけで済むため、環境のメンテナンスも簡素化されます。 OCaml 言語の数百のライブラリは、ネットワーク操作 (DNS、SSH、OpenFlow、HTTP、XMPP、Matrix、OpenVPN など) の実行、ストレージの操作、並列データ処理の提供のためにサポートされています。

主な改善点:

  • プロジェクトとユニカーネルをコンパイルするプロセスが変更されました。 以前に使用されていた ocamlbuild アセンブリ システムの代わりに、dune ツールキットとローカル リポジトリ (monorepo) が使用されます。 このようなリポジトリを作成するために、新しいユーティリティ opam-monorepo が追加されました。これにより、ソース コードからのビルドからパッケージ管理を分離できるようになります。 opam-monorepo ユーティリティは、プロジェクト関連の依存関係のロック ファイルの作成、依存関係コードのロードと抽出、dune ビルド システムを使用するための環境のセットアップなどの作業を行います。 実際の組み立ては砂丘ツールキットによって実行されます。
  • 反復可能なビルドプロセスが提供されます。 ロック ファイルを使用すると、依存関係バージョンへのリンクが提供され、いつでも同じコードでビルド プロセスを完全に繰り返すことができます。
  • 新しいクロスコンパイル プロセスが実装され、サポートされているすべてのターゲット プラットフォームを XNUMX つの共通のビルド環境からクロスコンパイルする機能が提供されます。これにより、C バインディングを持つ依存関係やライブラリもクロスコンパイルされます。これらのバインディングを追加する必要はありません。メインパッケージ。 クロスコンパイルは、dune ビルド システムによって提供されるワークスペースを使用して編成されます。
  • 新しいターゲット プラットフォームのサポートが追加されました。たとえば、Raspberry Pi 4 ボード上で実行する自己完結型アプリケーションを構築する実験的な機能が提供されました。
  • MirageOS の一部を OCaml 言語での開発に関連するエコシステムに統合し、ユニカーネルの形式でアプリケーションのアセンブリを簡素化する作業が行われてきました。 多くの MirageOS パッケージが dune ビルド システムに移植されています。 opam-monorepo ユーティリティは、opam パッケージ マネージャーを使用してインストールでき、dune ビルド システムを使用するプロジェクトで使用できます。 dune での依存関係の構築に関する問題を解決するパッチを維持するために、dune-universe/opam-overlays と dune-universe/mirage-opam-overlays という XNUMX つのリポジトリが作成されました。これらは、mirage CLI ユーティリティを使用するときにデフォルトで有効になります。
  • MirageOS と C および Rust ライブラリの統合が簡素化されました。
  • libc なし (libc-free) を可能にする新しい OCaml ランタイムが提案されています。
  • Merlin サービスを使用して、標準の統合開発環境と統合することができます。

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

コメントを追加します