Mirとmiralとmiroilプロジェクトの関係性
MirプロジェクトにはMir以外にもmiralやmiroilといったプロジェクトがあります。これらの関係性が以下で紹介されています。
Mirとは
「Mir」は次世代のディスプレイサーバーです。デスクトップやモバイルデバイス、そしてIoTまで、幅広い分野をサポートするディスプレイサーバーです。
デスクトップPCから見れば、既存のXサーバーを置き換えるソフトウェア(Wayland)になります。
「Mir」に関する詳細は、以下を参照してください。
- 公式サイト:Mir Display Server
- ユーザー向けドキュメント:Getting and Using Mir
- 開発者向けドキュメント:Welcome to Mir
- GitHub:MirServer/mir
- コミュニティー:Mir category
Unity8とMirとコンバージェンス
かつてCanonicalはスマフォやPCなど様々なフォームファクターに対応したグラフィカルシェルを開発するプロジェクトを推進していました。グラフィカルシェル(いわゆるデスクトップ環境にあたる)ソフトウェアがUnity8であり、そのUnity8を支えるディスプレイサーバーがMirです。
しかしこのプロジェクトは中止され、MirはそのままCanonicalに残りIoT向けとして、そして今はそれに加えWaylandコンポジターとしても引き続き開発されています。
その一方でUnity8は残念ながらCanonicalが撤退し、今はUBportsによって引き継がれ開発が継続されています。
後にUnity8はUBportsによって名称がLomiriに変更されました。
miral
昔のMirはAPIやABIが安定せず、Mirを利用するUnity8をうまくビルドするために、ソースコードの切り分け作業が必要になっていました。いわゆる技術的な負債です。
この負債を解消するために生まれたのが、このmiralです。
miralは「Mir Abstraction Layer」のことであり、抽象レイヤーを提供することで安定したABIを提供できるようになりました。
グラフィカルシェルを開発するなら、このmiralを利用することになります。
miroil
さてUnity8をmiral上で動作するように修正する作業が行われていましたが、この作業が完了する前にUnity8の開発が中止になってしまいました。先程も紹介したとおりそのUnity8はUBportsに引き継がれLomiriになりましたが、Lomiriでもまだ作業が完了していません。
Mirとしても昔のMirが提供していた古いAPIを削除したいのですが、現状Lomiriはその古いAPIに依存しており、そのAPIを削除してしまうとLomiriが動作しなくなります。
そこでMirから古いAPIを削除するために、Lomiriが利用している古いAPIを提供するライブラリーが開発されました。
それがこのmiroilです。
ちなみにmiroilという名称はLomiriのアナグラムになっています。
miroilはLomiriが新しいMirに移行するまで維持されるものであり、一時しのぎとして提供されているLomiriのためのライブラリーです。