Ubuntu Weekly Recipe

第652回 キミはMirを憶えているか

この記事を読むのに必要な時間:およそ 5 分

Ubuntuは来年4月にリリースされる21.04から,ついにディスプレイサーバーの初期設定をWaylandに変更することがアナウンスされました。 そこで今回は「Waylandのライバルであるもうひとつのディスプレイサーバー」だったMirの最新情報をお届けしましょう。

Mirとは何だったのか?

Mir(みーる)はCanonicalが開発している「次世代のディスプレイサーバー」です。

ディスプレイサーバーとは簡単に言うと「ルートウィンドウ」と呼ばれるディスプレイ全体に広がるウィンドウを描画し,アプリケーションからの要求に応じて子ウィンドウの作成やウィンドウ内部の描画を担うソフトウェアです。加えて,Linuxカーネルから届いたマウスやキーボードのイベントを適切なウィンドウへ送る処理も担当します。つまりデスクトップLinuxにおいて,ユーザーからの入力とユーザーへの出力を司るとても重要なソフトウェアなのです。

「次世代」ということは「現行世代」と呼ばれる実装もあるわけで,それがUbuntuを含むほぼすべてのメジャーなLinuxディストリビューションやUnixシステムで採用されているX Window System(以下Xと表記)です。⁠クライアントサーバーモデル」を採用し拡張性の高いプロトコル仕様を持つXは1980年代半ばから30年以上に渡って広く採用されてきました※1⁠。その結果,たとえばリファレンス実装でもあるX.Org Serverなどは,さまざまな機能拡張を経て,現在では巨大で複雑なソフトウェアとなっています。

※1
1980年代と言えば,LinuxもDebianもまだ登場していなかった時代です。

Xが登場した時代に比べるとコンピューターを取り巻く状況は大きく様変わりしています。クライアントマシンのスペックはすさまじい速度で進化し,3Dグラフィックの活用も当たり前になりました。動画の再生を始めとして,クライアント側で描画すべきコンテンツやエフェクトは複雑になっています。ディスプレイも大画面化・高解像度化が進むとともに,小さな画面に高い解像度のようなスマートフォンのようなデバイスも登場し,バラエティに富んだ環境を考慮する必要が出てきました。専門家のツールだったコンピューターは一般大衆向けのインフラとなり,これまで以上にセキュリティに注意しなくてはなりません。

そのような状況で2008年に登場したのが次世代ディスプレイサーバーであるWaylandです。Waylandは,X.Orgの開発者でもあったKristian Høgsbergが最小のディスプレイサーバーとウィンドウコンポジッターを組み合わせたものとして個人的に作成していたソフトウェアが元になっています。その後,X.Orgの開発者たちがXを置き換える次世代のディスプレイサーバーとして開発に参加するようになりました。

厳密なことを言うと,Waylandはいわゆる「ディスプレイサーバー」とイコールではありません。Waylandはディスプレイサーバーの実装に必要なプロトコル仕様を定義し,そのプロトコル仕様を満たすライブラリーを提供しています。ディスプレイサーバーおよびウィンドウマネージャーの開発者はこのライブラリーをリンクした「Waylandコンポジッター」を開発することで,Waylandプロトコルを満たすディスプレイサーバー相当の機能を提供できるのです。結果的にMutterなどの既存のウィンドウマネージャーは,ディスプレイサーバーと統合された単一プロセスのWaylandコンポジッターとなります。またWaylandプロジェクト自身も,Waylandコンポジッターの参照実装としてWestonを開発しています。

Ubuntuでも10年以上前の2010年11月に「将来的なWaylandへの移行」がアナウンスされました。これは当時採用していたデスクトップシェルであるUnityと,Unityに必要なツールキット(NuxやGTK⁠⁠,ウィンドウマネージャー(Compiz)をWaylandに対応させるということです。しかしながら具体的な進捗はほぼないまま数年が経過します。そして2013年3月になって突如Waylandへの移行をキャンセルした上で,独自に開発した次世代ディスプレイサーバーである「Mir」の公表し,将来的なMirへの移行がアナウンスされます

このビッグニュースはUbuntuコミュニティの内外に大きな波紋を広げました。特に「Mirを採用する理由」がWayland開発者から見るとツッコミどころが多かったため,Wayland開発者とUbuntu開発者も交えた「Wayland vs. Mir」な論争に発展します。複数のプロジェクトで異なる次世代ディスプレイサーバーを開発することによる,「開発コミュニティの分断」にも懸念があがっていました。当時GNOME Shellの代わりに採用されていたUnityが,移行当時の品質の問題などを記憶しているユーザーからの評価が低かったことも,⁠Ubuntuの独自実装」に対する反対意見を誘引していたようです。

Canonicalとしては,同時期に発表されたUbuntu Phoneやコンバージド構想(デスクトップからタブレット,スマートフォン,TVに至るまで「Unity」インターフェースで統一する構想)を今後のUbuntuの要として進めていました。そのような状況から,ある程度の反発は覚悟の上で自分たちでディスプレイサーバーを実装する必要があったのかもしれません。

しかしながらMirは2017年4月に大きな転換点を迎えます。CloudとIoTに注力するために,Mir開発の契機となったUbuntu Phoneとコンバージド構想に対するCanonicalとしての投資の終了が発表されたのです。Ubuntu Phoneについては一応実機が販売されたものの思ったほどは振るわず,開発自体も停滞気味でした。またデスクトップ側のUnity 8/Mirへの移行はさらに遅れている状況でしたし,他のデバイスも登場しなかったので終了そのものはある程度予想はされていたのです。この発表をもってデスクトップ側で採用されていたUnityも開発を終了し,GNOME Shellへと移行するとアナウンスされました。結果的にGNOME ShellがサポートするWaylandが,Ubuntuでも次世代のディスプレイサーバーとして採用されることになります。そしてそのWayland移行の目処がようやくたったのが,2021年時点での状況というわけです。

この終了アナウンスのポイントのひとつは「Mirそのものについては言及されていない」点です。その後の開発者などのコメントにより「MirはIoT向けに開発を継続する」と判明します。つまりMirはまだ生きているわけです。むしろ終了前よりも開発速度はあがっており,2018年9月にはとうとう1.0が,2020年7月には2.0がリリースされるに至りました。今回は最新の2.2.0を元に解説します※2⁠。

※2
ちなみにUbuntu PhoneについてもUBportsとして有志が開発を継続しています。当初はプロジェクトの継続性に不安もあったものの,懸案だった16.04ベースへの移行も完了し,今も数ヶ月ごとにOTAアップデートを提供しています。今後は,16.04から20.04へのビッグジャンプを計画しているようです。それに合わせて使用しているMirも最新のものに更新されるようです。Unity自体もLomiriと名前を変えて,UBportsにより開発が継続しています。

著者プロフィール

柴田充也(しばたみつや)

Ubuntu Japanese Team Member株式会社 創夢所属。数年前にLaunchpad上でStellariumの翻訳をしたことがきっかけで,Ubuntuの翻訳にも関わるようになりました。