パスワードを忘れた? アカウント作成
39509 story

Linux向けの新Xサーバー開発プロジェクト「Wayland」 66

ストーリー by GetSet

insiderman 曰く、

Red HatのKristian Hogsberg 氏が、「Wayland」と呼ばれる新たな軽量Xサーバーを開発するプロジェクトを立ち上げている(Phoronixの記事)。

Waylandは既存のXサーバーの単なる焼き直しではなく、最新のグラフィックス技術に対応しつつもコンパクトなXサーバーを目指しているとのこと。現在は開発初期の段階だが、Cで書かれたソースコードは3200行ちょっとと、実際に軽量なものとなっている模様。

XFree86やX.orgといったXサーバーは非常に重いイメージがありますが、それでもLinuxでのXサーバーのデファクトスタンダードになっているのは、ほかに良い代替物がないためかと思われます。ソースコードは現在freedesktop.orgのgitリポジトリから入手可能とのことなので、興味のある方は是非人柱になってみてはいかがでしょうか。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • どうせなら (スコア:3, すばらしい洞察)

    by tarosuke (2403) <webmaster@tarosuke.net> on 2008年11月04日 18時47分 (#1449464) 日記
    腐れたXプロトコルなんて捨てて、Xサーバじゃなくて直接描画してくれるXLibにすればよかったのに...。
    # Xプロトコルが腐れてないと思うのなら、Xの接続方向とか認証とかについて調べてみ?
    ※元記事は読んでない。
    • by Anonymous Coward on 2008年11月05日 4時38分 (#1449697)

      直接描画してくれるXLib

      それなんてSunView [wikipedia.org]? (XLibではないけど)

      歴史的には、 SunViewのようにライブラリで直接描画するのは効率が悪い [u-tokyo.ac.jp]、 ということで登場したのが、 Xその他のサーバ・クライアント方式のウィンドウ・システムですね。 Xのサーバ・クライアント方式には、 「ネットワーク・トランスペアレント」という以外にも、理由がありました。

      もっとも、現代では共有ライブラリと共有メモリ、 マルチスレッディング等々が普及したこともあり、 当時湯浅先生がおっしゃっていた「最大の欠点」については、 今なら、うまく解決する方法もあるかもしれません。

      しかし思い出しましょう。 アプリケーションプログラム間でグラフィックス資源の調停が面倒だった、 SunView(や、その他のライブラリ直接描画方式のシステム)の教訓を。 グラフィックスハードウェアの複雑化した現代では、 その調停は更に困難になってきているかも。 そこをライブラリに作り込んで、 アプリケーションに密結合させる手もなくはないですが、 結局それはXプロトコルと同等以上の複雑さを潜在的に備えることになるでしょう。 さらにセキュリティのことまで考えると、 問題はサーバ・クライアント方式以上に難しくなるでしょう。

      なんだかんだで、ハードウェアと各アプリケーション間の調停を行なう、 描画サブシステムのレイヤーを持つのが現実的で、 そうなると、もはやそこをWindowsのように密で複雑なAPIで繋ぐか、 Xプロトコルのような明確に(だが多少行き当たりばったりに)定義された通信で結ぶかの違いはあれど、 結局はある意味でサーバ・クライアント方式と言える形に落ち着くのだと思います。

      資源調停以外にも、 クライアントからの要求を再スケジューリングして、 描画ハードウェア資源の利用を最適化するなどというような、 サーバ・クライアント方式でなくては難しい最適化もあり得るので、 一概に「ライブラリ直接描画方式にしちゃえばいい」というのは短絡的に思えます。

      なお、別に既存の方式だけがウィンドウシステムのあり方とは思っていないので、 過去をふまえた上で、新しい方式を考案するのは大いにやって欲しいと思います。

      最近はあまり面白いウィンドウシステムが出てこないのでつまらないですね。 個人的には、1980年代ごろの、 各社がそれぞれにウィンドウシステムを開発していたころが、 ウィンドウシステムに関しては一番わくわくしていた気がします。 上でも引用したGMWとかNeWSとか出てきたころが、 ウィンドウシステム(の様々な方式)が面白かった最後でしょうか。 逆にPERQ辺りまで遡ると、さすがにリアルタイムでは体験していないですが。

      親コメント
    • by G!S$h$FSzDS (33109) on 2008年11月04日 22時37分 (#1449587)
      ネットワークを介さない物を作るのは大賛成。本当に重いからね。

      Waylandがどのような方針なのか分からないけど、
      Xlibのインターフェース自体があまり好きにもなれないし、
      効率的とも思えないので、gtkとqtが最低限動けばいいという
      視点で作った方が良いと思う。
      親コメント
      • by ninestars (5792) on 2008年11月05日 3時36分 (#1449692) 日記
        かつて BSD on Windows というものがあってだね。
        その作者は Emacs を Windows で動かしたいというのがそもそもの発端だったのだが、結局 BOW と呼べるほどほとんどのAPIを実装する羽目になった。
        最低限動かすと言いつつも、必要となる実装範囲は予想以上に広いかも・・・。
        親コメント
    • by takl (14577) on 2008年11月05日 1時19分 (#1449658)
      似たようなことを考えたことがあるのですが
      ↓のような問題を思いつきました。

      ● だれがイベントを発行するのか。
      たとえば他プロセスのウィンドウが重なっているときの
      マウスイベントとか EXPOSE とか。
      あと、フォーカスとか。
      結局サーバー的な何かが必要になる気がする。

      ● ウィンドウマネージャの扱いはどうするのか。
      既存のXプロトコルと互換性がないと、
      ウィンドウマネージャ相当品まで作成するハメになる。

      ● XLib を使っていない既存のアプリケーションとの協調はどうするのか。
      現存するのかどうか知らないけど。
      親コメント
    • by Anonymous Coward
      Xlibのその下はどうするんだ?
      X server でない別の何かをまた作らなくちゃいけなんじゃないの?
      • Re:どうせなら (スコア:1, フレームのもと)

        by tarosuke (2403) <webmaster@tarosuke.net> on 2008年11月04日 20時10分 (#1449515) 日記
        なーんでたった1行が読めないわけー?
        >>直接描画してくれるXLib
        おげ?
        あと、これはユーザプロセスの話だから「グラボのドライバを叩く」は「直接」に含まれるからね。
        親コメント
        • by Anonymous Coward
          元記事を読んでないひとが、どんな面さげてたった1行を読めないひとを責めるのかとw

          最近では「リモートホストのプレゼンテーションをローカルホストに表示する手段」としてはWebが使用されることが多いようです。
          Webベースならファイアウォールやプロキシの存在など、現代的なネットワークの諸問題に対応できるメリットはありますが、 これでXプロトコルを完全に置き換えるのは仕様/性能的にまだ無理がありそうです。
          (リモートホストのCPU負荷を目視確認するのなら、Webブラウザを上げるよりは、xloadで済ませたい)

          ローカルホストへの描画しかしないXlibは、やはり局地戦用兵器だなぁ。
        • by Anonymous Coward
          やはりtaros作っている人は格が違った
          恥知らずなACがあまり調子こくとリアルで痛い目を見て病院で栄養食を食べる事になる
    • by Anonymous Coward
      ん?元記事を読む限り、まさに貴方のお望みのものじゃない?

      本家でも突っ込まれてたけど、
      元記事の内容を読む限り、これって、クライアントサイドで動かすものだよね。
      それって、Xサーバって呼べるのかな?Xサーバの定義が人によって違うのかもしれないけれど。
      • by Anonymous Coward
        Linux知識は少ないけれども、仮に記憶が正しければ
        • Xサーバ:(ユーザから見た)クライアントサイドで動く、描画
        • Xクライアント:(ユーザから見た)サーバサイドで動く、計算
        だったような気がする。
        で、彼はXサーバじゃなくクライアントの方に今サーバが受け持ってる描画機能を追加してやるのがいいんじゃないか、って言ってるんだと思った
        • by Anonymous Coward
          > で、彼はXサーバじゃなくクライアントの方に今サーバが受け持ってる描画機能
          > を追加してやるのがいいんじゃないか、って言ってるんだと思った

          Windowsのリモートデスクトップような実装でしょうか?
          感覚的なものでしかありませんが、あれは軽くてサクサク動いて好きです。
          ああいうのであれば、*NIX系にも是非欲しいですね。
    • by Anonymous Coward
      最近のリッチなデスクトップ環境ではある程度の性能を持つグラフィックボードと
      その機能をきちんと引き出すドライバが無いと辛いところですが
      やっぱりドライバのインタフェースも互換性無いですよね…?
      フリー版ドライバだと悲しいぐらい性能が出ないですからね
  • by bero (5057) on 2008年11月05日 13時45分 (#1449888) 日記
    既存のXウィンドウシステムでは、2DはXプロトコル経由でXサーバが描画、3DはDRIでクライアントが直接描画しているわけですが、
    Waylandでは2Dも直接描画にしているようです。
    Xサーバの再実装というよりDRIマネージャとでもいうべき別物じゃないかと思います。
    サーバ側で描画しないので必然的に描画コマンドを送るXプロトコルも捨てじゃないでしょうか

    詳細は日記 [srad.jp]
  • ついに (スコア:2, おもしろおかしい)

    by Anonymous Coward on 2008年11月04日 23時59分 (#1449622)
    ついに20年ぶりのメジャーバージョンアップ、「X12」の登場ですね!
  • 組み込み用に使えるライブラリとしてQTなんかも既にありますが、
    コンパクトなリソースでXが動くならそっちを使いたい場合もあるわけで。
    • by Anonymous Coward on 2008年11月04日 20時06分 (#1449513)
      > コンパクトなリソースでXが動くならそっちを使いたい場合もあるわけで。
      最低限のX11でよければそういうもの [jussieu.fr]は既に存在するようです。Gumstix [gumstix.com]とかで使われています [gumstix.net]。

      # 余談ながら、X11の置き換えが難しいのは蓄積された膨大なドライバを作り直
      # すのが困難だから、という一点に尽きると思います。
      # 確かにX11のソースはモジュール化されドライバはサーバやライブラリ等から
      # 分離されましたが、えてしてXのソースは歴史的理由からインターフェースが
      # ごちゃごちゃなので、X11のドライバだけを流用して新しいウィンドウシステ
      # ムを作るというのは難しいのではないでしょうか。
      # 新しいXが古い古い言われながらなかなか代替の出てこなかったこれまでのX
      # から学ぶことがあるとすれば、デバイスを抽象化するだけのレイヤーとXサー
      #バを明確に分離し、GUIに対する時代の要求が変わってもドライバという資産
      # を無駄にしなくても済むようにすることかもしれません。
      親コメント
      • by taka2 (14791) on 2008年11月04日 23時42分 (#1449616) ホームページ 日記
        > # 余談ながら、X11の置き換えが難しいのは蓄積された膨大なドライバを作り直
        > # すのが困難だから、という一点に尽きると思います。

        そういう点だと、「Windows 用のドライバを使えるXサーバ」なんてのが出てきてもいいんじゃないかな。
        無線LANにおける NdisWrapper みたいに。

        そうすれば対応ハードの多さがダントツだし、
        「チップが新しすぎて対応していない」なんて心配もなくなる。
        親コメント
      • by Anonymous Coward on 2008年11月05日 11時28分 (#1449784)
        このXサーバでも利用されているKernel-Based Mode-Settingというのが、そのXから独立した
        デバイスレイヤに相当するようですよ。

        すでにFedora9でも、インテルチップのみですが、生コンソールとX環境がこの機構の上で
        動かせるようです。

        linuxカーネル本体へも2.6.29あたりで取り込まれる予定だそうなので、ドライバさえ揃ってくれば
        広く使われて行くのではないでしょうか。
        親コメント
  • by G!S$h$FSzDS (33109) on 2008年11月05日 10時44分 (#1449763)
    http://cgit.freedesktop.org/~krh/wayland/tree/ [freedesktop.org]

    によると、こんなに小さいみたいです。
    サンプルクライアント込みです。
    上記のところでファイルをクリックすると
    ソースも見れます。

    Makefile................1268
    NOTES...................6763
    README..................1989
    background.c............3837
    compositor.c............4360
    connection.c............4322
    connection.h............767
    egl-compositor.c........5957
    event-loop.c............3029
    flower.c................5294
    gears.c.................5688
    gears.h.................148
    hash.c..................776
    input.c.................3125
    pointer.c...............4252
    wayland-client.c........4803
    wayland-client.h........1028
    wayland.c...............16608
    wayland.h...............3747
    window.c................8829

    起動の流れはこんな感じ。

    ./wayland &
    ./background &
    ./flower &
    ./flower &
    ./flower &
    ./window &
    ./pointer &
  • by Anonymous Coward on 2008年11月04日 18時33分 (#1449460)
    たくさんあればいいと思うけど
    車輪のry
    • Re:選択肢は (スコア:3, すばらしい洞察)

      by Anonymous Coward on 2008年11月04日 18時56分 (#1449470)
      再発明と再実装は区別しろ
      親コメント
      • Re:選択肢は (スコア:1, 興味深い)

        by Anonymous Coward on 2008年11月04日 19時06分 (#1449478)
        • 有能でない人が、すでにある実装を再実装する場合
        • 有能な人が、汚れきった実装を再実装する場合


        これらは全く意味合いが違います。そこで重要になるのは自らの腕を過信しているか適正に評価しているか。自らの腕を過信している人が自分のプロジェクトにいるのは困るけど、外でやってくれる分には、成果を待つだけだ。

        こんだけ短くこれだけのことが実装できて動いているんだから、xorgよりかなりいいものにはなりそう、オープンソースプロジェクトで大勢がたかって作ったやつは一人の手で再実装されることで劇的に改善する可能性がある。それはいずれ再び汚されるだろうけど、どちらのプロセスも無駄なことではない。

        親コメント
    • Re:選択肢は (スコア:1, すばらしい洞察)

      by Anonymous Coward on 2008年11月04日 21時53分 (#1449565)
      XFree86消滅時に派生/代替プロジェクトがたくさん紹介されてたと思うんですがねえ。今さら期待する何かがあるのかなと。
      何度も繰り返される要望として、Windowsのようにカーネルに機能を取り込めってのがありますけどね。まともに応える開発者はいないでしょうし。
      親コメント
    • by Anonymous Coward
      Wayland(Völundr/ウォルンドル)は伝説の名工なので、いい車輪が出来そう。
      • by Anonymous Coward
        ウェイランド湯谷の方を思い出しました。
        生まれるのはエイリアンか合成人間か…
  • by Anonymous Coward on 2008年11月04日 18時44分 (#1449463)
    サーバ、クライアント型なのかな?
    もう10年以上使っていない機能だなぁ。

    昔は、他人のterminalを自分のマシーンに出して色々遊んだっけ。
    • by Anonymous Coward on 2008年11月04日 19時58分 (#1449505)
      Linuxマシンにディスプレイを繋いでないのでもう7~8年くらいそればっかりつかってます。
      おかげ様で最近のローカルXサーバの処理の速さを見る度にびっくりします。

      #クライアントサーバシステムを排除するならxorgでいいや
      親コメント
    • by Anonymous Coward on 2008年11月04日 20時03分 (#1449509)
      NASに偽装したlinuxマシンのWindowを手元のWindowsに飛ばせるのは便利ですけどね。
      そこまでしてlinuxを使いたい用途なんてCUIな作業がほとんどだから、Xの出番は多くありませんけどね。

      #俺:X server 起動!!
      #X:今日も terminal たくさん開く仕事がはじまるお
      親コメント
    • by Anonymous Coward
      今でも、サーバにOracleインストールの時は
      何かとお世話になってます。

      # >昔は、他人のterminalを自分のマシーンに出して色々遊んだっけ。
      # 他人のマシンで走らせている自分のプロセスを自分の端末に表示していた、というわけでなく?

      # 昔、学校でNeXT使っていたとき別のマシンでMathematicaのプロセスを走らせてました。
      # だって重いんですもの
      • 共有ウィンドウサーバ使えば、いろいろできたよなぁ。

        Display PostScript の恐怖だ
        --
        --- show mpls ldp neighbor
        親コメント
      • by Anonymous Coward
        > 今でも、サーバにOracleインストールの時は

        完全にオフトピですが、Oracleはコマンドラインだけでインストール作業から
        何から全てできるようにしてくれないかなあ。
        中途半端にGUIが必要なので返って面倒。

        #あと、これを理由に「GUIが無いと」って言い出す人がいるので、、、、
        • 完全にオフトピですが、Oracleはコマンドラインだけでインストール作業から
          何から全てできるようにしてくれないかなあ。
          中途半端にGUIが必要なので返って面倒。

          Oracle XE だと Universal Installer を使わないみたいです。Ubuntu だと、deb パッケージをダウンロードしてインストールするだけでした。

          でも、ODT.NET なんかのインストールで Universal Installer が使われるのでしょんぼり。(笑)

          私の場合、開発が主ですので、XE でだいたい足りますが、運用に載せるサーバーだとそうもいかないでしょうね。GUI なしインストールの方法があるなら知りたいですねぇ。
          親コメント
        • by Anonymous Coward
          できるはずだよ。でないとあのインストーラーがバグバグな理由が説明できない。
    • by Anonymous Coward
      GIMP-2.5.xくらいまではgimp-remoteというコマンドがありましたが、2.6からはgimpに統合されたっぽいです。

      # 流石にSSH -X に半二重のハブでは辛い...
  • by Anonymous Coward on 2008年11月04日 18時57分 (#1449472)
    なぜかサーバー用途にしかつかっていないLinux上でGDMが動いている事が多すぎる事
    おもに赤帽さんとかですが

    それでいてメモリ不足になってスワップインしまくってるサーバをいつも任される身になってほしい
    (ノ ゜Д゜)ノ ==== ┻━━┻
    • by Anonymous Coward
      >それでいてメモリ不足になってスワップインしまくってるサーバをいつも任される身になってほしい

      サーバ任されているなら、GDM止めちゃえばいいじゃないですか。
      # ホントにそれが原因?
    • by Anonymous Coward
      GDMに関してはちょっとXとは違うと思うけど・・・
      パフォーマンスパフォーマンスとかなり言われて
      厳しいのかなと実際Serverを覗いてみると
      GDMやらXFS(FontServerのほう)やらCUPS系が上がってるような管理をしている会社は実際多いっすよ
      しかもXまで上がっていて、実際運用されているプロダクトのServer上でXのSessionが残ってたりするw
      現実的にはそれほど影響は無いけど、Web系のServer用途でRedhatで言うところのrunlevel 5でInstallし運用する会社は非常に多い
      これほんと!
      • by Anonymous Coward
        CentOSでSambaサーバ立ち上げてましたが、コンソールはGUIログイン環境でした。

        私はテキストベースで問題無いのですが、もう一人の管理者がGUI環境しか使えない人だったので…orz
        #私自身は素のX11+twmでも全く問題無しw
        • by Anonymous Coward
          テキストベースで問題無いというならいっそのことevilwm [6809.org.uk]とかはどうでしょうか? w
  • by Anonymous Coward on 2008年11月04日 19時00分 (#1449474)
    なんか爺の感覚とは違うのじゃが。
    最近の上に載ってるものは確かに重いのだが.....
    • by sync.neo (16796) on 2008年11月05日 5時00分 (#1449700)
      全然重くないですよねえ、って私ももう爺ですか。
      100Mbps もあればネットワーク越しでも問題ないですし。

      ところで、なんだか元記事に目も通してないようなとんちんかんなコメントが目立ちますが、もうXでプログラムしてる人は少ないのかな。私も XLib 直接叩いたのって10年以上前だけど。

      このプロジェクトの面白いところは、最近のハードウェアを使った Composite システムを最大限に活用すれば、 オーソドックスなXプロトコルの多くの部分(ウインドウの重なり判定とか double buffer がらみとか)が不必要になるから、それらを思い切って切り捨ててしまって、Xプロトコルのサブセットを実装しよう、って話ですね。ついでに buffering をサーバ側で完全にコントロールできるから、うまくやれば描画途中の見苦しい状態がユーザに見えるのも避けられると。プログラミングも簡単になるだろうし、とてもいいアイデアと思いますよ。 進化の方向としては正しいんじゃないでしょうか?

      # ただ現在の普通のXクライアントが動かない可能性が高いだけ。
      # で、まずは screensaver 専用サーバから始めたい、と。
      親コメント
    • by Anonymous Coward

      ソースコードの行数が重量級、ということではないかと。

      # imake使ってた時代の方が少ない気がする。ま、ドライバも機能も増えたけどさ。

  • by Anonymous Coward on 2008年11月04日 22時58分 (#1449594)
    こういうことがやりたいと思ったらパッとできるところがLinuxの良いところだよね。
    WindowsだとグラフィックAPIの仕様なんて互換性の問題が大きすぎて滅多に変えられない。
    Linuxは何もかもが疎結合だから、もっといいものができる、と思えばすぐに違うものが作れる。
    • グラフィックAPIが変わるのは、
      Xlib等のクライアントにリンクされるライブラリを変えた場合です。

      Xサーバは、Xクライアントとの通信をXプロトコルにしたがって処理します。
      Xプロトコルを変えない限り、
      Xサーバを新規実装してもグラフィックAPIの互換性が損なわれたりしません。
      親コメント
    • by Anonymous Coward
      いちいち新しいAPIを勉強し直す身にもなってください…
typodupeerror

一つのことを行い、またそれをうまくやるプログラムを書け -- Malcolm Douglas McIlroy

読み込み中...