Waylandとは
追記(2013/09/18):
2年以上前に書いたこの記事を引用してヒトを情弱よばわり
している馬鹿がいるようです。この記事を書いた当時、
↓は正しい内容だったのですが、Waylandプロジェクト内で
その後に様々な変更(コードを含む)が行われ、現在では現状と
そぐわなくなっています。人を情弱よばわりしている馬鹿の
ほうが実は情弱でそいつにとっては昔に書かれた記事は現状に
あわせて常にアップデートされていないといけないようです。
昔書いた記事をアップデートしていない方はそいつに情弱
呼ばわりされるリスクがあります、ご注意ください。正しい内容と書いた経緯?について付け加えます。
当時、Waylandサーバの実装はまだ公開されていないか、
公開されていてもα版初期くらいの状態で評価できる状態
にはなかったのです、ディスプレイ・サーバ?実装者にも
まだ評価のしようのない?時期です。日本語でも英語でも?
詳しい情報がネット上には未だありませんでした。
そこで自分への覚え書き程度にWayland開発者から開示
されていた情報をまとめたのが↓の文章です。Wayland開発者
から開示されている情報をまとめただけで他のことは
載せていません、また、自分の解釈の微妙な?誤りもあるかも
しれません。その当時はWaylandサーバ自体が検証を行おう
と思うほどの品質にも達していなかったので、海外のサイトを
漁って無理やり動かしてレポートするほどの興味を見いだせ
ませんでした。また、同様の理由で海外のサイトを漁って↓の
内容の反証記事を探すこともしていません。1.0のマイルストーンを通過済みの現状でも試す気には
まだなれません、単純に環境を整え評価する時間が
惜しいからです。単純に試すために環境を整える手間
> Waylandサーバへの興味 だからです。
まだまだ実稼働環境に載せられる品質及びパフォーマンス
に達していないようので、しばらくは評価は専門家?に任せて
動向を追っておく程度に留めるつもりです。
今なら、Wayland(Intel) VS Mir(Canonical)の対立?が面白い
ですかね、CanonicalがWaylandのコードをペチってMirを
作っていて実装の難しい部分はIntelがやった後でCanonicalが
コピるけどMirのライセンスがアレなのでIntel側はCanonicalが
やった改善を取り入れることができない、業を煮やしたIntelは
自社の抱えるグラフィックスドライバー開発者に
XMirへの対応パッチを取り込まないように命じた?、のが
最新情報?
http://cpplover.blogspot.jp/search/label/GNU%2FLinux
これくらいの情報は情弱の言う情弱にも拾えるんですよ。
ゴシップ?ですが。
ディスプレイサーバとクライアントの通信の手順とサーバ・クライアントの
インターフェース(API)を定めた規約(プロトコル)の名称(コードネーム?)。
その規約に基づいたディスプレイサーバとクライアント用ライブラリの
リファレンス実装もWaylandのパッケージに含まれている。
そのため、Wayland=ディスプレイサーバと誤解されることが多い。
リファレンス実装はLinuxカーネル固有の仕組み(KMS、evdev)を
利用しているため、Linux専用。
Waylandにおいては画面の合成を行うコンポジタが主役、コンポジタ
自体がカーネルとのアクセスを担当し、カーネルを介してハードウェアの
入出力を処理する。
Waylandディスプレイサーバ≒コンポジタ+カーネルアクセス
Xサーバとの違い
XサーバがWindow Manager・Xクライアントとで三位一体、
ウィンドウの管理をクライアントから切り離しWindow Manager
が行うのに対し、Waylandはウィンドウの管理は全てクライアント
自体が行う。また、XサーバはXプロトコルによりネットワーク
透過性を有するが、Waylandはネットワーク透過性を有さない、
そのかわり、ネットワーク透過性に伴うオーバーヘッドがない
ぶんXサーバに較べて画面描画が高速となる。
WaylandとXサーバの関係
WaylandサーバはXサーバ互換ではない。既存のXクライアントを
Waylandサーバ上で動作させるためにはWaylandクライアントAPI
を用いて実装されたXサーバが必要となる。
Waylandのリファレンス実装
現状、リファレンス実装はサーバとしての動作以外にXクライアント
としての作動もサポートされている、これは実装が安定するまでの
一時措置と思われる。
また、Khronos Groupの定めたモバイル向けウィンドウシステム
仕様OpenWFのうちディスプレイとのアクセスAPIを定めた「OpenWF
Display」をサポートしている。