2013-03-05

Ubuntuが全く新しいディスプレイサーバーであるMirを採用予定、Unityの実装もQt/QMLに

[Phoronix] Ubuntu Announces Mir, A X.Org/Wayland Replacement

Ubuntuが、従来のX.orgに変えて、公式に移行すると宣言されていたWaylandでも、あるいはかねてから噂されていたSurfaceFlinger(Android用のディスプレイサーバー)でもなく、独自に開発したディスプレイサーバーであるMirを使うことが明らかになった。その規格が公開されている。

MirSpec - Ubuntu Wiki

動機は、やはり多様なハードウェアに対応するためだという。特に、XのInputモデルが複雑で現代の多用な入力デバイスに対応できないとしている。タッチインターフェースに対応したいのだろう。また、セキュリティとしても、AppArmorのような外付けの機能に頼らず、最初からディスプレイサーバー側で必要最小限の権限しか与えないような作りにするという。

また、Xのグラフィックドライバーモデルは問題が多いとして、最近何かと流行りのEGL/OpenGL ESに迎合し、またドライバーへの依存も少なくし、既存のAndroid用ドライバーやハードウェアコンポジターを利用できるつくりになるとしている。

なぜWayland/Westonではないのか。入力イベントの扱いが、部分的にXに影響された作りになっており、おそらくXと同じ問題が発生するだろうということ。プロトコルのシェル統合の部分は必要以上に高い権限を要求する。Ubuntuの考えでは、ディスプレイサーバーのプロトコルにシェルを関わらせたくないそうだ。

ただし、Waylandの経験が完全に無になるというわけでもなく、一部のWaylandとして設計されてきたプロトコルについては、よく設計され十分に検証されているとして採用するそうだ。

また、既存の主要なツールキットであるQt/QML, GTK3, XUL等は、ツールキット側で対応するので、既存のソフトウェアに追加の対応は必要ないという。

Qt/QMLを一番最初に挙げているのは興味深いと読み進めたら、プロジェクトの一部として、Qt BindingであるQMirを開発するとわざわざ書いてある。推奨のツールキットはQtになるのだろう。

現在のMirのAndroid実装は、描画にSurfaceFingerを挟んでいるが、じきにSurfaceFingerに頼らず自力で描画するようになるのだという。

また、デスクトップでは、自由なグラフィックドライバースタックであるGBM(Graphical Buffer Manager)、KMS(Kernel Mode Setting)、DRM(Direct Rendering Manager)の上に動作するそうだ。

現在のところ、Mirは不自由なドライバーの上では動作しないが、これについてGPUベンダー各社と協議中らしい。なんでも、共通のEGLベースのドライバーモデルを開発して、ディスプレイサーバーの開発を容易にするのだとか。

ロードマップとしては、5月にMirとUnity Nextの開発を、シュルが実装可能なところまで進め、実験できるようにする。同年10月にはUnity NextとMirとシステムの統合を終え、Ubuntu Phoneで利用できるようにする。デスクトップやラップトップ向けには、Xを完全に置き換え、レガシーモードとして、必要に応じて既存のXクライアントを動かすため、root権限なしで動くXサーバーを起動する。

また、Mirスペックでは断片的にしか触れていないが、Unity Nextというのも気になるところだ。どうやらこれはUnityの新しい実装らしく、Qt/QMLで実装されるようだ。

C++に馴染みのあるものとしては、最初からC++ネイティブなQtになるのはいいことだといえる。

しかしまあ、あれだけGTK+にこだわって、QtはUnity 2Dを実装するときにしか使っていなかったCanonicalが、急にQtに移行するのはなかなか大転身といえるのではないか。

Unity NextがQtを使うことは、Phoronixでも取り上げられているので、面白いコメントが期待できそうだ。

[Phoronix] Ubuntu's Unity Written In Qt/QML For "Unity Next"

1 comment:

shinh said...

s/SurfaceFinger/SurfaceFlinger/ かと。まぁそもそも android の外で使いやすものなのか知りませんが。