開発のXNUMX年半後 の発売 プロジェクトの新しいバージョン 「ミラージュOS4.0」 これにより、単一のアプリケーション用のオペレーティングシステムを作成できます。この場合、アプリケーションは、オペレーティングシステム、個別のOSカーネル、および任意のレイヤーを使用せずに実行できる自己完結型の「カーネル」として提供されます。
オペレーティングシステムに固有のすべての低レベル機能は、アプリケーションに接続されたライブラリとして実装されます。
MirageOSについて
アプリケーション 任意のオペレーティングシステムで開発してから、専用のカーネルにコンパイルできます (ユニカーネルの概念)POSIXプロセスとして、モバイルプラットフォーム上のXen、KVM、BHyve、およびVMM(OpenBSD)ハイパーバイザー上で直接実行できます。 互換性があるか、Amazon ElasticComputeCloudとGoogleComputeEngineのクラウド環境。
生成された環境 余分なものは何も含まれておらず、ハイパーバイザーと直接対話します ドライバーやシステムレイヤーがないため、オーバーヘッドが大幅に削減され、セキュリティが向上します。
MirageOSを使用する それはXNUMXつの段階に要約されます: 環境で使用されるOPAMパッケージの定義を使用して構成を準備し、環境を構築して、環境を起動します。 ハイパーバイザー上で実行するランタイムは、Solo5カーネルに基づいています。
かかわらず アプリケーションとライブラリは高級言語OCaml上に構築されています。 結果として得られる環境は、かなり良好なパフォーマンスと最小サイズを示します(たとえば、DNSサーバーはわずか200 KBです)。
環境保全も簡素化され、 プログラムを更新したり、構成を変更したりする必要がある場合は、新しい環境を作成して実行するだけで十分です。 ネットワーク操作(DNS、SSH、OpenFlow、HTTP、XMPP、Matrix、OpenVPNなど)を実行し、ストレージを操作し、並列データ処理を提供するために、OCaml言語の数百のライブラリがサポートされています。
MirageOS4.0のメインニュース
提示されるMirageOSのこの新しいバージョンでは プロジェクトビルドプロセスの変更 とユニカーネル。 代わりに ビルドシステムの オカムビルド 以前に使用された、 使用されています 砂丘と地元のリポジトリ (モノレポ)。
このようなリポジトリを作成するには、 新しいユーティリティ、opam-monorepoを追加しました。 これにより、パッケージ管理とビルドおよびソースを分離することができました。 opam-monorepoユーティリティ ロックファイルを作成する仕事をします プロジェクト関連の依存関係、依存関係コードのダウンロードと抽出、および砂丘ビルドシステムを使用するための環境の構成については、実際のビルドが砂丘によって行われることにも言及する価値があります。
目立つもう一つの変化はそれです 繰り返し可能なビルドプロセスが提供されます。 ロックファイルの使用 依存関係のバージョンへのリンクを提供します また、同じコードでいつでもビルドプロセスを完全に繰り返すことができます。
また、 新しいクロスコンパイルプロセスを実装しました クロスコンパイル機能は、共通のビルド環境からサポートされているすべてのターゲットプラットフォームに提供されます。この環境では、特にCリンクライブラリと依存関係がクロスコンパイルされ、これらのリンクをメインパッケージに追加する必要はありません。
一方で、 opam-monorepoユーティリティをインストールできます opamパッケージマネージャーを使用して、砂丘ビルドシステムを使用するプロジェクトで使用できます。 砂丘での依存関係の作成に関する問題を解決するパッチを維持するには、 XNUMXつのリポジトリが作成されました 砂丘-宇宙/オパム-オーバーレイと砂丘-宇宙/ミラージュ-オパム-オーバーレイ、mirageCLIユーティリティを使用するとデフォルトで有効になります。
の その他の変更 目立つ:
- クロスコンパイルは、砂丘ビルドシステムによって提供されるワークスペースを使用して編成されます。
- 新しいターゲットプラットフォームのサポートが追加されました。たとえば、RaspberryPi4ボードで動作するスタンドアロンアプリケーションを作成する機能が実験的に提供されています。
- MirageOSの一部をOCaml開発に関連するエコシステムに統合して、ユニカーネルの形でアプリケーションのアセンブリを簡素化するための作業が行われました。
- 多くのMirageOSパッケージが砂丘ビルドシステムに移植されています。
- MirageOSとCおよびRustライブラリの簡素化された統合。
- libc(libcフリー)を回避するために提案された新しいOCamlランタイム。
- 標準の統合開発環境と統合するためにMerlinサービスを使用する機能を提供しました。
最後に、 あなたがそれについてもっと知りたいのなら、詳細を確認できます 次のリンクで。